From 5dde95426c8f7c6bf47505371e9a023635bb3c96 Mon Sep 17 00:00:00 2001 From: shahramn Date: Thu, 11 Apr 2024 17:46:03 +0100 Subject: [PATCH 01/11] Bump up version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index aa5388f63..d07233cc9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.35.0 +2.35.1 From af68ea8638fb2d619e1a6ec32dfe22c53be24827 Mon Sep 17 00:00:00 2001 From: shahramn Date: Thu, 11 Apr 2024 17:55:01 +0100 Subject: [PATCH 02/11] Testing: grib_repair depends on downloaded data --- tests/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ff56770f8..26592f16c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -391,7 +391,8 @@ if( HAVE_BUILD_TOOLS ) ecbuild_add_test( TARGET eccodes_t_grib_repair TYPE SCRIPT CONDITION ECCODES_INSTALL_EXTRA_TOOLS AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_repair.sh ) + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_repair.sh + TEST_DEPENDS eccodes_download_gribs ) # Note: making the test dependent on the grib files (with DEPENDS) From 15af87b7f7fc11cfc4a2617fbe2ce95897388b78 Mon Sep 17 00:00:00 2001 From: shahramn Date: Thu, 11 Apr 2024 17:55:28 +0100 Subject: [PATCH 03/11] ECC-1800: GRIB2: Failure setting stepUnits=s,paramId=210203 --- src/grib_accessor_class_g2step_range.cc | 4 ++++ tests/grib_sub_hourly.sh | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/grib_accessor_class_g2step_range.cc b/src/grib_accessor_class_g2step_range.cc index c39601a40..3800a4342 100644 --- a/src/grib_accessor_class_g2step_range.cc +++ b/src/grib_accessor_class_g2step_range.cc @@ -211,6 +211,10 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) if ((ret = grib_get_long_internal(h, "forceStepUnits", &force_step_units)) != GRIB_SUCCESS) return ret; + if (h->loader) { // h->loader is set only when rebuilding or reparsing + force_step_units = 255; // See ECC-1768 and ECC-1800 + } + try { std::vector steps = parse_range(val, eccodes::Unit{force_step_units}); if (steps.size() == 0) { diff --git a/tests/grib_sub_hourly.sh b/tests/grib_sub_hourly.sh index fdd174c28..eb1405111 100755 --- a/tests/grib_sub_hourly.sh +++ b/tests/grib_sub_hourly.sh @@ -542,5 +542,24 @@ set -e [ $status -ne 0 ] grep -q "Invalid unit" $tempText + +# ECC-1800: Set stepUnits before paramIds, which cause changes in the PTDN +${tools_dir}/grib_set -s stepUnits=s,paramId=210203 $sample_g2 $temp # is_chemical +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '13 s 40' + +${tools_dir}/grib_set -s stepUnits=s,paramId=131060 $sample_g2 $temp # probability forecasts +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '13 s 9' + +${tools_dir}/grib_set -s stepUnits=s,paramId=210073 $sample_g2 $temp # is_aerosol +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '13 s 48' + +${tools_dir}/grib_set -s stepUnits=s,paramId=210170 $sample_g2 $temp # is_chemical_srcsink +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '13 s 76' + +# Add a case with filter too +echo "set stepUnits='s'; set paramId=210203; write;" | ${tools_dir}/grib_filter -o $temp - $sample_g2 +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '13 s 40' + + # Clean up rm -f $temp $temp2 $tempFilt $tempText From ae1ebd996fadabaea919217bb410c7040e2fb207 Mon Sep 17 00:00:00 2001 From: shahramn Date: Tue, 16 Apr 2024 15:55:25 +0100 Subject: [PATCH 04/11] DGOV-461: paramDB: Create pseudo-centre for ECMWF reanalyses --- definitions/grib2/section.4.def | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/definitions/grib2/section.4.def b/definitions/grib2/section.4.def index 512544da4..0c45720b1 100644 --- a/definitions/grib2/section.4.def +++ b/definitions/grib2/section.4.def @@ -39,6 +39,15 @@ concept datasetForLocal(unknown) { "uerra" = {productionStatusOfProcessedData=11;} "destine" = {productionStatusOfProcessedData=12;} # Destination Earth "destine" = {productionStatusOfProcessedData=13;} + "era" = {marsClass="e2";} + "era" = {marsClass="e4";} + "era" = {marsClass="ea";} + "era" = {marsClass="ei";} + "era" = {marsClass="em";} + "era" = {marsClass="ep";} + "era" = {marsClass="er";} + "era" = {marsClass="et";} + "era" = {marsClass="l5";} "unknown" = { dummy=1; } } From 337e7432ae7b4b5d08fc25a51a657fc9ec2f1f4e Mon Sep 17 00:00:00 2001 From: shahramn Date: Tue, 16 Apr 2024 15:58:18 +0100 Subject: [PATCH 05/11] ECC-1799: GRIB2: Populate the ERA pseudo-centre with relevant encodings --- definitions/grib2/cfVarName.def | 42 + .../grib2/localConcepts/ecmf/cfName.def | 36 - .../localConcepts/ecmf/cfName.legacy.def | 36 + .../grib2/localConcepts/ecmf/cfVarName.def | 228 ------ .../localConcepts/ecmf/cfVarName.legacy.def | 228 ++++++ definitions/grib2/localConcepts/ecmf/name.def | 228 ------ .../grib2/localConcepts/ecmf/name.legacy.def | 228 ++++++ .../grib2/localConcepts/ecmf/paramId.def | 228 ------ .../localConcepts/ecmf/paramId.legacy.def | 228 ++++++ .../grib2/localConcepts/ecmf/shortName.def | 228 ------ .../localConcepts/ecmf/shortName.legacy.def | 228 ++++++ .../grib2/localConcepts/ecmf/units.def | 228 ------ .../grib2/localConcepts/ecmf/units.legacy.def | 228 ++++++ .../grib2/localConcepts/era/cfName.def | 72 ++ definitions/grib2/localConcepts/era/name.def | 716 ++++++++++++++++++ .../grib2/localConcepts/era/paramId.def | 716 ++++++++++++++++++ .../grib2/localConcepts/era/shortName.def | 716 ++++++++++++++++++ definitions/grib2/localConcepts/era/units.def | 716 ++++++++++++++++++ .../grib2/localConcepts/uerra/cfName.def | 21 + .../grib2/localConcepts/uerra/cfVarName.def | 21 + .../grib2/localConcepts/uerra/name.def | 21 + .../grib2/localConcepts/uerra/paramId.def | 21 + .../grib2/localConcepts/uerra/shortName.def | 21 + .../grib2/localConcepts/uerra/units.def | 21 + definitions/grib2/name.def | 42 + definitions/grib2/paramId.def | 42 + definitions/grib2/shortName.def | 42 + definitions/grib2/units.def | 42 + tests/grib_cfNames.sh | 4 +- tests/grib_check_param_concepts.sh | 25 +- 30 files changed, 4458 insertions(+), 1195 deletions(-) create mode 100644 definitions/grib2/localConcepts/era/cfName.def create mode 100644 definitions/grib2/localConcepts/era/name.def create mode 100644 definitions/grib2/localConcepts/era/paramId.def create mode 100644 definitions/grib2/localConcepts/era/shortName.def create mode 100644 definitions/grib2/localConcepts/era/units.def diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index 494c41ada..510e4b2af 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -4916,6 +4916,34 @@ parameterNumber = 18 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean snow depth +'msde' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean snow cover +'msnowc' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean geopotential +'mz' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean temperature +'mt' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean U component of wind 'mu' = { discipline = 0 ; @@ -4930,6 +4958,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean specific humidity +'mq' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean surface pressure 'msp' = { discipline = 0 ; @@ -4938,6 +4973,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean vertical velocity +'mw' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean total column water 'mtcw' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfName.def b/definitions/grib2/localConcepts/ecmf/cfName.def index f32ddc9a7..2ef70fa76 100644 --- a/definitions/grib2/localConcepts/ecmf/cfName.def +++ b/definitions/grib2/localConcepts/ecmf/cfName.def @@ -476,48 +476,12 @@ parameterCategory = 218 ; parameterNumber = 200 ; } -#Sea water potential temperature -'sea_water_potential_temperature' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 129 ; - } -#Sea water practical salinity -'sea_water_practical_salinity' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 130 ; - } -#Upward sea water velocity -'upward_sea_water_velocity' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 133 ; - } -#Sea water sigma theta -'sea_water_sigma_theta' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 138 ; - } #Ocean barotropic stream function 'ocean_barotropic_streamfunction' = { discipline = 192 ; parameterCategory = 151 ; parameterNumber = 147 ; } -#Surface downward eastward stress -'surface_downward_eastward_stress' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 153 ; - } -#Surface downward northward stress -'surface_downward_northward_stress' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 154 ; - } #Carbon dioxide mass mixing ratio 'mass_fraction_of_carbon_dioxide_in_air' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfName.legacy.def b/definitions/grib2/localConcepts/ecmf/cfName.legacy.def index e3b2b9750..b343a5b2c 100644 --- a/definitions/grib2/localConcepts/ecmf/cfName.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/cfName.legacy.def @@ -148,3 +148,39 @@ parameterCategory = 128 ; parameterNumber = 206 ; } +#Sea water potential temperature +'sea_water_potential_temperature' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; +} +#Sea water practical salinity +'sea_water_practical_salinity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; +} +#Upward sea water velocity +'upward_sea_water_velocity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; +} +#Sea water sigma theta +'sea_water_sigma_theta' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; +} +#Surface downward eastward stress +'surface_downward_eastward_stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; +} +#Surface downward northward stress +'surface_downward_northward_stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.def b/definitions/grib2/localConcepts/ecmf/cfVarName.def index da85ede9c..801bd6b5d 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.def @@ -16871,24 +16871,6 @@ parameterCategory = 151 ; parameterNumber = 128 ; } -#Sea water potential temperature -'thetao' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 129 ; - } -#Sea water practical salinity -'so' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 130 ; - } -#Upward sea water velocity -'wo' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 133 ; - } #Modulus of strain rate tensor 'mst' = { discipline = 192 ; @@ -16913,12 +16895,6 @@ parameterCategory = 151 ; parameterNumber = 137 ; } -#Sea water sigma theta -'sigmat' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 138 ; - } #Richardson number 'rn' = { discipline = 192 ; @@ -16991,18 +16967,6 @@ parameterCategory = 151 ; parameterNumber = 152 ; } -#Surface downward eastward stress -'taueo' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 153 ; - } -#Surface downward northward stress -'tauno' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 154 ; - } #Turbulent kinetic energy input 'tki' = { discipline = 192 ; @@ -17603,198 +17567,6 @@ parameterCategory = 160 ; parameterNumber = 254 ; } -#Surface geopotential -'p51.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 51 ; - } -#Vertical integral of temperature -'vit' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 54 ; - } -#Vertical integral of cloud liquid water -'vilw' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 56 ; - } -#Vertical integral of cloud frozen water -'viiw' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 57 ; - } -#Vertical integral of ozone -'vioz' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 58 ; - } -#Vertical integral of energy conversion -'viec' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 64 ; - } -#Vertical integral of eastward mass flux -'vimae' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 65 ; - } -#Vertical integral of northward mass flux -'viman' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 66 ; - } -#Vertical integral of eastward kinetic energy flux -'vikee' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 67 ; - } -#Vertical integral of northward kinetic energy flux -'viken' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 68 ; - } -#Vertical integral of eastward geopotential flux -'vige' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 73 ; - } -#Vertical integral of northward geopotential flux -'vign' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 74 ; - } -#Vertical integral of eastward total energy flux -'vitoee' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 75 ; - } -#Vertical integral of northward total energy flux -'vitoen' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 76 ; - } -#Vertical integral of eastward ozone flux -'vioze' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 77 ; - } -#Vertical integral of northward ozone flux -'viozn' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 78 ; - } -#Vertical integral of divergence of mass flux -'vimad' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 81 ; - } -#Vertical integral of divergence of kinetic energy flux -'viked' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 82 ; - } -#Vertical integral of divergence of thermal energy flux -'vithed' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 83 ; - } -#Vertical integral of divergence of geopotential flux -'vigd' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 85 ; - } -#Vertical integral of divergence of total energy flux -'vitoed' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 86 ; - } -#Vertical integral of divergence of ozone flux -'viozd' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 87 ; - } -#Variance of geopotential -'p206.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 206 ; - } -#Covariance of geopotential/temperature -'p207.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 207 ; - } -#Variance of temperature -'p208.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 208 ; - } -#Covariance of geopotential/specific humidity -'p209.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 209 ; - } -#Covariance of temperature/specific humidity -'p210.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 210 ; - } -#Variance of specific humidity -'p211.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 211 ; - } -#Covariance of u component/geopotential -'p212.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 212 ; - } -#Covariance of u component/temperature -'p213.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 213 ; - } -#Covariance of u component/specific humidity -'p214.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 214 ; - } -#Variance of u component -'p215.162' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 215 ; - } #Covariance of v component/geopotential 'p216.162' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def b/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def index 93fff7f80..4af98e981 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def @@ -1399,3 +1399,231 @@ parameterCategory = 228 ; parameterNumber = 5 ; } +#Sea water potential temperature +'thetao' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; +} +#Sea water practical salinity +'so' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; +} +#Upward sea water velocity +'wo' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; +} +#Sea water sigma theta +'sigmat' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; +} +#Surface downward eastward stress +'taueo' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; +} +#Surface downward northward stress +'tauno' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} +#Surface geopotential +'p51.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; +} +#Vertical integral of temperature +'vit' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; +} +#Vertical integral of cloud liquid water +'vilw' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; +} +#Vertical integral of cloud frozen water +'viiw' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; +} +#Vertical integral of ozone +'vioz' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; +} +#Vertical integral of energy conversion +'viec' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; +} +#Vertical integral of eastward mass flux +'vimae' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; +} +#Vertical integral of northward mass flux +'viman' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; +} +#Vertical integral of eastward kinetic energy flux +'vikee' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; +} +#Vertical integral of northward kinetic energy flux +'viken' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; +} +#Vertical integral of eastward geopotential flux +'vige' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; +} +#Vertical integral of northward geopotential flux +'vign' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; +} +#Vertical integral of eastward total energy flux +'vitoee' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; +} +#Vertical integral of northward total energy flux +'vitoen' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; +} +#Vertical integral of eastward ozone flux +'vioze' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; +} +#Vertical integral of northward ozone flux +'viozn' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; +} +#Vertical integral of divergence of mass flux +'vimad' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; +} +#Vertical integral of divergence of kinetic energy flux +'viked' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; +} +#Vertical integral of divergence of thermal energy flux +'vithed' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; +} +#Vertical integral of divergence of geopotential flux +'vigd' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; +} +#Vertical integral of divergence of total energy flux +'vitoed' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; +} +#Vertical integral of divergence of ozone flux +'viozd' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; +} +#Variance of geopotential +'p206.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; +} +#Covariance of geopotential/temperature +'p207.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; +} +#Variance of temperature +'p208.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; +} +#Covariance of geopotential/specific humidity +'p209.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; +} +#Covariance of temperature/specific humidity +'p210.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; +} +#Variance of specific humidity +'p211.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; +} +#Covariance of u component/geopotential +'p212.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; +} +#Covariance of u component/temperature +'p213.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; +} +#Covariance of u component/specific humidity +'p214.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; +} +#Variance of u component +'p215.162' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/name.def b/definitions/grib2/localConcepts/ecmf/name.def index 3fd5fdf95..d615c6e98 100644 --- a/definitions/grib2/localConcepts/ecmf/name.def +++ b/definitions/grib2/localConcepts/ecmf/name.def @@ -16871,24 +16871,6 @@ parameterCategory = 151 ; parameterNumber = 128 ; } -#Sea water potential temperature -'Sea water potential temperature' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 129 ; - } -#Sea water practical salinity -'Sea water practical salinity' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 130 ; - } -#Upward sea water velocity -'Upward sea water velocity' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 133 ; - } #Modulus of strain rate tensor 'Modulus of strain rate tensor' = { discipline = 192 ; @@ -16913,12 +16895,6 @@ parameterCategory = 151 ; parameterNumber = 137 ; } -#Sea water sigma theta -'Sea water sigma theta' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 138 ; - } #Richardson number 'Richardson number' = { discipline = 192 ; @@ -16991,18 +16967,6 @@ parameterCategory = 151 ; parameterNumber = 152 ; } -#Surface downward eastward stress -'Surface downward eastward stress' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 153 ; - } -#Surface downward northward stress -'Surface downward northward stress' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 154 ; - } #Turbulent kinetic energy input 'Turbulent kinetic energy input' = { discipline = 192 ; @@ -17603,198 +17567,6 @@ parameterCategory = 160 ; parameterNumber = 254 ; } -#Surface geopotential -'Surface geopotential' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 51 ; - } -#Vertical integral of temperature -'Vertical integral of temperature' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 54 ; - } -#Vertical integral of cloud liquid water -'Vertical integral of cloud liquid water' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 56 ; - } -#Vertical integral of cloud frozen water -'Vertical integral of cloud frozen water' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 57 ; - } -#Vertical integral of ozone -'Vertical integral of ozone' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 58 ; - } -#Vertical integral of energy conversion -'Vertical integral of energy conversion' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 64 ; - } -#Vertical integral of eastward mass flux -'Vertical integral of eastward mass flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 65 ; - } -#Vertical integral of northward mass flux -'Vertical integral of northward mass flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 66 ; - } -#Vertical integral of eastward kinetic energy flux -'Vertical integral of eastward kinetic energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 67 ; - } -#Vertical integral of northward kinetic energy flux -'Vertical integral of northward kinetic energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 68 ; - } -#Vertical integral of eastward geopotential flux -'Vertical integral of eastward geopotential flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 73 ; - } -#Vertical integral of northward geopotential flux -'Vertical integral of northward geopotential flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 74 ; - } -#Vertical integral of eastward total energy flux -'Vertical integral of eastward total energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 75 ; - } -#Vertical integral of northward total energy flux -'Vertical integral of northward total energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 76 ; - } -#Vertical integral of eastward ozone flux -'Vertical integral of eastward ozone flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 77 ; - } -#Vertical integral of northward ozone flux -'Vertical integral of northward ozone flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 78 ; - } -#Vertical integral of divergence of mass flux -'Vertical integral of divergence of mass flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 81 ; - } -#Vertical integral of divergence of kinetic energy flux -'Vertical integral of divergence of kinetic energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 82 ; - } -#Vertical integral of divergence of thermal energy flux -'Vertical integral of divergence of thermal energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 83 ; - } -#Vertical integral of divergence of geopotential flux -'Vertical integral of divergence of geopotential flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 85 ; - } -#Vertical integral of divergence of total energy flux -'Vertical integral of divergence of total energy flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 86 ; - } -#Vertical integral of divergence of ozone flux -'Vertical integral of divergence of ozone flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 87 ; - } -#Variance of geopotential -'Variance of geopotential' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 206 ; - } -#Covariance of geopotential/temperature -'Covariance of geopotential/temperature' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 207 ; - } -#Variance of temperature -'Variance of temperature' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 208 ; - } -#Covariance of geopotential/specific humidity -'Covariance of geopotential/specific humidity' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 209 ; - } -#Covariance of temperature/specific humidity -'Covariance of temperature/specific humidity' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 210 ; - } -#Variance of specific humidity -'Variance of specific humidity' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 211 ; - } -#Covariance of u component/geopotential -'Covariance of u component/geopotential' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 212 ; - } -#Covariance of u component/temperature -'Covariance of u component/temperature' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 213 ; - } -#Covariance of u component/specific humidity -'Covariance of u component/specific humidity' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 214 ; - } -#Variance of u component -'Variance of u component' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 215 ; - } #Covariance of v component/geopotential 'Covariance of v component/geopotential' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/name.legacy.def b/definitions/grib2/localConcepts/ecmf/name.legacy.def index 5881e995d..42f558b37 100644 --- a/definitions/grib2/localConcepts/ecmf/name.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/name.legacy.def @@ -1399,3 +1399,231 @@ parameterCategory = 228 ; parameterNumber = 5 ; } +#Sea water potential temperature +'Sea water potential temperature' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; +} +#Sea water practical salinity +'Sea water practical salinity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; +} +#Upward sea water velocity +'Upward sea water velocity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; +} +#Sea water sigma theta +'Sea water sigma theta' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; +} +#Surface downward eastward stress +'Surface downward eastward stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; +} +#Surface downward northward stress +'Surface downward northward stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} +#Surface geopotential +'Surface geopotential' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; +} +#Vertical integral of temperature +'Vertical integral of temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; +} +#Vertical integral of cloud liquid water +'Vertical integral of cloud liquid water' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; +} +#Vertical integral of cloud frozen water +'Vertical integral of cloud frozen water' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; +} +#Vertical integral of ozone +'Vertical integral of ozone' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; +} +#Vertical integral of energy conversion +'Vertical integral of energy conversion' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; +} +#Vertical integral of eastward mass flux +'Vertical integral of eastward mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; +} +#Vertical integral of northward mass flux +'Vertical integral of northward mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; +} +#Vertical integral of eastward kinetic energy flux +'Vertical integral of eastward kinetic energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; +} +#Vertical integral of northward kinetic energy flux +'Vertical integral of northward kinetic energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; +} +#Vertical integral of eastward geopotential flux +'Vertical integral of eastward geopotential flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; +} +#Vertical integral of northward geopotential flux +'Vertical integral of northward geopotential flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; +} +#Vertical integral of eastward total energy flux +'Vertical integral of eastward total energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; +} +#Vertical integral of northward total energy flux +'Vertical integral of northward total energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; +} +#Vertical integral of eastward ozone flux +'Vertical integral of eastward ozone flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; +} +#Vertical integral of northward ozone flux +'Vertical integral of northward ozone flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; +} +#Vertical integral of divergence of mass flux +'Vertical integral of divergence of mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; +} +#Vertical integral of divergence of kinetic energy flux +'Vertical integral of divergence of kinetic energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; +} +#Vertical integral of divergence of thermal energy flux +'Vertical integral of divergence of thermal energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; +} +#Vertical integral of divergence of geopotential flux +'Vertical integral of divergence of geopotential flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; +} +#Vertical integral of divergence of total energy flux +'Vertical integral of divergence of total energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; +} +#Vertical integral of divergence of ozone flux +'Vertical integral of divergence of ozone flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; +} +#Variance of geopotential +'Variance of geopotential' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; +} +#Covariance of geopotential/temperature +'Covariance of geopotential/temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; +} +#Variance of temperature +'Variance of temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; +} +#Covariance of geopotential/specific humidity +'Covariance of geopotential/specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; +} +#Covariance of temperature/specific humidity +'Covariance of temperature/specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; +} +#Variance of specific humidity +'Variance of specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; +} +#Covariance of u component/geopotential +'Covariance of u component/geopotential' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; +} +#Covariance of u component/temperature +'Covariance of u component/temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; +} +#Covariance of u component/specific humidity +'Covariance of u component/specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; +} +#Variance of u component +'Variance of u component' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/paramId.def b/definitions/grib2/localConcepts/ecmf/paramId.def index 4f9498d96..46c8cd040 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.def @@ -16871,24 +16871,6 @@ parameterCategory = 151 ; parameterNumber = 128 ; } -#Sea water potential temperature -'151129' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 129 ; - } -#Sea water practical salinity -'151130' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 130 ; - } -#Upward sea water velocity -'151133' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 133 ; - } #Modulus of strain rate tensor '151134' = { discipline = 192 ; @@ -16913,12 +16895,6 @@ parameterCategory = 151 ; parameterNumber = 137 ; } -#Sea water sigma theta -'151138' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 138 ; - } #Richardson number '151139' = { discipline = 192 ; @@ -16991,18 +16967,6 @@ parameterCategory = 151 ; parameterNumber = 152 ; } -#Surface downward eastward stress -'151153' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 153 ; - } -#Surface downward northward stress -'151154' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 154 ; - } #Turbulent kinetic energy input '151155' = { discipline = 192 ; @@ -17603,198 +17567,6 @@ parameterCategory = 160 ; parameterNumber = 254 ; } -#Surface geopotential -'162051' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 51 ; - } -#Vertical integral of temperature -'162054' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 54 ; - } -#Vertical integral of cloud liquid water -'162056' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 56 ; - } -#Vertical integral of cloud frozen water -'162057' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 57 ; - } -#Vertical integral of ozone -'162058' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 58 ; - } -#Vertical integral of energy conversion -'162064' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 64 ; - } -#Vertical integral of eastward mass flux -'162065' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 65 ; - } -#Vertical integral of northward mass flux -'162066' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 66 ; - } -#Vertical integral of eastward kinetic energy flux -'162067' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 67 ; - } -#Vertical integral of northward kinetic energy flux -'162068' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 68 ; - } -#Vertical integral of eastward geopotential flux -'162073' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 73 ; - } -#Vertical integral of northward geopotential flux -'162074' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 74 ; - } -#Vertical integral of eastward total energy flux -'162075' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 75 ; - } -#Vertical integral of northward total energy flux -'162076' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 76 ; - } -#Vertical integral of eastward ozone flux -'162077' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 77 ; - } -#Vertical integral of northward ozone flux -'162078' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 78 ; - } -#Vertical integral of divergence of mass flux -'162081' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 81 ; - } -#Vertical integral of divergence of kinetic energy flux -'162082' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 82 ; - } -#Vertical integral of divergence of thermal energy flux -'162083' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 83 ; - } -#Vertical integral of divergence of geopotential flux -'162085' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 85 ; - } -#Vertical integral of divergence of total energy flux -'162086' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 86 ; - } -#Vertical integral of divergence of ozone flux -'162087' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 87 ; - } -#Variance of geopotential -'162206' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 206 ; - } -#Covariance of geopotential/temperature -'162207' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 207 ; - } -#Variance of temperature -'162208' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 208 ; - } -#Covariance of geopotential/specific humidity -'162209' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 209 ; - } -#Covariance of temperature/specific humidity -'162210' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 210 ; - } -#Variance of specific humidity -'162211' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 211 ; - } -#Covariance of u component/geopotential -'162212' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 212 ; - } -#Covariance of u component/temperature -'162213' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 213 ; - } -#Covariance of u component/specific humidity -'162214' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 214 ; - } -#Variance of u component -'162215' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 215 ; - } #Covariance of v component/geopotential '162216' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/paramId.legacy.def b/definitions/grib2/localConcepts/ecmf/paramId.legacy.def index 2326cf7b7..082896fc5 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.legacy.def @@ -1399,3 +1399,231 @@ parameterCategory = 228 ; parameterNumber = 5 ; } +#Sea water potential temperature +'151129' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; +} +#Sea water practical salinity +'151130' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; +} +#Upward sea water velocity +'151133' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; +} +#Sea water sigma theta +'151138' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; +} +#Surface downward eastward stress +'151153' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; +} +#Surface downward northward stress +'151154' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} +#Surface geopotential +'162051' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; +} +#Vertical integral of temperature +'162054' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; +} +#Vertical integral of cloud liquid water +'162056' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; +} +#Vertical integral of cloud frozen water +'162057' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; +} +#Vertical integral of ozone +'162058' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; +} +#Vertical integral of energy conversion +'162064' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; +} +#Vertical integral of eastward mass flux +'162065' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; +} +#Vertical integral of northward mass flux +'162066' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; +} +#Vertical integral of eastward kinetic energy flux +'162067' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; +} +#Vertical integral of northward kinetic energy flux +'162068' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; +} +#Vertical integral of eastward geopotential flux +'162073' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; +} +#Vertical integral of northward geopotential flux +'162074' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; +} +#Vertical integral of eastward total energy flux +'162075' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; +} +#Vertical integral of northward total energy flux +'162076' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; +} +#Vertical integral of eastward ozone flux +'162077' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; +} +#Vertical integral of northward ozone flux +'162078' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; +} +#Vertical integral of divergence of mass flux +'162081' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; +} +#Vertical integral of divergence of kinetic energy flux +'162082' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; +} +#Vertical integral of divergence of thermal energy flux +'162083' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; +} +#Vertical integral of divergence of geopotential flux +'162085' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; +} +#Vertical integral of divergence of total energy flux +'162086' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; +} +#Vertical integral of divergence of ozone flux +'162087' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; +} +#Variance of geopotential +'162206' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; +} +#Covariance of geopotential/temperature +'162207' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; +} +#Variance of temperature +'162208' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; +} +#Covariance of geopotential/specific humidity +'162209' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; +} +#Covariance of temperature/specific humidity +'162210' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; +} +#Variance of specific humidity +'162211' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; +} +#Covariance of u component/geopotential +'162212' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; +} +#Covariance of u component/temperature +'162213' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; +} +#Covariance of u component/specific humidity +'162214' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; +} +#Variance of u component +'162215' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/shortName.def b/definitions/grib2/localConcepts/ecmf/shortName.def index 945244df8..563048c1b 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.def @@ -16871,24 +16871,6 @@ parameterCategory = 151 ; parameterNumber = 128 ; } -#Sea water potential temperature -'thetao' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 129 ; - } -#Sea water practical salinity -'so' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 130 ; - } -#Upward sea water velocity -'wo' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 133 ; - } #Modulus of strain rate tensor 'mst' = { discipline = 192 ; @@ -16913,12 +16895,6 @@ parameterCategory = 151 ; parameterNumber = 137 ; } -#Sea water sigma theta -'sigmat' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 138 ; - } #Richardson number 'rn' = { discipline = 192 ; @@ -16991,18 +16967,6 @@ parameterCategory = 151 ; parameterNumber = 152 ; } -#Surface downward eastward stress -'taueo' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 153 ; - } -#Surface downward northward stress -'tauno' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 154 ; - } #Turbulent kinetic energy input 'tki' = { discipline = 192 ; @@ -17603,198 +17567,6 @@ parameterCategory = 160 ; parameterNumber = 254 ; } -#Surface geopotential -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 51 ; - } -#Vertical integral of temperature -'vit' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 54 ; - } -#Vertical integral of cloud liquid water -'vilw' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 56 ; - } -#Vertical integral of cloud frozen water -'viiw' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 57 ; - } -#Vertical integral of ozone -'vioz' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 58 ; - } -#Vertical integral of energy conversion -'viec' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 64 ; - } -#Vertical integral of eastward mass flux -'vimae' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 65 ; - } -#Vertical integral of northward mass flux -'viman' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 66 ; - } -#Vertical integral of eastward kinetic energy flux -'vikee' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 67 ; - } -#Vertical integral of northward kinetic energy flux -'viken' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 68 ; - } -#Vertical integral of eastward geopotential flux -'vige' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 73 ; - } -#Vertical integral of northward geopotential flux -'vign' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 74 ; - } -#Vertical integral of eastward total energy flux -'vitoee' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 75 ; - } -#Vertical integral of northward total energy flux -'vitoen' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 76 ; - } -#Vertical integral of eastward ozone flux -'vioze' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 77 ; - } -#Vertical integral of northward ozone flux -'viozn' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 78 ; - } -#Vertical integral of divergence of mass flux -'vimad' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 81 ; - } -#Vertical integral of divergence of kinetic energy flux -'viked' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 82 ; - } -#Vertical integral of divergence of thermal energy flux -'vithed' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 83 ; - } -#Vertical integral of divergence of geopotential flux -'vigd' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 85 ; - } -#Vertical integral of divergence of total energy flux -'vitoed' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 86 ; - } -#Vertical integral of divergence of ozone flux -'viozd' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 87 ; - } -#Variance of geopotential -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 206 ; - } -#Covariance of geopotential/temperature -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 207 ; - } -#Variance of temperature -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 208 ; - } -#Covariance of geopotential/specific humidity -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 209 ; - } -#Covariance of temperature/specific humidity -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 210 ; - } -#Variance of specific humidity -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 211 ; - } -#Covariance of u component/geopotential -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 212 ; - } -#Covariance of u component/temperature -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 213 ; - } -#Covariance of u component/specific humidity -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 214 ; - } -#Variance of u component -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 215 ; - } #Covariance of v component/geopotential '~' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/shortName.legacy.def b/definitions/grib2/localConcepts/ecmf/shortName.legacy.def index 69ef9ec96..a09f11b7f 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.legacy.def @@ -1399,3 +1399,231 @@ parameterCategory = 228 ; parameterNumber = 5 ; } +#Sea water potential temperature +'thetao' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; +} +#Sea water practical salinity +'so' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; +} +#Upward sea water velocity +'wo' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; +} +#Sea water sigma theta +'sigmat' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; +} +#Surface downward eastward stress +'taueo' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; +} +#Surface downward northward stress +'tauno' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} +#Surface geopotential +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; +} +#Vertical integral of temperature +'vit' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; +} +#Vertical integral of cloud liquid water +'vilw' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; +} +#Vertical integral of cloud frozen water +'viiw' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; +} +#Vertical integral of ozone +'vioz' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; +} +#Vertical integral of energy conversion +'viec' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; +} +#Vertical integral of eastward mass flux +'vimae' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; +} +#Vertical integral of northward mass flux +'viman' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; +} +#Vertical integral of eastward kinetic energy flux +'vikee' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; +} +#Vertical integral of northward kinetic energy flux +'viken' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; +} +#Vertical integral of eastward geopotential flux +'vige' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; +} +#Vertical integral of northward geopotential flux +'vign' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; +} +#Vertical integral of eastward total energy flux +'vitoee' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; +} +#Vertical integral of northward total energy flux +'vitoen' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; +} +#Vertical integral of eastward ozone flux +'vioze' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; +} +#Vertical integral of northward ozone flux +'viozn' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; +} +#Vertical integral of divergence of mass flux +'vimad' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; +} +#Vertical integral of divergence of kinetic energy flux +'viked' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; +} +#Vertical integral of divergence of thermal energy flux +'vithed' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; +} +#Vertical integral of divergence of geopotential flux +'vigd' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; +} +#Vertical integral of divergence of total energy flux +'vitoed' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; +} +#Vertical integral of divergence of ozone flux +'viozd' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; +} +#Variance of geopotential +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; +} +#Covariance of geopotential/temperature +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; +} +#Variance of temperature +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; +} +#Covariance of geopotential/specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; +} +#Covariance of temperature/specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; +} +#Variance of specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; +} +#Covariance of u component/geopotential +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; +} +#Covariance of u component/temperature +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; +} +#Covariance of u component/specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; +} +#Variance of u component +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/units.def b/definitions/grib2/localConcepts/ecmf/units.def index d6286a028..6adc93e89 100644 --- a/definitions/grib2/localConcepts/ecmf/units.def +++ b/definitions/grib2/localConcepts/ecmf/units.def @@ -16871,24 +16871,6 @@ parameterCategory = 151 ; parameterNumber = 128 ; } -#Sea water potential temperature -'deg C' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 129 ; - } -#Sea water practical salinity -'psu' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 130 ; - } -#Upward sea water velocity -'m s**-1' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 133 ; - } #Modulus of strain rate tensor 's**-1' = { discipline = 192 ; @@ -16913,12 +16895,6 @@ parameterCategory = 151 ; parameterNumber = 137 ; } -#Sea water sigma theta -'kg m**-3' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 138 ; - } #Richardson number '~' = { discipline = 192 ; @@ -16991,18 +16967,6 @@ parameterCategory = 151 ; parameterNumber = 152 ; } -#Surface downward eastward stress -'N m**-2' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 153 ; - } -#Surface downward northward stress -'N m**-2' = { - discipline = 192 ; - parameterCategory = 151 ; - parameterNumber = 154 ; - } #Turbulent kinetic energy input 'J m**-2' = { discipline = 192 ; @@ -17603,198 +17567,6 @@ parameterCategory = 160 ; parameterNumber = 254 ; } -#Surface geopotential -'m**2 s**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 51 ; - } -#Vertical integral of temperature -'K kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 54 ; - } -#Vertical integral of cloud liquid water -'kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 56 ; - } -#Vertical integral of cloud frozen water -'kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 57 ; - } -#Vertical integral of ozone -'kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 58 ; - } -#Vertical integral of energy conversion -'W m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 64 ; - } -#Vertical integral of eastward mass flux -'kg m**-1 s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 65 ; - } -#Vertical integral of northward mass flux -'kg m**-1 s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 66 ; - } -#Vertical integral of eastward kinetic energy flux -'W m**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 67 ; - } -#Vertical integral of northward kinetic energy flux -'W m**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 68 ; - } -#Vertical integral of eastward geopotential flux -'W m**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 73 ; - } -#Vertical integral of northward geopotential flux -'W m**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 74 ; - } -#Vertical integral of eastward total energy flux -'W m**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 75 ; - } -#Vertical integral of northward total energy flux -'W m**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 76 ; - } -#Vertical integral of eastward ozone flux -'kg m**-1 s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 77 ; - } -#Vertical integral of northward ozone flux -'kg m**-1 s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 78 ; - } -#Vertical integral of divergence of mass flux -'kg m**-2 s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 81 ; - } -#Vertical integral of divergence of kinetic energy flux -'W m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 82 ; - } -#Vertical integral of divergence of thermal energy flux -'W m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 83 ; - } -#Vertical integral of divergence of geopotential flux -'W m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 85 ; - } -#Vertical integral of divergence of total energy flux -'W m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 86 ; - } -#Vertical integral of divergence of ozone flux -'kg m**-2 s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 87 ; - } -#Variance of geopotential -'m**4 s**-4' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 206 ; - } -#Covariance of geopotential/temperature -'m**2 K s**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 207 ; - } -#Variance of temperature -'K**2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 208 ; - } -#Covariance of geopotential/specific humidity -'m**2 s**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 209 ; - } -#Covariance of temperature/specific humidity -'K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 210 ; - } -#Variance of specific humidity -'~' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 211 ; - } -#Covariance of u component/geopotential -'m**3 s**-3' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 212 ; - } -#Covariance of u component/temperature -'m s**-1 K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 213 ; - } -#Covariance of u component/specific humidity -'m s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 214 ; - } -#Variance of u component -'m**2 s**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 215 ; - } #Covariance of v component/geopotential 'm**3 s**-3' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/units.legacy.def b/definitions/grib2/localConcepts/ecmf/units.legacy.def index 36fe4bb79..6094190f0 100644 --- a/definitions/grib2/localConcepts/ecmf/units.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/units.legacy.def @@ -1399,3 +1399,231 @@ parameterCategory = 228 ; parameterNumber = 5 ; } +#Sea water potential temperature +'deg C' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; +} +#Sea water practical salinity +'psu' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; +} +#Upward sea water velocity +'m s**-1' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; +} +#Sea water sigma theta +'kg m**-3' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; +} +#Surface downward eastward stress +'N m**-2' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; +} +#Surface downward northward stress +'N m**-2' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} +#Surface geopotential +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; +} +#Vertical integral of temperature +'K kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; +} +#Vertical integral of cloud liquid water +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; +} +#Vertical integral of cloud frozen water +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; +} +#Vertical integral of ozone +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; +} +#Vertical integral of energy conversion +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; +} +#Vertical integral of eastward mass flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; +} +#Vertical integral of northward mass flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; +} +#Vertical integral of eastward kinetic energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; +} +#Vertical integral of northward kinetic energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; +} +#Vertical integral of eastward geopotential flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; +} +#Vertical integral of northward geopotential flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; +} +#Vertical integral of eastward total energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; +} +#Vertical integral of northward total energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; +} +#Vertical integral of eastward ozone flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; +} +#Vertical integral of northward ozone flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; +} +#Vertical integral of divergence of mass flux +'kg m**-2 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; +} +#Vertical integral of divergence of kinetic energy flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; +} +#Vertical integral of divergence of thermal energy flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; +} +#Vertical integral of divergence of geopotential flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; +} +#Vertical integral of divergence of total energy flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; +} +#Vertical integral of divergence of ozone flux +'kg m**-2 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; +} +#Variance of geopotential +'m**4 s**-4' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; +} +#Covariance of geopotential/temperature +'m**2 K s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; +} +#Variance of temperature +'K**2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; +} +#Covariance of geopotential/specific humidity +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; +} +#Covariance of temperature/specific humidity +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; +} +#Variance of specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; +} +#Covariance of u component/geopotential +'m**3 s**-3' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; +} +#Covariance of u component/temperature +'m s**-1 K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; +} +#Covariance of u component/specific humidity +'m s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; +} +#Variance of u component +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/era/cfName.def b/definitions/grib2/localConcepts/era/cfName.def new file mode 100644 index 000000000..f4a8abea5 --- /dev/null +++ b/definitions/grib2/localConcepts/era/cfName.def @@ -0,0 +1,72 @@ +# Automatically generated by ./create_def.pl, do not edit +#Geopotential +'geopotential' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'air_temperature' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Specific humidity +'specific_humidity' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Vertical velocity +'lagrangian_tendency_of_air_pressure' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Snow depth +'lwe_thickness_of_surface_snow_amount' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Sea water potential temperature +'sea_water_potential_temperature' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; + } +#Sea water practical salinity +'sea_water_practical_salinity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; + } +#Upward sea water velocity +'upward_sea_water_velocity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; + } +#Sea water sigma theta +'sea_water_sigma_theta' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; + } +#Surface downward eastward stress +'surface_downward_eastward_stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; + } +#Surface downward northward stress +'surface_downward_northward_stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; +} diff --git a/definitions/grib2/localConcepts/era/name.def b/definitions/grib2/localConcepts/era/name.def new file mode 100644 index 000000000..4d2ad4109 --- /dev/null +++ b/definitions/grib2/localConcepts/era/name.def @@ -0,0 +1,716 @@ +# Automatically generated by ./create_def.pl, do not edit +#Geopotential +'Geopotential' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'Temperature' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Specific humidity +'Specific humidity' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Vertical velocity +'Vertical velocity' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Logarithm of surface pressure +'Logarithm of surface pressure' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 105 ; + } +#Temperature difference +'Temperature difference' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 130 ; + } +#Specific humidity difference +'Specific humidity difference' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 133 ; + } +#Vorticity (relative) difference +'Vorticity (relative) difference' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 138 ; + } +#Logarithm of surface pressure difference +'Logarithm of surface pressure difference' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 152 ; + } +#Divergence difference +'Divergence difference' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 155 ; + } +#Ozone mass mixing ratio difference +'Ozone mass mixing ratio difference' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 203 ; + } +#Snow depth +'Snow depth' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Random pattern 1 for sppt +'Random pattern 1 for sppt' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 1 ; + } +#Random pattern 2 for sppt +'Random pattern 2 for sppt' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 2 ; + } +#Random pattern 3 for sppt +'Random pattern 3 for sppt' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 3 ; + } +#Random pattern 1 for SPP scheme +'Random pattern 1 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 101 ; + } +#Random pattern 2 for SPP scheme +'Random pattern 2 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 102 ; + } +#Random pattern 3 for SPP scheme +'Random pattern 3 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 103 ; + } +#Random pattern 4 for SPP scheme +'Random pattern 4 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 104 ; + } +#Random pattern 5 for SPP scheme +'Random pattern 5 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 105 ; + } +#Random pattern 6 for SPP scheme +'Random pattern 6 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 106 ; + } +#Random pattern 7 for SPP scheme +'Random pattern 7 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 107 ; + } +#Random pattern 8 for SPP scheme +'Random pattern 8 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 108 ; + } +#Random pattern 9 for SPP scheme +'Random pattern 9 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 109 ; + } +#Random pattern 10 for SPP scheme +'Random pattern 10 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 110 ; + } +#Random pattern 11 for SPP scheme +'Random pattern 11 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 111 ; + } +#Random pattern 12 for SPP scheme +'Random pattern 12 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 112 ; + } +#Random pattern 13 for SPP scheme +'Random pattern 13 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 113 ; + } +#Random pattern 14 for SPP scheme +'Random pattern 14 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 114 ; + } +#Random pattern 15 for SPP scheme +'Random pattern 15 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 115 ; + } +#Random pattern 16 for SPP scheme +'Random pattern 16 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 116 ; + } +#Random pattern 17 for SPP scheme +'Random pattern 17 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 117 ; + } +#Random pattern 18 for SPP scheme +'Random pattern 18 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 118 ; + } +#Random pattern 19 for SPP scheme +'Random pattern 19 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 119 ; + } +#Random pattern 20 for SPP scheme +'Random pattern 20 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 120 ; + } +#Random pattern 21 for SPP scheme +'Random pattern 21 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 121 ; + } +#Random pattern 22 for SPP scheme +'Random pattern 22 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 122 ; + } +#Random pattern 23 for SPP scheme +'Random pattern 23 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 123 ; + } +#Random pattern 24 for SPP scheme +'Random pattern 24 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 124 ; + } +#Random pattern 25 for SPP scheme +'Random pattern 25 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 125 ; + } +#Random pattern 26 for SPP scheme +'Random pattern 26 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 126 ; + } +#Random pattern 27 for SPP scheme +'Random pattern 27 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 127 ; + } +#Random pattern 28 for SPP scheme +'Random pattern 28 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 128 ; + } +#Random pattern 29 for SPP scheme +'Random pattern 29 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 129 ; + } +#Random pattern 30 for SPP scheme +'Random pattern 30 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 130 ; + } +#Random pattern 31 for SPP scheme +'Random pattern 31 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 131 ; + } +#Random pattern 32 for SPP scheme +'Random pattern 32 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 132 ; + } +#Random pattern 33 for SPP scheme +'Random pattern 33 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 133 ; + } +#Random pattern 34 for SPP scheme +'Random pattern 34 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 134 ; + } +#Random pattern 35 for SPP scheme +'Random pattern 35 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 135 ; + } +#Random pattern 36 for SPP scheme +'Random pattern 36 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 136 ; + } +#Random pattern 37 for SPP scheme +'Random pattern 37 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 137 ; + } +#Random pattern 38 for SPP scheme +'Random pattern 38 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 138 ; + } +#Random pattern 39 for SPP scheme +'Random pattern 39 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 139 ; + } +#Random pattern 40 for SPP scheme +'Random pattern 40 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 140 ; + } +#Random pattern 41 for SPP scheme +'Random pattern 41 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 141 ; + } +#Random pattern 42 for SPP scheme +'Random pattern 42 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 142 ; + } +#Random pattern 43 for SPP scheme +'Random pattern 43 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 143 ; + } +#Random pattern 44 for SPP scheme +'Random pattern 44 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 144 ; + } +#Random pattern 45 for SPP scheme +'Random pattern 45 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 145 ; + } +#Random pattern 46 for SPP scheme +'Random pattern 46 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 146 ; + } +#Random pattern 47 for SPP scheme +'Random pattern 47 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 147 ; + } +#Random pattern 48 for SPP scheme +'Random pattern 48 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 148 ; + } +#Random pattern 49 for SPP scheme +'Random pattern 49 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 149 ; + } +#Random pattern 50 for SPP scheme +'Random pattern 50 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 150 ; + } +#Random pattern 51 for SPP scheme +'Random pattern 51 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 151 ; + } +#Random pattern 52 for SPP scheme +'Random pattern 52 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 152 ; + } +#Random pattern 53 for SPP scheme +'Random pattern 53 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 153 ; + } +#Random pattern 54 for SPP scheme +'Random pattern 54 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 154 ; + } +#Random pattern 55 for SPP scheme +'Random pattern 55 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 155 ; + } +#Random pattern 56 for SPP scheme +'Random pattern 56 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 156 ; + } +#Random pattern 57 for SPP scheme +'Random pattern 57 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 157 ; + } +#Random pattern 58 for SPP scheme +'Random pattern 58 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 158 ; + } +#Random pattern 59 for SPP scheme +'Random pattern 59 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 159 ; + } +#Random pattern 60 for SPP scheme +'Random pattern 60 for SPP scheme' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 160 ; + } +#Evaporation from the top of canopy +'Evaporation from the top of canopy' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 100 ; + } +#Evaporation from bare soil +'Evaporation from bare soil' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 101 ; + } +#Evaporation from open water surfaces excluding oceans +'Evaporation from open water surfaces excluding oceans' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 102 ; + } +#Evaporation from vegetation transpiration +'Evaporation from vegetation transpiration' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 103 ; + } +#Snow cover +'Snow cover' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Sea water potential temperature +'Sea water potential temperature' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; + } +#Sea water practical salinity +'Sea water practical salinity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; + } +#Upward sea water velocity +'Upward sea water velocity' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; + } +#Sea water sigma theta +'Sea water sigma theta' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; + } +#Surface downward eastward stress +'Surface downward eastward stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; + } +#Surface downward northward stress +'Surface downward northward stress' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; + } +#Surface geopotential +'Surface geopotential' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; + } +#Vertical integral of temperature +'Vertical integral of temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; + } +#Vertical integral of cloud liquid water +'Vertical integral of cloud liquid water' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; + } +#Vertical integral of cloud frozen water +'Vertical integral of cloud frozen water' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; + } +#Vertical integral of ozone +'Vertical integral of ozone' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; + } +#Vertical integral of energy conversion +'Vertical integral of energy conversion' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; + } +#Vertical integral of eastward mass flux +'Vertical integral of eastward mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; + } +#Vertical integral of northward mass flux +'Vertical integral of northward mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; + } +#Vertical integral of eastward kinetic energy flux +'Vertical integral of eastward kinetic energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; + } +#Vertical integral of northward kinetic energy flux +'Vertical integral of northward kinetic energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; + } +#Vertical integral of eastward geopotential flux +'Vertical integral of eastward geopotential flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; + } +#Vertical integral of northward geopotential flux +'Vertical integral of northward geopotential flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; + } +#Vertical integral of eastward total energy flux +'Vertical integral of eastward total energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; + } +#Vertical integral of northward total energy flux +'Vertical integral of northward total energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; + } +#Vertical integral of eastward ozone flux +'Vertical integral of eastward ozone flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; + } +#Vertical integral of northward ozone flux +'Vertical integral of northward ozone flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; + } +#Vertical integral of divergence of mass flux +'Vertical integral of divergence of mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; + } +#Vertical integral of divergence of kinetic energy flux +'Vertical integral of divergence of kinetic energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; + } +#Vertical integral of divergence of thermal energy flux +'Vertical integral of divergence of thermal energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; + } +#Vertical integral of divergence of geopotential flux +'Vertical integral of divergence of geopotential flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; + } +#Vertical integral of divergence of total energy flux +'Vertical integral of divergence of total energy flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; + } +#Vertical integral of divergence of ozone flux +'Vertical integral of divergence of ozone flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; + } +#Variance of geopotential +'Variance of geopotential' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; + } +#Covariance of geopotential/temperature +'Covariance of geopotential/temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; + } +#Variance of temperature +'Variance of temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; + } +#Covariance of geopotential/specific humidity +'Covariance of geopotential/specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; + } +#Covariance of temperature/specific humidity +'Covariance of temperature/specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; + } +#Variance of specific humidity +'Variance of specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; + } +#Covariance of u component/geopotential +'Covariance of u component/geopotential' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; + } +#Covariance of u component/temperature +'Covariance of u component/temperature' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; + } +#Covariance of u component/specific humidity +'Covariance of u component/specific humidity' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; + } +#Variance of u component +'Variance of u component' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/era/paramId.def b/definitions/grib2/localConcepts/era/paramId.def new file mode 100644 index 000000000..7b3a0ca44 --- /dev/null +++ b/definitions/grib2/localConcepts/era/paramId.def @@ -0,0 +1,716 @@ +# Automatically generated by ./create_def.pl, do not edit +#Geopotential +'129' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'130' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Specific humidity +'133' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Vertical velocity +'135' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Logarithm of surface pressure +'152' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 105 ; + } +#Temperature difference +'200130' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 130 ; + } +#Specific humidity difference +'200133' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 133 ; + } +#Vorticity (relative) difference +'200138' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 138 ; + } +#Logarithm of surface pressure difference +'200152' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 152 ; + } +#Divergence difference +'200155' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 155 ; + } +#Ozone mass mixing ratio difference +'200203' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 203 ; + } +#Snow depth +'3066' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Random pattern 1 for sppt +'213001' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 1 ; + } +#Random pattern 2 for sppt +'213002' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 2 ; + } +#Random pattern 3 for sppt +'213003' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 3 ; + } +#Random pattern 1 for SPP scheme +'213101' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 101 ; + } +#Random pattern 2 for SPP scheme +'213102' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 102 ; + } +#Random pattern 3 for SPP scheme +'213103' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 103 ; + } +#Random pattern 4 for SPP scheme +'213104' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 104 ; + } +#Random pattern 5 for SPP scheme +'213105' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 105 ; + } +#Random pattern 6 for SPP scheme +'213106' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 106 ; + } +#Random pattern 7 for SPP scheme +'213107' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 107 ; + } +#Random pattern 8 for SPP scheme +'213108' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 108 ; + } +#Random pattern 9 for SPP scheme +'213109' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 109 ; + } +#Random pattern 10 for SPP scheme +'213110' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 110 ; + } +#Random pattern 11 for SPP scheme +'213111' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 111 ; + } +#Random pattern 12 for SPP scheme +'213112' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 112 ; + } +#Random pattern 13 for SPP scheme +'213113' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 113 ; + } +#Random pattern 14 for SPP scheme +'213114' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 114 ; + } +#Random pattern 15 for SPP scheme +'213115' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 115 ; + } +#Random pattern 16 for SPP scheme +'213116' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 116 ; + } +#Random pattern 17 for SPP scheme +'213117' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 117 ; + } +#Random pattern 18 for SPP scheme +'213118' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 118 ; + } +#Random pattern 19 for SPP scheme +'213119' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 119 ; + } +#Random pattern 20 for SPP scheme +'213120' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 120 ; + } +#Random pattern 21 for SPP scheme +'213121' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 121 ; + } +#Random pattern 22 for SPP scheme +'213122' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 122 ; + } +#Random pattern 23 for SPP scheme +'213123' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 123 ; + } +#Random pattern 24 for SPP scheme +'213124' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 124 ; + } +#Random pattern 25 for SPP scheme +'213125' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 125 ; + } +#Random pattern 26 for SPP scheme +'213126' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 126 ; + } +#Random pattern 27 for SPP scheme +'213127' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 127 ; + } +#Random pattern 28 for SPP scheme +'213128' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 128 ; + } +#Random pattern 29 for SPP scheme +'213129' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 129 ; + } +#Random pattern 30 for SPP scheme +'213130' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 130 ; + } +#Random pattern 31 for SPP scheme +'213131' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 131 ; + } +#Random pattern 32 for SPP scheme +'213132' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 132 ; + } +#Random pattern 33 for SPP scheme +'213133' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 133 ; + } +#Random pattern 34 for SPP scheme +'213134' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 134 ; + } +#Random pattern 35 for SPP scheme +'213135' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 135 ; + } +#Random pattern 36 for SPP scheme +'213136' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 136 ; + } +#Random pattern 37 for SPP scheme +'213137' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 137 ; + } +#Random pattern 38 for SPP scheme +'213138' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 138 ; + } +#Random pattern 39 for SPP scheme +'213139' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 139 ; + } +#Random pattern 40 for SPP scheme +'213140' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 140 ; + } +#Random pattern 41 for SPP scheme +'213141' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 141 ; + } +#Random pattern 42 for SPP scheme +'213142' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 142 ; + } +#Random pattern 43 for SPP scheme +'213143' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 143 ; + } +#Random pattern 44 for SPP scheme +'213144' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 144 ; + } +#Random pattern 45 for SPP scheme +'213145' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 145 ; + } +#Random pattern 46 for SPP scheme +'213146' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 146 ; + } +#Random pattern 47 for SPP scheme +'213147' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 147 ; + } +#Random pattern 48 for SPP scheme +'213148' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 148 ; + } +#Random pattern 49 for SPP scheme +'213149' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 149 ; + } +#Random pattern 50 for SPP scheme +'213150' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 150 ; + } +#Random pattern 51 for SPP scheme +'213151' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 151 ; + } +#Random pattern 52 for SPP scheme +'213152' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 152 ; + } +#Random pattern 53 for SPP scheme +'213153' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 153 ; + } +#Random pattern 54 for SPP scheme +'213154' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 154 ; + } +#Random pattern 55 for SPP scheme +'213155' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 155 ; + } +#Random pattern 56 for SPP scheme +'213156' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 156 ; + } +#Random pattern 57 for SPP scheme +'213157' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 157 ; + } +#Random pattern 58 for SPP scheme +'213158' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 158 ; + } +#Random pattern 59 for SPP scheme +'213159' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 159 ; + } +#Random pattern 60 for SPP scheme +'213160' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 160 ; + } +#Evaporation from the top of canopy +'228100' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 100 ; + } +#Evaporation from bare soil +'228101' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 101 ; + } +#Evaporation from open water surfaces excluding oceans +'228102' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 102 ; + } +#Evaporation from vegetation transpiration +'228103' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 103 ; + } +#Snow cover +'260038' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Sea water potential temperature +'151129' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; + } +#Sea water practical salinity +'151130' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; + } +#Upward sea water velocity +'151133' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; + } +#Sea water sigma theta +'151138' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; + } +#Surface downward eastward stress +'151153' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; + } +#Surface downward northward stress +'151154' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; + } +#Surface geopotential +'162051' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; + } +#Vertical integral of temperature +'162054' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; + } +#Vertical integral of cloud liquid water +'162056' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; + } +#Vertical integral of cloud frozen water +'162057' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; + } +#Vertical integral of ozone +'162058' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; + } +#Vertical integral of energy conversion +'162064' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; + } +#Vertical integral of eastward mass flux +'162065' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; + } +#Vertical integral of northward mass flux +'162066' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; + } +#Vertical integral of eastward kinetic energy flux +'162067' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; + } +#Vertical integral of northward kinetic energy flux +'162068' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; + } +#Vertical integral of eastward geopotential flux +'162073' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; + } +#Vertical integral of northward geopotential flux +'162074' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; + } +#Vertical integral of eastward total energy flux +'162075' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; + } +#Vertical integral of northward total energy flux +'162076' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; + } +#Vertical integral of eastward ozone flux +'162077' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; + } +#Vertical integral of northward ozone flux +'162078' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; + } +#Vertical integral of divergence of mass flux +'162081' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; + } +#Vertical integral of divergence of kinetic energy flux +'162082' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; + } +#Vertical integral of divergence of thermal energy flux +'162083' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; + } +#Vertical integral of divergence of geopotential flux +'162085' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; + } +#Vertical integral of divergence of total energy flux +'162086' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; + } +#Vertical integral of divergence of ozone flux +'162087' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; + } +#Variance of geopotential +'162206' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; + } +#Covariance of geopotential/temperature +'162207' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; + } +#Variance of temperature +'162208' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; + } +#Covariance of geopotential/specific humidity +'162209' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; + } +#Covariance of temperature/specific humidity +'162210' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; + } +#Variance of specific humidity +'162211' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; + } +#Covariance of u component/geopotential +'162212' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; + } +#Covariance of u component/temperature +'162213' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; + } +#Covariance of u component/specific humidity +'162214' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; + } +#Variance of u component +'162215' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/era/shortName.def b/definitions/grib2/localConcepts/era/shortName.def new file mode 100644 index 000000000..5deb9835b --- /dev/null +++ b/definitions/grib2/localConcepts/era/shortName.def @@ -0,0 +1,716 @@ +# Automatically generated by ./create_def.pl, do not edit +#Geopotential +'z' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Specific humidity +'q' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Vertical velocity +'w' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Logarithm of surface pressure +'lnsp' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 105 ; + } +#Temperature difference +'tdiff' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 130 ; + } +#Specific humidity difference +'qdiff' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 133 ; + } +#Vorticity (relative) difference +'vodiff' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 138 ; + } +#Logarithm of surface pressure difference +'lnspdiff' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 152 ; + } +#Divergence difference +'ddiff' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 155 ; + } +#Ozone mass mixing ratio difference +'o3diff' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 203 ; + } +#Snow depth +'sde' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Random pattern 1 for sppt +'sppt1' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 1 ; + } +#Random pattern 2 for sppt +'sppt2' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 2 ; + } +#Random pattern 3 for sppt +'sppt3' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 3 ; + } +#Random pattern 1 for SPP scheme +'spp1' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 101 ; + } +#Random pattern 2 for SPP scheme +'spp2' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 102 ; + } +#Random pattern 3 for SPP scheme +'spp3' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 103 ; + } +#Random pattern 4 for SPP scheme +'spp4' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 104 ; + } +#Random pattern 5 for SPP scheme +'spp5' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 105 ; + } +#Random pattern 6 for SPP scheme +'spp6' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 106 ; + } +#Random pattern 7 for SPP scheme +'spp7' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 107 ; + } +#Random pattern 8 for SPP scheme +'spp8' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 108 ; + } +#Random pattern 9 for SPP scheme +'spp9' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 109 ; + } +#Random pattern 10 for SPP scheme +'spp10' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 110 ; + } +#Random pattern 11 for SPP scheme +'spp11' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 111 ; + } +#Random pattern 12 for SPP scheme +'spp12' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 112 ; + } +#Random pattern 13 for SPP scheme +'spp13' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 113 ; + } +#Random pattern 14 for SPP scheme +'spp14' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 114 ; + } +#Random pattern 15 for SPP scheme +'spp15' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 115 ; + } +#Random pattern 16 for SPP scheme +'spp16' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 116 ; + } +#Random pattern 17 for SPP scheme +'spp17' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 117 ; + } +#Random pattern 18 for SPP scheme +'spp18' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 118 ; + } +#Random pattern 19 for SPP scheme +'spp19' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 119 ; + } +#Random pattern 20 for SPP scheme +'spp20' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 120 ; + } +#Random pattern 21 for SPP scheme +'spp21' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 121 ; + } +#Random pattern 22 for SPP scheme +'spp22' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 122 ; + } +#Random pattern 23 for SPP scheme +'spp23' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 123 ; + } +#Random pattern 24 for SPP scheme +'spp24' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 124 ; + } +#Random pattern 25 for SPP scheme +'spp25' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 125 ; + } +#Random pattern 26 for SPP scheme +'spp26' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 126 ; + } +#Random pattern 27 for SPP scheme +'spp27' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 127 ; + } +#Random pattern 28 for SPP scheme +'spp28' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 128 ; + } +#Random pattern 29 for SPP scheme +'spp29' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 129 ; + } +#Random pattern 30 for SPP scheme +'spp30' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 130 ; + } +#Random pattern 31 for SPP scheme +'spp31' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 131 ; + } +#Random pattern 32 for SPP scheme +'spp32' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 132 ; + } +#Random pattern 33 for SPP scheme +'spp33' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 133 ; + } +#Random pattern 34 for SPP scheme +'spp34' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 134 ; + } +#Random pattern 35 for SPP scheme +'spp35' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 135 ; + } +#Random pattern 36 for SPP scheme +'spp36' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 136 ; + } +#Random pattern 37 for SPP scheme +'spp37' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 137 ; + } +#Random pattern 38 for SPP scheme +'spp38' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 138 ; + } +#Random pattern 39 for SPP scheme +'spp39' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 139 ; + } +#Random pattern 40 for SPP scheme +'spp40' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 140 ; + } +#Random pattern 41 for SPP scheme +'spp41' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 141 ; + } +#Random pattern 42 for SPP scheme +'spp42' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 142 ; + } +#Random pattern 43 for SPP scheme +'spp43' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 143 ; + } +#Random pattern 44 for SPP scheme +'spp44' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 144 ; + } +#Random pattern 45 for SPP scheme +'spp45' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 145 ; + } +#Random pattern 46 for SPP scheme +'spp46' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 146 ; + } +#Random pattern 47 for SPP scheme +'spp47' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 147 ; + } +#Random pattern 48 for SPP scheme +'spp48' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 148 ; + } +#Random pattern 49 for SPP scheme +'spp49' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 149 ; + } +#Random pattern 50 for SPP scheme +'spp50' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 150 ; + } +#Random pattern 51 for SPP scheme +'spp51' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 151 ; + } +#Random pattern 52 for SPP scheme +'spp52' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 152 ; + } +#Random pattern 53 for SPP scheme +'spp53' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 153 ; + } +#Random pattern 54 for SPP scheme +'spp54' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 154 ; + } +#Random pattern 55 for SPP scheme +'spp55' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 155 ; + } +#Random pattern 56 for SPP scheme +'spp56' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 156 ; + } +#Random pattern 57 for SPP scheme +'spp57' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 157 ; + } +#Random pattern 58 for SPP scheme +'spp58' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 158 ; + } +#Random pattern 59 for SPP scheme +'spp59' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 159 ; + } +#Random pattern 60 for SPP scheme +'spp60' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 160 ; + } +#Evaporation from the top of canopy +'evatc' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 100 ; + } +#Evaporation from bare soil +'evabs' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 101 ; + } +#Evaporation from open water surfaces excluding oceans +'evaow' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 102 ; + } +#Evaporation from vegetation transpiration +'evavt' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 103 ; + } +#Snow cover +'snowc' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Sea water potential temperature +'thetao' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; + } +#Sea water practical salinity +'so' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; + } +#Upward sea water velocity +'wo' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; + } +#Sea water sigma theta +'sigmat' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; + } +#Surface downward eastward stress +'taueo' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; + } +#Surface downward northward stress +'tauno' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; + } +#Surface geopotential +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; + } +#Vertical integral of temperature +'vit' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; + } +#Vertical integral of cloud liquid water +'vilw' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; + } +#Vertical integral of cloud frozen water +'viiw' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; + } +#Vertical integral of ozone +'vioz' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; + } +#Vertical integral of energy conversion +'viec' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; + } +#Vertical integral of eastward mass flux +'vimae' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; + } +#Vertical integral of northward mass flux +'viman' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; + } +#Vertical integral of eastward kinetic energy flux +'vikee' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; + } +#Vertical integral of northward kinetic energy flux +'viken' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; + } +#Vertical integral of eastward geopotential flux +'vige' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; + } +#Vertical integral of northward geopotential flux +'vign' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; + } +#Vertical integral of eastward total energy flux +'vitoee' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; + } +#Vertical integral of northward total energy flux +'vitoen' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; + } +#Vertical integral of eastward ozone flux +'vioze' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; + } +#Vertical integral of northward ozone flux +'viozn' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; + } +#Vertical integral of divergence of mass flux +'vimad' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; + } +#Vertical integral of divergence of kinetic energy flux +'viked' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; + } +#Vertical integral of divergence of thermal energy flux +'vithed' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; + } +#Vertical integral of divergence of geopotential flux +'vigd' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; + } +#Vertical integral of divergence of total energy flux +'vitoed' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; + } +#Vertical integral of divergence of ozone flux +'viozd' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; + } +#Variance of geopotential +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; + } +#Covariance of geopotential/temperature +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; + } +#Variance of temperature +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; + } +#Covariance of geopotential/specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; + } +#Covariance of temperature/specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; + } +#Variance of specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; + } +#Covariance of u component/geopotential +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; + } +#Covariance of u component/temperature +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; + } +#Covariance of u component/specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; + } +#Variance of u component +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/era/units.def b/definitions/grib2/localConcepts/era/units.def new file mode 100644 index 000000000..f24cf39be --- /dev/null +++ b/definitions/grib2/localConcepts/era/units.def @@ -0,0 +1,716 @@ +# Automatically generated by ./create_def.pl, do not edit +#Geopotential +'m**2 s**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Specific humidity +'kg kg**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } +#Vertical velocity +'Pa s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Logarithm of surface pressure +'Numeric' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 105 ; + } +#Temperature difference +'K' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 130 ; + } +#Specific humidity difference +'kg kg**-1' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 133 ; + } +#Vorticity (relative) difference +'s**-1' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 138 ; + } +#Logarithm of surface pressure difference +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 152 ; + } +#Divergence difference +'s**-1' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 155 ; + } +#Ozone mass mixing ratio difference +'kg kg**-1' = { + discipline = 192 ; + parameterCategory = 200 ; + parameterNumber = 203 ; + } +#Snow depth +'m' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Random pattern 1 for sppt +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 1 ; + } +#Random pattern 2 for sppt +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 2 ; + } +#Random pattern 3 for sppt +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 3 ; + } +#Random pattern 1 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 101 ; + } +#Random pattern 2 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 102 ; + } +#Random pattern 3 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 103 ; + } +#Random pattern 4 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 104 ; + } +#Random pattern 5 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 105 ; + } +#Random pattern 6 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 106 ; + } +#Random pattern 7 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 107 ; + } +#Random pattern 8 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 108 ; + } +#Random pattern 9 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 109 ; + } +#Random pattern 10 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 110 ; + } +#Random pattern 11 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 111 ; + } +#Random pattern 12 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 112 ; + } +#Random pattern 13 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 113 ; + } +#Random pattern 14 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 114 ; + } +#Random pattern 15 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 115 ; + } +#Random pattern 16 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 116 ; + } +#Random pattern 17 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 117 ; + } +#Random pattern 18 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 118 ; + } +#Random pattern 19 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 119 ; + } +#Random pattern 20 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 120 ; + } +#Random pattern 21 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 121 ; + } +#Random pattern 22 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 122 ; + } +#Random pattern 23 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 123 ; + } +#Random pattern 24 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 124 ; + } +#Random pattern 25 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 125 ; + } +#Random pattern 26 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 126 ; + } +#Random pattern 27 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 127 ; + } +#Random pattern 28 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 128 ; + } +#Random pattern 29 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 129 ; + } +#Random pattern 30 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 130 ; + } +#Random pattern 31 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 131 ; + } +#Random pattern 32 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 132 ; + } +#Random pattern 33 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 133 ; + } +#Random pattern 34 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 134 ; + } +#Random pattern 35 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 135 ; + } +#Random pattern 36 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 136 ; + } +#Random pattern 37 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 137 ; + } +#Random pattern 38 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 138 ; + } +#Random pattern 39 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 139 ; + } +#Random pattern 40 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 140 ; + } +#Random pattern 41 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 141 ; + } +#Random pattern 42 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 142 ; + } +#Random pattern 43 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 143 ; + } +#Random pattern 44 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 144 ; + } +#Random pattern 45 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 145 ; + } +#Random pattern 46 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 146 ; + } +#Random pattern 47 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 147 ; + } +#Random pattern 48 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 148 ; + } +#Random pattern 49 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 149 ; + } +#Random pattern 50 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 150 ; + } +#Random pattern 51 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 151 ; + } +#Random pattern 52 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 152 ; + } +#Random pattern 53 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 153 ; + } +#Random pattern 54 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 154 ; + } +#Random pattern 55 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 155 ; + } +#Random pattern 56 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 156 ; + } +#Random pattern 57 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 157 ; + } +#Random pattern 58 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 158 ; + } +#Random pattern 59 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 159 ; + } +#Random pattern 60 for SPP scheme +'dimensionless' = { + discipline = 192 ; + parameterCategory = 213 ; + parameterNumber = 160 ; + } +#Evaporation from the top of canopy +'m of water equivalent' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 100 ; + } +#Evaporation from bare soil +'m of water equivalent' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 101 ; + } +#Evaporation from open water surfaces excluding oceans +'m of water equivalent' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 102 ; + } +#Evaporation from vegetation transpiration +'m of water equivalent' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 103 ; + } +#Snow cover +'%' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Sea water potential temperature +'deg C' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 129 ; + } +#Sea water practical salinity +'psu' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 130 ; + } +#Upward sea water velocity +'m s**-1' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 133 ; + } +#Sea water sigma theta +'kg m**-3' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 138 ; + } +#Surface downward eastward stress +'N m**-2' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 153 ; + } +#Surface downward northward stress +'N m**-2' = { + discipline = 192 ; + parameterCategory = 151 ; + parameterNumber = 154 ; + } +#Surface geopotential +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 51 ; + } +#Vertical integral of temperature +'K kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 54 ; + } +#Vertical integral of cloud liquid water +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 56 ; + } +#Vertical integral of cloud frozen water +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 57 ; + } +#Vertical integral of ozone +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 58 ; + } +#Vertical integral of energy conversion +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 64 ; + } +#Vertical integral of eastward mass flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 65 ; + } +#Vertical integral of northward mass flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 66 ; + } +#Vertical integral of eastward kinetic energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 67 ; + } +#Vertical integral of northward kinetic energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 68 ; + } +#Vertical integral of eastward geopotential flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 73 ; + } +#Vertical integral of northward geopotential flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 74 ; + } +#Vertical integral of eastward total energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 75 ; + } +#Vertical integral of northward total energy flux +'W m**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 76 ; + } +#Vertical integral of eastward ozone flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 77 ; + } +#Vertical integral of northward ozone flux +'kg m**-1 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 78 ; + } +#Vertical integral of divergence of mass flux +'kg m**-2 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 81 ; + } +#Vertical integral of divergence of kinetic energy flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 82 ; + } +#Vertical integral of divergence of thermal energy flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 83 ; + } +#Vertical integral of divergence of geopotential flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 85 ; + } +#Vertical integral of divergence of total energy flux +'W m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 86 ; + } +#Vertical integral of divergence of ozone flux +'kg m**-2 s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 87 ; + } +#Variance of geopotential +'m**4 s**-4' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 206 ; + } +#Covariance of geopotential/temperature +'m**2 K s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 207 ; + } +#Variance of temperature +'K**2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 208 ; + } +#Covariance of geopotential/specific humidity +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 209 ; + } +#Covariance of temperature/specific humidity +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 210 ; + } +#Variance of specific humidity +'~' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 211 ; + } +#Covariance of u component/geopotential +'m**3 s**-3' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 212 ; + } +#Covariance of u component/temperature +'m s**-1 K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 213 ; + } +#Covariance of u component/specific humidity +'m s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 214 ; + } +#Variance of u component +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 215 ; +} diff --git a/definitions/grib2/localConcepts/uerra/cfName.def b/definitions/grib2/localConcepts/uerra/cfName.def index 4d9bdee78..3e3c697fa 100644 --- a/definitions/grib2/localConcepts/uerra/cfName.def +++ b/definitions/grib2/localConcepts/uerra/cfName.def @@ -7,6 +7,20 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Geopotential +'geopotential' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'air_temperature' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #U component of wind 'eastward_wind' = { discipline = 0 ; @@ -21,6 +35,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Specific humidity +'specific_humidity' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Surface pressure 'surface_air_pressure' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/uerra/cfVarName.def b/definitions/grib2/localConcepts/uerra/cfVarName.def index 342088a14..2242d96a0 100644 --- a/definitions/grib2/localConcepts/uerra/cfVarName.def +++ b/definitions/grib2/localConcepts/uerra/cfVarName.def @@ -93,6 +93,20 @@ typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; } +#Geopotential +'z' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #U component of wind 'u' = { discipline = 0 ; @@ -107,6 +121,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Specific humidity +'q' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Surface pressure 'sp' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/uerra/name.def b/definitions/grib2/localConcepts/uerra/name.def index 05e8b9e58..59a55bdf5 100644 --- a/definitions/grib2/localConcepts/uerra/name.def +++ b/definitions/grib2/localConcepts/uerra/name.def @@ -93,6 +93,20 @@ typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; } +#Geopotential +'Geopotential' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'Temperature' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #U component of wind 'U component of wind' = { discipline = 0 ; @@ -107,6 +121,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Specific humidity +'Specific humidity' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Surface pressure 'Surface pressure' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/uerra/paramId.def b/definitions/grib2/localConcepts/uerra/paramId.def index 1138be8da..8db696b0d 100644 --- a/definitions/grib2/localConcepts/uerra/paramId.def +++ b/definitions/grib2/localConcepts/uerra/paramId.def @@ -93,6 +93,20 @@ typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; } +#Geopotential +'129' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'130' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #U component of wind '131' = { discipline = 0 ; @@ -107,6 +121,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Specific humidity +'133' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Surface pressure '134' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/uerra/shortName.def b/definitions/grib2/localConcepts/uerra/shortName.def index 63499bec2..9eefdd1fe 100644 --- a/definitions/grib2/localConcepts/uerra/shortName.def +++ b/definitions/grib2/localConcepts/uerra/shortName.def @@ -93,6 +93,20 @@ typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; } +#Geopotential +'z' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #U component of wind 'u' = { discipline = 0 ; @@ -107,6 +121,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Specific humidity +'q' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Surface pressure 'sp' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/uerra/units.def b/definitions/grib2/localConcepts/uerra/units.def index 353070afd..1abfdfd20 100644 --- a/definitions/grib2/localConcepts/uerra/units.def +++ b/definitions/grib2/localConcepts/uerra/units.def @@ -93,6 +93,20 @@ typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; } +#Geopotential +'m**2 s**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Temperature +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #U component of wind 'm s**-1' = { discipline = 0 ; @@ -107,6 +121,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Specific humidity +'kg kg**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Surface pressure 'Pa' = { discipline = 0 ; diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index c246c157f..1a0196347 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -4916,6 +4916,34 @@ parameterNumber = 18 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean snow depth +'Time-mean snow depth' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean snow cover +'Time-mean snow cover' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean geopotential +'Time-mean geopotential' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean temperature +'Time-mean temperature' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean U component of wind 'Time-mean U component of wind' = { discipline = 0 ; @@ -4930,6 +4958,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean specific humidity +'Time-mean specific humidity' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean surface pressure 'Time-mean surface pressure' = { discipline = 0 ; @@ -4938,6 +4973,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean vertical velocity +'Time-mean vertical velocity' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean total column water 'Time-mean total column water' = { discipline = 0 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index eea7c712e..55cc9a44e 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -4916,6 +4916,34 @@ parameterNumber = 18 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean snow depth +'235095' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean snow cover +'235096' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean geopotential +'235129' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean temperature +'235130' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean U component of wind '235131' = { discipline = 0 ; @@ -4930,6 +4958,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean specific humidity +'235133' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean surface pressure '235134' = { discipline = 0 ; @@ -4938,6 +4973,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean vertical velocity +'235135' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean total column water '235136' = { discipline = 0 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index b36df1705..b855a6063 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -4916,6 +4916,34 @@ parameterNumber = 18 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean snow depth +'msde' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean snow cover +'msnowc' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean geopotential +'mz' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean temperature +'mt' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean U component of wind 'mu' = { discipline = 0 ; @@ -4930,6 +4958,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean specific humidity +'mq' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean surface pressure 'msp' = { discipline = 0 ; @@ -4938,6 +4973,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean vertical velocity +'mw' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean total column water 'mtcw' = { discipline = 0 ; diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 4ba290e9b..ab472b684 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -4916,6 +4916,34 @@ parameterNumber = 18 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean snow depth +'m' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 11 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean snow cover +'%' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean geopotential +'m**2 s**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + } +#Time-mean temperature +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean U component of wind 'm s**-1' = { discipline = 0 ; @@ -4930,6 +4958,13 @@ parameterNumber = 3 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean specific humidity +'kg kg**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 0 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean surface pressure 'Pa' = { discipline = 0 ; @@ -4938,6 +4973,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean vertical velocity +'Pa s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean total column water 'kg m**-2' = { discipline = 0 ; diff --git a/tests/grib_cfNames.sh b/tests/grib_cfNames.sh index 369395a00..882d38139 100755 --- a/tests/grib_cfNames.sh +++ b/tests/grib_cfNames.sh @@ -49,9 +49,9 @@ ${tools_dir}/grib_set -s indicatorOfParameter=163,table2Version=151 $sample1 $te grib_check_key_equals $temp cfName depth_of_isosurface_of_sea_water_potential_temperature -${tools_dir}/grib_set -s paramId=151154 $sample1 $temp +${tools_dir}/grib_set -s paramId=181 $sample1 $temp grib_check_key_equals $temp cfName surface_downward_northward_stress -${tools_dir}/grib_set -s paramId=151154 $sample2 $temp +${tools_dir}/grib_set -s stepType=accum,paramId=181 $sample2 $temp grib_check_key_equals $temp cfName surface_downward_northward_stress ${tools_dir}/grib_set -s discipline=192,parameterCategory=151,parameterNumber=153 $sample2 $temp grib_check_key_equals $temp cfName surface_downward_eastward_stress diff --git a/tests/grib_check_param_concepts.sh b/tests/grib_check_param_concepts.sh index 4810497c1..bf67e7ab8 100755 --- a/tests/grib_check_param_concepts.sh +++ b/tests/grib_check_param_concepts.sh @@ -26,25 +26,15 @@ fi # First check the GRIB2 paramId.def and shortName.def # ---------------------------------------------------- $EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/ecmf/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/uerra/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/hydro/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/cerise/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/tigge/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/s2s/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/era6/paramId.def -$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/destine/paramId.def - +datasets="ecmf uerra cerise hydro s2s tigge era6 destine era" +for a_dataset in $datasets; do + $EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/$a_dataset/paramId.def +done $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/ecmf/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/uerra/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/hydro/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/cerise/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/tigge/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/s2s/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/era6/shortName.def -$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/destine/shortName.def +for a_dataset in $datasets; do + $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/$a_dataset/shortName.def +done # Check the group: name.def paramId.def shortName.def units.def cfVarName.def # ---------------------------------------------------------------------------- @@ -81,6 +71,7 @@ defs_dirs=" $ECCODES_DEFINITION_PATH/grib2/localConcepts/tigge $ECCODES_DEFINITION_PATH/grib2/localConcepts/s2s $ECCODES_DEFINITION_PATH/grib2/localConcepts/era6 + $ECCODES_DEFINITION_PATH/grib2/localConcepts/era $ECCODES_DEFINITION_PATH/grib2/localConcepts/destine $ECCODES_DEFINITION_PATH/grib2/localConcepts/egrr From bb58b93116f15ba350c9dc68b05cb7336bd543e0 Mon Sep 17 00:00:00 2001 From: shahramn Date: Tue, 16 Apr 2024 15:59:39 +0100 Subject: [PATCH 06/11] ECC-1801: GRIB2: Issue with post metadata hook for DestinE --- definitions/grib2/post_meta_data.hook.products_12.def | 2 +- tests/grib_ecc-1691.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/definitions/grib2/post_meta_data.hook.products_12.def b/definitions/grib2/post_meta_data.hook.products_12.def index d7ad4e586..f01e08f71 100644 --- a/definitions/grib2/post_meta_data.hook.products_12.def +++ b/definitions/grib2/post_meta_data.hook.products_12.def @@ -9,6 +9,6 @@ concept destineOrigin(unknown, "destineOriginConcept.def", conceptsDir2, concept unalias mars.domain; # ECC-1796: stepRange indexing for DestinE ExtremesDT and On-Demand ExtremesDT data -if (!(dataset is "climate-dt")) { +if ( defined(dataset) && !(dataset is "climate-dt") ) { alias mars.step=stepRange; } diff --git a/tests/grib_ecc-1691.sh b/tests/grib_ecc-1691.sh index bb0cb6d62..d64bae087 100755 --- a/tests/grib_ecc-1691.sh +++ b/tests/grib_ecc-1691.sh @@ -93,5 +93,9 @@ ${tools_dir}/grib_ls -jm $temp_grib_a [ $( ${tools_dir}/grib_get -f -p mars.time $temp_grib_a ) = "not_found" ] [ $( ${tools_dir}/grib_get -f -p mars.step $temp_grib_a ) = "not_found" ] +# ECC-1801 +${tools_dir}/grib_set -s productionStatusOfProcessedData=12 $sample_grib2 $temp_grib_a +${tools_dir}/grib_compare -b productionStatusOfProcessedData $sample_grib2 $temp_grib_a + # Clean up rm -f $temp_grib_a $temp_grib_b $destine_sample From 50bc16dadbc2906753d5c9a9e164beb1f0f75090 Mon Sep 17 00:00:00 2001 From: shahramn Date: Mon, 22 Apr 2024 16:56:18 +0100 Subject: [PATCH 07/11] Debugging --- src/grib_loader_from_handle.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/grib_loader_from_handle.cc b/src/grib_loader_from_handle.cc index a423c31cc..765915bbd 100644 --- a/src/grib_loader_from_handle.cc +++ b/src/grib_loader_from_handle.cc @@ -10,6 +10,10 @@ #include "grib_api_internal.h" +#if defined DEBUG && ! defined GRIB_PTHREADS + #define MY_DEBUG +#endif + static int copy_values(grib_handle* h, grib_accessor* ga) { int i, j, k; @@ -62,7 +66,7 @@ int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_ unsigned char* uval = NULL; long* lval = NULL; double* dval = NULL; -#ifdef DEBUG +#ifdef MY_DEBUG static int first = 1; static const char* missing = 0; #endif @@ -123,7 +127,7 @@ int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_ if (ret != GRIB_SUCCESS) { name = ga->name; -#ifdef DEBUG +#ifdef MY_DEBUG if (first) { missing = codes_getenv("ECCODES_PRINT_MISSING"); first = 0; @@ -131,7 +135,7 @@ int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_ #endif grib_context_log(h->context, GRIB_LOG_DEBUG, "Copying [%s] failed: %s", name, grib_get_error_message(ret)); -#ifdef DEBUG +#ifdef MY_DEBUG if (missing) { fprintf(stdout, "REPARSE: no value for %s", name); if (default_value) From c67ae6faeb31b3224ba0d7cd33dffc839e8deb0a Mon Sep 17 00:00:00 2001 From: shahramn Date: Mon, 22 Apr 2024 16:56:50 +0100 Subject: [PATCH 08/11] ECC-1805: GRIB2: Sub-hourly: Fix race condition --- src/grib_accessor_class_optimal_step_units.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/grib_accessor_class_optimal_step_units.cc b/src/grib_accessor_class_optimal_step_units.cc index 261ff4c80..494667e9a 100644 --- a/src/grib_accessor_class_optimal_step_units.cc +++ b/src/grib_accessor_class_optimal_step_units.cc @@ -25,6 +25,7 @@ MEMBERS = const char* forecast_time_unit MEMBERS = const char* time_range_value MEMBERS = const char* time_range_unit + MEMBERS = long overwriteStepUnits END_CLASS_DEF */ @@ -59,6 +60,7 @@ typedef struct grib_accessor_optimal_step_units const char* forecast_time_unit; const char* time_range_value; const char* time_range_unit; + long overwriteStepUnits; } grib_accessor_optimal_step_units; extern grib_accessor_class* grib_accessor_class_gen; @@ -127,6 +129,7 @@ static void init(grib_accessor* a, const long l, grib_arguments* c) self->time_range_value = grib_arguments_get_name(hand, c, n++); self->time_range_unit = grib_arguments_get_name(hand, c, n++); a->length = 0; + self->overwriteStepUnits = eccodes::Unit{eccodes::Unit::Value::MISSING}.value(); } static void dump(grib_accessor* a, grib_dumper* dumper) @@ -170,12 +173,11 @@ static int pack_expression(grib_accessor* a, grib_expression* e) return ret; } -static long staticStepUnits = eccodes::Unit{eccodes::Unit::Value::MISSING}.value(); -static long staticForceStepUnits = eccodes::Unit{eccodes::Unit::Value::MISSING}.value(); - static int pack_long(grib_accessor* a, const long* val, size_t* len) { grib_handle* h = grib_handle_of_accessor(a); + grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a; + auto supported_units = eccodes::Unit::list_supported_units(); try { eccodes::Unit unit{*val}; // throws if not supported @@ -197,7 +199,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) } int ret; - staticStepUnits = *val; + self->overwriteStepUnits = *val; if ((ret = grib_set_long_internal(h, "forceStepUnits", *val)) != GRIB_SUCCESS) { return ret; } @@ -207,9 +209,10 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) static int unpack_long(grib_accessor* a, long* val, size_t* len) { + grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a; try { - if (eccodes::Unit{staticStepUnits} != eccodes::Unit{eccodes::Unit::Value::MISSING}) { - *val = staticStepUnits; + if (eccodes::Unit{self->overwriteStepUnits} != eccodes::Unit{eccodes::Unit::Value::MISSING}) { + *val = self->overwriteStepUnits; return GRIB_SUCCESS; } From 7dcc8cce20b1734981918c0291ba4c622551072e Mon Sep 17 00:00:00 2001 From: shahramn Date: Wed, 24 Apr 2024 15:02:06 +0100 Subject: [PATCH 09/11] ECC-1799: Fix the keys of 152 (lnsp) --- definitions/grib2/localConcepts/era/name.def | 2 +- definitions/grib2/localConcepts/era/paramId.def | 2 +- definitions/grib2/localConcepts/era/shortName.def | 2 +- definitions/grib2/localConcepts/era/units.def | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/definitions/grib2/localConcepts/era/name.def b/definitions/grib2/localConcepts/era/name.def index 4d2ad4109..78a476de6 100644 --- a/definitions/grib2/localConcepts/era/name.def +++ b/definitions/grib2/localConcepts/era/name.def @@ -32,7 +32,7 @@ discipline = 0 ; parameterCategory = 3 ; parameterNumber = 25 ; - typeOfStatisticalProcessing = 105 ; + typeOfFirstFixedSurface = 105 ; } #Temperature difference 'Temperature difference' = { diff --git a/definitions/grib2/localConcepts/era/paramId.def b/definitions/grib2/localConcepts/era/paramId.def index 7b3a0ca44..31219cfa9 100644 --- a/definitions/grib2/localConcepts/era/paramId.def +++ b/definitions/grib2/localConcepts/era/paramId.def @@ -32,7 +32,7 @@ discipline = 0 ; parameterCategory = 3 ; parameterNumber = 25 ; - typeOfStatisticalProcessing = 105 ; + typeOfFirstFixedSurface = 105 ; } #Temperature difference '200130' = { diff --git a/definitions/grib2/localConcepts/era/shortName.def b/definitions/grib2/localConcepts/era/shortName.def index 5deb9835b..beb0f3d79 100644 --- a/definitions/grib2/localConcepts/era/shortName.def +++ b/definitions/grib2/localConcepts/era/shortName.def @@ -32,7 +32,7 @@ discipline = 0 ; parameterCategory = 3 ; parameterNumber = 25 ; - typeOfStatisticalProcessing = 105 ; + typeOfFirstFixedSurface = 105 ; } #Temperature difference 'tdiff' = { diff --git a/definitions/grib2/localConcepts/era/units.def b/definitions/grib2/localConcepts/era/units.def index f24cf39be..95c5b4af8 100644 --- a/definitions/grib2/localConcepts/era/units.def +++ b/definitions/grib2/localConcepts/era/units.def @@ -32,7 +32,7 @@ discipline = 0 ; parameterCategory = 3 ; parameterNumber = 25 ; - typeOfStatisticalProcessing = 105 ; + typeOfFirstFixedSurface = 105 ; } #Temperature difference 'K' = { From 7588a02ff686d8ed7f6af560d12a810da63dfebe Mon Sep 17 00:00:00 2001 From: shahramn Date: Thu, 25 Apr 2024 10:04:03 +0100 Subject: [PATCH 10/11] ECC-1812: GRIB2: Add time-mean version of 159; blh --- definitions/grib2/cfVarName.def | 7 +++++++ definitions/grib2/name.def | 7 +++++++ definitions/grib2/paramId.def | 7 +++++++ definitions/grib2/shortName.def | 7 +++++++ definitions/grib2/units.def | 7 +++++++ 5 files changed, 35 insertions(+) diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index 510e4b2af..c9011a6f2 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -5013,6 +5013,13 @@ parameterNumber = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean boundary layer height +'mblh' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 18 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean 10 metre U wind component 'm10u' = { discipline = 0 ; diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 1a0196347..09f826ace 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -5013,6 +5013,13 @@ parameterNumber = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean boundary layer height +'Time-mean boundary layer height' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 18 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean 10 metre U wind component 'Time-mean 10 metre U wind component' = { discipline = 0 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index 55cc9a44e..a068d2b0d 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -5013,6 +5013,13 @@ parameterNumber = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean boundary layer height +'235159' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 18 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean 10 metre U wind component '235165' = { discipline = 0 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index b855a6063..0a52b45b1 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -5013,6 +5013,13 @@ parameterNumber = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean boundary layer height +'mblh' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 18 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean 10 metre U wind component 'm10u' = { discipline = 0 ; diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index ab472b684..c43f0e83f 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -5013,6 +5013,13 @@ parameterNumber = 1 ; typeOfStatisticalProcessing = 0 ; } +#Time-mean boundary layer height +'m' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 18 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean 10 metre U wind component 'm s**-1' = { discipline = 0 ; From daba8eed883f79381bc1a095d625b4492e0fbe8b Mon Sep 17 00:00:00 2001 From: shahramn Date: Fri, 3 May 2024 16:48:08 +0100 Subject: [PATCH 11/11] ECC-1813: GRIB2: Sub-hourly: Set step units without step --- examples/C/large_grib1.c | 2 +- src/grib_accessor_class_g2end_step.cc | 21 ++- src/grib_accessor_class_optimal_step_units.cc | 42 ++++- tests/grib_sub_hourly.sh | 151 +++++++++++------- 4 files changed, 151 insertions(+), 65 deletions(-) diff --git a/examples/C/large_grib1.c b/examples/C/large_grib1.c index a01761ced..3131ead64 100644 --- a/examples/C/large_grib1.c +++ b/examples/C/large_grib1.c @@ -14,7 +14,7 @@ #include "eccodes.h" /* See JIRA issue GRIB-361 */ -int main() +int main(void) { const int ni = 2880; const int nj = 2880; diff --git a/src/grib_accessor_class_g2end_step.cc b/src/grib_accessor_class_g2end_step.cc index a86733eb3..eed6b5d13 100644 --- a/src/grib_accessor_class_g2end_step.cc +++ b/src/grib_accessor_class_g2end_step.cc @@ -262,9 +262,13 @@ static int unpack_one_time_range_long_(grib_accessor* a, long* val, size_t* len) } if (add_time_range) { *val = start_step_value + time_range_value; + if ((err = grib_set_long_internal(h, "endStepUnit", step_units)) != GRIB_SUCCESS) + return err; } else { *val = start_step_value; + if ((err = grib_set_long_internal(h, "endStepUnit", step_units)) != GRIB_SUCCESS) + return err; } return GRIB_SUCCESS; @@ -310,9 +314,13 @@ static int unpack_one_time_range_double_(grib_accessor* a, double *val , size_t* } if (add_time_range) { *val = (start_step + time_range).value(eccodes::Unit(step_units)); + if ((err = grib_set_long_internal(h, "endStepUnit", step_units)) != GRIB_SUCCESS) + return err; } else { *val = start_step.value(eccodes::Unit(start_step_unit)); + if ((err = grib_set_long_internal(h, "endStepUnit", start_step_unit)) != GRIB_SUCCESS) + return err; } return GRIB_SUCCESS; @@ -441,14 +449,19 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) grib_handle* h = grib_handle_of_accessor(a); int ret = 0; long start_step_value; + long start_step_unit; long numberOfTimeRange; if ((ret = grib_get_long_internal(h, self->start_step_value, &start_step_value))) return ret; + if ((ret = grib_get_long_internal(h, "startStepUnit", &start_step_unit))) + return ret; /* point in time */ if (self->year == NULL) { *val = start_step_value; + if ((ret = grib_set_long_internal(h, "endStepUnit", start_step_unit))) + return ret; return 0; } @@ -479,14 +492,19 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) grib_handle* h = grib_handle_of_accessor(a); int ret = 0; long start_step_value; + long start_step_unit; long numberOfTimeRange; if ((ret = grib_get_long_internal(h, self->start_step_value, &start_step_value))) return ret; + if ((ret = grib_get_long_internal(h, "startStepUnit", &start_step_unit))) + return ret; /* point in time */ if (self->year == NULL) { *val = start_step_value; + if ((ret = grib_set_long_internal(h, "endStepUnit", start_step_unit))) + return ret; return 0; } @@ -542,7 +560,8 @@ static int pack_long_(grib_accessor* a, const long end_step_value, const long en /*point in time */ if (self->year == NULL) { - err = grib_set_long_internal(h, "startStepUnit", end_step.unit().value()); + if ((err = grib_set_long_internal(h, "startStepUnit", end_step.unit().value())) != GRIB_SUCCESS) + return err; err = grib_set_long_internal(h, self->start_step_value, end_step.value()); return err; } diff --git a/src/grib_accessor_class_optimal_step_units.cc b/src/grib_accessor_class_optimal_step_units.cc index 494667e9a..d06592e31 100644 --- a/src/grib_accessor_class_optimal_step_units.cc +++ b/src/grib_accessor_class_optimal_step_units.cc @@ -178,6 +178,12 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) grib_handle* h = grib_handle_of_accessor(a); grib_accessor_optimal_step_units* self = (grib_accessor_optimal_step_units*)a; + long start_step = 0; + long start_step_unit = 0; + long end_step = 0; + long end_step_unit = 0; + int ret; + auto supported_units = eccodes::Unit::list_supported_units(); try { eccodes::Unit unit{*val}; // throws if not supported @@ -198,10 +204,42 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) return GRIB_INVALID_ARGUMENT; } - int ret; + // ECC-1813: When the stepUnits key is used without specifying a value, as in the command + // "grib-set -s stepUnits=m in.grib out.grib", the following code initiates an indirect update + // of the low-level keys: forecastTime,indicatorOfUnitOfTimeRange,indicatorOfUnitForTimeRange,lengthOfTimeRange + self->overwriteStepUnits = *val; - if ((ret = grib_set_long_internal(h, "forceStepUnits", *val)) != GRIB_SUCCESS) { + if ((ret = grib_set_long_internal(h, "forceStepUnits", *val)) != GRIB_SUCCESS) + return ret; + + if ((ret = grib_get_long_internal(h, "startStep", &start_step)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(h, "startStepUnit", &start_step_unit)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(h, "endStep", &end_step)) != GRIB_SUCCESS) return ret; + if ((ret = grib_get_long_internal(h, "endStepUnit", &end_step_unit)) != GRIB_SUCCESS) + return ret; + + try { + eccodes::Step start{start_step, start_step_unit}; + start.set_unit(*val); + eccodes::Step end{end_step, end_step_unit}; + end.set_unit(*val); + + if ((ret = grib_set_long_internal(h, "startStepUnit", start.unit().value())) != GRIB_SUCCESS) + return ret; + if ((ret = grib_set_long_internal(h, "startStep", start.value())) != GRIB_SUCCESS) + return ret; + if ((ret = grib_set_long_internal(h, "endStepUnit", end.unit().value())) != GRIB_SUCCESS) + return ret; + if ((ret = grib_set_long_internal(h, "endStep", end.value())) != GRIB_SUCCESS) + return ret; + } + catch (std::exception& e) { + std::string msg = std::string{"Failed to convert steps to: "} + std::to_string(*val) + " (" + e.what() + ")"; + grib_context_log(a->context, GRIB_LOG_ERROR, "%s", msg.c_str()); + return GRIB_INTERNAL_ERROR; } return GRIB_SUCCESS; diff --git a/tests/grib_sub_hourly.sh b/tests/grib_sub_hourly.sh index eb1405111..bb7bac891 100755 --- a/tests/grib_sub_hourly.sh +++ b/tests/grib_sub_hourly.sh @@ -13,6 +13,14 @@ # See JIRA issues ECC-1620, ECC-1238 # ----------------------------------- +label="grib_sub_hourly" +temp=temp.1.$label +temp2=temp.2.$label +tempFilt=temp.$label.filt +tempText=temp.$label.txt + +sample_g2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl + grib_expect_failure() { a_file=$1 @@ -51,97 +59,112 @@ if (set -u; : ${ECCODES_GRIB_HOURLY_STEPS_WITH_UNITS?}) 2> /dev/null; then fi -label="grib_sub_hourly" -temp=temp.1.$label -temp2=temp.2.$label -tempFilt=temp.$label.filt -tempText=temp.$label.txt - -sample_g2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl - instantaneous_field=$data_dir/reduced_gaussian_surface.grib2 accumulated_field=$data_dir/reduced_gaussian_sub_area.grib2 + +# ECC-1813: Test that we can set the stepUnits without setting the step +in="$instantaneous_field" +low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s" +${tools_dir}/grib_set -s stepUnits=m,step=60 $in $temp +grib_check_key_equals $temp "-p $low_level_keys" "60 m" +${tools_dir}/grib_set -s stepUnits=s $temp $temp2 +grib_check_key_equals $temp2 "-p $low_level_keys" "3600 s" +${tools_dir}/grib_set -s stepUnits=m $temp $temp2 +grib_check_key_equals $temp2 "-p $low_level_keys" "60 m" +${tools_dir}/grib_set -s stepUnits=h $temp $temp2 +grib_check_key_equals $temp2 "-p $low_level_keys" "1 h" + +in="$accumulated_field" +low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" +${tools_dir}/grib_set -s stepUnits=m,stepRange=60-180 $in $temp +grib_check_key_equals $temp "-p $low_level_keys" "60 m 120 m" +${tools_dir}/grib_set -s stepUnits=s $temp $temp2 +grib_check_key_equals $temp2 "-p $low_level_keys" "3600 s 7200 s" +${tools_dir}/grib_set -s stepUnits=m $temp $temp2 +grib_check_key_equals $temp2 "-p $low_level_keys" "60 m 120 m" +${tools_dir}/grib_set -s stepUnits=h $temp $temp2 +grib_check_key_equals $temp2 "-p $low_level_keys" "1 h 2 h" + # Check the lowercase alias 'stepunits' for a variety of step types (instant, accum etc) ${tools_dir}/grib_get -p stepunits $data_dir/tigge_cf_ecmwf.grib2 #### Make sure that step, stepRange, startStep, endStep produce the same result for instantaneous fields -fn="$instantaneous_field" +in="$instantaneous_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s" keys_step="step,step:s,step:i,step:d,stepUnits:s" keys_step_range="stepRange,stepRange:s,stepRange:i,stepRange:d,stepUnits:s" keys_start_step="startStep,startStep:s,startStep:i,startStep:d,stepUnits:s" keys_end_step="endStep,endStep:s,endStep:i,endStep:d,stepUnits:s" -${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 h" -${tools_dir}/grib_set -s stepUnits=m,step=59 $fn $temp +${tools_dir}/grib_set -s stepUnits=m,step=59 $in $temp grib_check_key_equals $temp "-p $keys_step" "59m 59m 59 59 m" grib_check_key_equals $temp "-p $keys_step_range" "59m 59m 59 59 m" grib_check_key_equals $temp "-p $keys_start_step" "59m 59m 59 59 m" grib_check_key_equals $temp "-p $keys_end_step" "59m 59m 59 59 m" -${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 h" -${tools_dir}/grib_set -s step=59m $fn $temp +${tools_dir}/grib_set -s step=59m $in $temp grib_check_key_equals $temp "-p $keys_step" "59m 59m 59 59 m" grib_check_key_equals $temp "-p $keys_step_range" "59m 59m 59 59 m" grib_check_key_equals $temp "-p $keys_start_step" "59m 59m 59 59 m" grib_check_key_equals $temp "-p $keys_end_step" "59m 59m 59 59 m" - #### stepUnits overrides the units in the low level keys # if stepUnits=UNIT is set, then set the low level keys to UNIT # else optimise low level keys # instant fields: low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" -fn="$instantaneous_field" +in="$instantaneous_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s" keys__="step,stepUnits:s" keys_s="step:s" keys_i="step:i,stepUnits:s" keys_d="step:d,stepUnits:s" -${tools_dir}/grib_set -s stepUnits=m,step=60 $fn $temp +${tools_dir}/grib_set -s stepUnits=m,step=60 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "60 m" grib_check_key_equals $temp "-p $keys_s" "1$HOUR" grib_check_key_equals $temp "-p $keys_s -s stepUnits=m" "60m" -${tools_dir}/grib_set -s stepUnits=m,step=60 $fn $temp +${tools_dir}/grib_set -s stepUnits=m,step=60 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "60 m" grib_check_key_equals $temp "-p $keys_s" "1$HOUR" grib_check_key_equals $temp "-p $keys_s -s stepUnits=m" "60m" -${tools_dir}/grib_set -s step=60m $fn $temp +${tools_dir}/grib_set -s step=60m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "1 h" grib_check_key_equals $temp "-p $keys_s" "1$HOUR" grib_check_key_equals $temp "-p $keys_s -s stepUnits=m" "60m" # accumulated fields: -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" keys__="step,startStep,endStep,stepRange,stepUnits:s" keys_s="step:s,startStep:s,endStep:s,stepRange:s,stepUnits:s" keys_i="step:i,startStep:i,endStep:i,stepRange:i,stepUnits:s" keys_d="step:d,startStep:d,endStep:d,stepRange:d,stepUnits:s" -${tools_dir}/grib_set -s stepUnits=m,stepRange=60-120 $fn $temp +${tools_dir}/grib_set -s stepUnits=m,stepRange=60-120 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "60 m 60 m" grib_check_key_equals $temp "-p $keys_s" "2$HOUR 1$HOUR 2$HOUR 1$HOUR-2$HOUR h" grib_check_key_equals $temp "-p $keys_s -s stepUnits=m" "120m 60m 120m 60m-120m m" -${tools_dir}/grib_set -s stepUnits=m,stepRange=60-120 $fn $temp +${tools_dir}/grib_set -s stepUnits=m,stepRange=60-120 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "60 m 60 m" grib_check_key_equals $temp "-p $keys_s" "2$HOUR 1$HOUR 2$HOUR 1$HOUR-2$HOUR h" grib_check_key_equals $temp "-p $keys_s -s stepUnits=m" "120m 60m 120m 60m-120m m" -${tools_dir}/grib_set -s stepRange=60m-120m $fn $temp +${tools_dir}/grib_set -s stepRange=60m-120m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "1 h 1 h" grib_check_key_equals $temp "-p $keys_s" "2$HOUR 1$HOUR 2$HOUR 1$HOUR-2$HOUR h" grib_check_key_equals $temp "-p $keys_s -s stepUnits=m" "120m 60m 120m 60m-120m m" #### CHECK units -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" -${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=96,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=96,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 h 96 h" grib_check_key_equals $temp " -w count=1 -s stepUnits=s -p step:i,stepUnits:s" "345600 s" @@ -162,38 +185,38 @@ grib_check_key_equals $temp " -w count=1 -s stepUnits=6h -p step,stepUnits:s" "1 grib_check_key_equals $temp " -w count=1 -s stepUnits=12h -p step,stepUnits:s" "8x12h 12h" grib_check_key_equals $temp " -w count=1 -s stepUnits=D -p step,stepUnits:s" "4D D" -${tools_dir}/grib_set -s stepUnits=s,startStep=0,endStep=345600 $fn $temp +${tools_dir}/grib_set -s stepUnits=s,startStep=0,endStep=345600 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 s 345600 s" -${tools_dir}/grib_set -s stepUnits=m,startStep=0,endStep=5760 $fn $temp +${tools_dir}/grib_set -s stepUnits=m,startStep=0,endStep=5760 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 m 5760 m" -${tools_dir}/grib_set -s stepUnits=h,startStep=0,endStep=96 $fn $temp +${tools_dir}/grib_set -s stepUnits=h,startStep=0,endStep=96 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 h 96 h" -${tools_dir}/grib_set -s stepUnits=6h,startStep=0,endStep=16 $fn $temp +${tools_dir}/grib_set -s stepUnits=6h,startStep=0,endStep=16 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 6h 16 6h" -${tools_dir}/grib_set -s stepUnits=12h,startStep=0,endStep=8 $fn $temp +${tools_dir}/grib_set -s stepUnits=12h,startStep=0,endStep=8 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 12h 8 12h" -${tools_dir}/grib_set -s stepUnits=D,startStep=0,endStep=4 $fn $temp +${tools_dir}/grib_set -s stepUnits=D,startStep=0,endStep=4 $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 D 4 D" #### CHECK negative forecastTime -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" -${tools_dir}/grib_set -s forecastTime=-6,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=6,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=-6,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=6,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "-6 h 6 h" grib_check_key_equals $temp "-s stepUnits:s=h -p startStep:s,endStep:s" "-6$HOUR 0$HOUR" grib_check_key_equals $temp "-s stepUnits:s=m -p startStep:s,endStep:s" "-360m 0m" grib_check_key_equals $temp "-s stepUnits:s=s -p startStep:s,endStep:s" "-21600s 0s" -${tools_dir}/grib_set -s forecastTime=-48,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=0,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=-48,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=0,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p stepRange" "-48$HOUR" #### CHECK: check optimal units are set correctly in GRIB files -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" -${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $fn $temp +${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $in $temp grib_check_key_equals $temp "-p $low_level_keys" "24 h 1 D" ### TODO(maee): @Shahram: how to make parameters position independent @@ -220,18 +243,18 @@ grib_check_key_equals $temp2 "-p $low_level_keys" "60 h 120 h" ${tools_dir}/grib_set -s stepUnits:s=h,startStep:i=60,endStep:i=180 $temp $temp2 grib_check_key_equals $temp2 "-p $low_level_keys" "60 h 120 h" -#fn="$accumulated_field" +#in="$accumulated_field" #low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" ##high_level_keys="startStep:s,endStep:s" #high_level_keys="startStep:i,endStep:i" -#${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $fn $temp +#${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $in $temp #grib_check_key_equals $temp "-p $low_level_keys" "24 h 1 D" #grib_check_key_equals $temp "-p $high_level_keys" "24 48" #${tools_dir}/grib_set -s startStep:i=24 $temp $temp2 #grib_check_key_equals $temp2 "-p $low_level_keys" "24 h 0 h" #grib_check_key_equals $temp2 "-p $high_level_keys" "24 24" -#${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=24,indicatorOfUnitForTimeRange=h $fn $temp +#${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=24,indicatorOfUnitForTimeRange=h $in $temp #grib_check_key_equals $temp "-p $low_level_keys" "24 h 24 h" #grib_check_key_equals $temp "-p $high_level_keys" "24 48" #${tools_dir}/grib_set -s startStep:i=24 $temp $temp2 @@ -240,9 +263,9 @@ grib_check_key_equals $temp2 "-p $low_level_keys" "60 h 120 h" #exit #### CHECK: grib_set - endStep + stepUnits -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" -${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $fn $temp +${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $in $temp grib_check_key_equals $temp "-p $low_level_keys" "24 h 1 D" # Use range unit: hour @@ -302,14 +325,14 @@ ${tools_dir}/grib_set -s stepRange:s=62D-122D $temp $temp2 grib_check_key_equals $temp2 "-p $low_level_keys" "1488 h 1440 h" grib_check_key_equals $temp2 "-p stepRange:s" "1488$HOUR-2928$HOUR" -fn="$instantaneous_field" +in="$instantaneous_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s" keys__="step,stepUnits:s" keys_s="step:s" keys_i="step:i,stepUnits:s" keys_d="step:d,stepUnits:s" -${tools_dir}/grib_set -s forecastTime=59,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=59,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $keys__ -s stepUnits=s" "3540s s" grib_check_key_equals $temp "-p $keys__ -s stepUnits=m" "59m m" #grib_check_key_equals $temp "-p $keys__ -s stepUnits=h" "0" # not supported @@ -324,7 +347,7 @@ grib_check_key_equals $temp "-p $keys_d -s stepUnits=m" "59 m" #grib_check_key_equals $temp "-p $keys_d -s stepUnits=h" "0.983333" # not supported -${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $keys_i -s stepUnits=s" "0 s" grib_check_key_equals $temp "-p $keys_i -s stepUnits=m" "0 m" grib_check_key_equals $temp "-p $keys_i -s stepUnits=h" "0 h" @@ -333,14 +356,14 @@ grib_check_key_equals $temp "-p $keys_d -s stepUnits=m" "0 m" grib_check_key_equals $temp "-p $keys_d -s stepUnits=h" "0 h" -fn="$instantaneous_field" +in="$instantaneous_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s" keys__="step,stepUnits:s" keys_s="step:s,stepUnits:s" keys_i="step:i,stepUnits:s" keys_d="step:d,stepUnits:s" -${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 m" grib_check_key_equals $temp "-p $keys__" "0m m" grib_check_key_equals $temp "-p $keys_s" "0m m" @@ -361,7 +384,7 @@ grib_check_key_equals $temp "-p $keys_d -s stepUnits=m" "0 m" grib_check_key_equals $temp "-p $keys_d -s stepUnits=h" "0 h" -${tools_dir}/grib_set -s forecastTime=59,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=59,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "59 m" grib_check_key_equals $temp "-p $keys__" "59m m" #grib_check_key_equals $temp "-p $keys_s" "59" @@ -369,14 +392,14 @@ grib_check_key_equals $temp "-p $keys_s" "59m m" grib_check_key_equals $temp "-p $keys_i" "59 m" grib_check_key_equals $temp "-p $keys_d" "59 m" -${tools_dir}/grib_set -s forecastTime=60,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=60,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "60 m" grib_check_key_equals $temp "-p $keys__" "1$HOUR h" grib_check_key_equals $temp "-p $keys_s" "1$HOUR h" grib_check_key_equals $temp "-p $keys_i" "1 h" grib_check_key_equals $temp "-p $keys_d" "1 h" -${tools_dir}/grib_set -s forecastTime=61,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=61,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "61 m" grib_check_key_equals $temp "-p $keys__" "61m m" #grib_check_key_equals $temp "-p $keys_s" "61" @@ -384,14 +407,14 @@ grib_check_key_equals $temp "-p $keys_s" "61m m" grib_check_key_equals $temp "-p $keys_i" "61 m" grib_check_key_equals $temp "-p $keys_d" "61 m" -${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "24 h" grib_check_key_equals $temp "-p $keys__" "24$HOUR h" grib_check_key_equals $temp "-p $keys_s" "24$HOUR h" grib_check_key_equals $temp "-p $keys_i" "24 h" grib_check_key_equals $temp "-p $keys_d" "24 h" -${tools_dir}/grib_set -s forecastTime=1440,indicatorOfUnitOfTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=1440,indicatorOfUnitOfTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "1440 m" grib_check_key_equals $temp "-p $keys__" "24$HOUR h" grib_check_key_equals $temp "-p $keys_s" "24$HOUR h" @@ -399,40 +422,40 @@ grib_check_key_equals $temp "-p $keys_i" "24 h" grib_check_key_equals $temp "-p $keys_d" "24 h" -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" -${tools_dir}/grib_set -s stepRange=60m-2h $fn $temp +${tools_dir}/grib_set -s stepRange=60m-2h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "1 h 1 h" -fn="$accumulated_field" +in="$accumulated_field" low_level_keys="forecastTime,indicatorOfUnitOfTimeRange:s,lengthOfTimeRange,indicatorOfUnitForTimeRange:s" keys__="stepRange,startStep,endStep" keys_s="stepRange:s,startStep:s,endStep:s" keys_i="stepRange:i,startStep:i,endStep:i" keys_d="stepRange:d,startStep:d,endStep:d" -${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=2,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=0,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=2,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "0 m 2 h" grib_check_key_equals $temp "-p $keys__" "0$HOUR-2$HOUR 0$HOUR 2$HOUR" grib_check_key_equals $temp "-p $keys_s" "0$HOUR-2$HOUR 0$HOUR 2$HOUR" grib_check_key_equals $temp "-p $keys_i" "2 0 2" grib_check_key_equals $temp "-p $keys_d" "2 0 2" -${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $fn $temp +${tools_dir}/grib_set -s forecastTime=24,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $in $temp grib_check_key_equals $temp "-p $low_level_keys" "24 h 1 D" grib_check_key_equals $temp "-p $keys__" "24$HOUR-48$HOUR 24$HOUR 48$HOUR" grib_check_key_equals $temp "-p $keys_s" "24$HOUR-48$HOUR 24$HOUR 48$HOUR" grib_check_key_equals $temp "-p $keys_i" "48 24 48" grib_check_key_equals $temp "-p $keys_d" "48 24 48" -${tools_dir}/grib_set -s forecastTime=25,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $fn $temp +${tools_dir}/grib_set -s forecastTime=25,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=1,indicatorOfUnitForTimeRange=D $in $temp grib_check_key_equals $temp "-p $low_level_keys" "25 h 1 D" grib_check_key_equals $temp "-p $keys__" "25$HOUR-49$HOUR 25$HOUR 49$HOUR" grib_check_key_equals $temp "-p $keys_s" "25$HOUR-49$HOUR 25$HOUR 49$HOUR" grib_check_key_equals $temp "-p $keys_i" "49 25 49" grib_check_key_equals $temp "-p $keys_d" "49 25 49" -${tools_dir}/grib_set -s forecastTime=45,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=15,indicatorOfUnitForTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=45,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=15,indicatorOfUnitForTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "45 m 15 m" grib_check_key_equals $temp "-p $keys__" "45m-60m 45m 60m" #grib_check_key_equals $temp "-p $keys_s" "45-60 45 60" @@ -440,28 +463,28 @@ grib_check_key_equals $temp "-p $keys_s" "45m-60m 45m 60m" grib_check_key_equals $temp "-p $keys_i" "60 45 60" grib_check_key_equals $temp "-p $keys_d" "60 45 60" -${tools_dir}/grib_set -s forecastTime=60,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=2,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=60,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=2,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "60 m 2 h" grib_check_key_equals $temp "-p $keys__" "1$HOUR-3$HOUR 1$HOUR 3$HOUR" grib_check_key_equals $temp "-p $keys_s" "1$HOUR-3$HOUR 1$HOUR 3$HOUR" grib_check_key_equals $temp "-p $keys_i" "3 1 3" grib_check_key_equals $temp "-p $keys_d" "3 1 3" -${tools_dir}/grib_set -s forecastTime=18,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=6,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=18,indicatorOfUnitOfTimeRange=h,lengthOfTimeRange=6,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "18 h 6 h" grib_check_key_equals $temp "-p $keys__" "18$HOUR-24$HOUR 18$HOUR 24$HOUR" grib_check_key_equals $temp "-p $keys_s" "18$HOUR-24$HOUR 18$HOUR 24$HOUR" grib_check_key_equals $temp "-p $keys_i" "24 18 24" grib_check_key_equals $temp "-p $keys_d" "24 18 24" -${tools_dir}/grib_set -s forecastTime=1080,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=360,indicatorOfUnitForTimeRange=m $fn $temp +${tools_dir}/grib_set -s forecastTime=1080,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=360,indicatorOfUnitForTimeRange=m $in $temp grib_check_key_equals $temp "-p $low_level_keys" "1080 m 360 m" grib_check_key_equals $temp "-p $keys__" "18$HOUR-24$HOUR 18$HOUR 24$HOUR" grib_check_key_equals $temp "-p $keys_s" "18$HOUR-24$HOUR 18$HOUR 24$HOUR" grib_check_key_equals $temp "-p $keys_i" "24 18 24" grib_check_key_equals $temp "-p $keys_d" "24 18 24" -${tools_dir}/grib_set -s forecastTime=1080,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=6,indicatorOfUnitForTimeRange=h $fn $temp +${tools_dir}/grib_set -s forecastTime=1080,indicatorOfUnitOfTimeRange=m,lengthOfTimeRange=6,indicatorOfUnitForTimeRange=h $in $temp grib_check_key_equals $temp "-p $low_level_keys" "1080 m 6 h" grib_check_key_equals $temp "-p $keys__" "18$HOUR-24$HOUR 18$HOUR 24$HOUR" grib_check_key_equals $temp "-p $keys_s" "18$HOUR-24$HOUR 18$HOUR 24$HOUR" @@ -544,6 +567,12 @@ grep -q "Invalid unit" $tempText # ECC-1800: Set stepUnits before paramIds, which cause changes in the PTDN +${tools_dir}/grib_set -s stepUnits=m,productDefinitionTemplateNumber=40 $sample_g2 $temp +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '0 m 40' + +${tools_dir}/grib_set -s stepUnits=m,step=6,productDefinitionTemplateNumber=40 $sample_g2 $temp +grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,forecastTime' '0 m 6' + ${tools_dir}/grib_set -s stepUnits=s,paramId=210203 $sample_g2 $temp # is_chemical grib_check_key_equals $temp '-p indicatorOfUnitOfTimeRange,stepUnits:s,productDefinitionTemplateNumber' '13 s 40'