From a398dec293f47c1767549cc7616c15901f3f233c Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Wed, 23 Jan 2019 11:49:57 +0000 Subject: [PATCH 1/8] ECC-837, ECC-868, ECC-830, ECC-870: Changes needed for PGen --- VERSION.cmake | 2 +- definitions/boot.def | 4 +- definitions/bufr/boot.def | 1 + .../bufr/tables/0/wmo/18/element.table | 2 +- .../bufr/tables/0/wmo/22/element.table | 2 +- .../bufr/tables/0/wmo/23/element.table | 2 +- .../bufr/tables/0/wmo/24/element.table | 2 +- .../bufr/tables/0/wmo/25/element.table | 2 +- .../bufr/tables/0/wmo/26/element.table | 2 +- .../bufr/tables/0/wmo/27/element.table | 2 +- .../bufr/tables/0/wmo/28/element.table | 2 +- .../bufr/tables/0/wmo/29/element.table | 2 +- .../bufr/tables/0/wmo/30/element.table | 2 +- .../bufr/tables/0/wmo/31/element.table | 2 +- definitions/grib2/cfVarName.def | 16 ++++++- definitions/grib2/name.def | 16 ++++++- definitions/grib2/paramId.def | 14 +++++- definitions/grib2/shortName.def | 16 ++++++- definitions/grib2/units.def | 14 +++++- src/grib_accessor_class_bufr_data_array.c | 31 ++++++++++--- src/grib_accessor_class_data_simple_packing.c | 23 +++++++++- tests/bufr_ecc-379.sh | 43 ++++++++++++++++++- version.sh | 2 +- 23 files changed, 174 insertions(+), 30 deletions(-) diff --git a/VERSION.cmake b/VERSION.cmake index 776a44077..9480c7ca6 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -1 +1 @@ -set( ${PROJECT_NAME}_VERSION_STR "2.10.1" ) +set( ${PROJECT_NAME}_VERSION_STR "2.10.2" ) diff --git a/definitions/boot.def b/definitions/boot.def index ccd367ae7..318f4eb69 100644 --- a/definitions/boot.def +++ b/definitions/boot.def @@ -53,8 +53,8 @@ transient unitsBias=0 : hidden; constant globalDomain = "g"; transient timeRangeIndicatorFromStepRange=-1 : hidden; -# GRIB-802 -transient override_large_constant_fields = 0 : hidden; +# ECC-868 +transient produceLargeConstantFields = 0 : hidden; meta libraryVersion library_version() : hidden; diff --git a/definitions/bufr/boot.def b/definitions/bufr/boot.def index fc9aa46fd..0c3f5b413 100644 --- a/definitions/bufr/boot.def +++ b/definitions/bufr/boot.def @@ -9,6 +9,7 @@ lookup[1] ed (7,editionNumber); transient missingValue=999999 : hidden; +transient setToMissingIfOutOfRange=0 : hidden; # This gets updated twice a year by WMO. # See http://www.wmo.int/pages/prog/www/WMOCodes/WMO306_vI2/LatestVERSION/LatestVERSION.html diff --git a/definitions/bufr/tables/0/wmo/18/element.table b/definitions/bufr/tables/0/wmo/18/element.table index e5bee2121..4befd8a1a 100644 --- a/definitions/bufr/tables/0/wmo/18/element.table +++ b/definitions/bufr/tables/0/wmo/18/element.table @@ -794,7 +794,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG_10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG_10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG_10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG_10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 019002|effectiveRadiusOfFeature|long|EFFECTIVE RADIUS OF FEATURE|m|-2|0|12|m|-2|4 diff --git a/definitions/bufr/tables/0/wmo/22/element.table b/definitions/bufr/tables/0/wmo/22/element.table index ae26cf436..b89814242 100644 --- a/definitions/bufr/tables/0/wmo/22/element.table +++ b/definitions/bufr/tables/0/wmo/22/element.table @@ -787,7 +787,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 diff --git a/definitions/bufr/tables/0/wmo/23/element.table b/definitions/bufr/tables/0/wmo/23/element.table index 3cf7dec61..0dc3205d1 100644 --- a/definitions/bufr/tables/0/wmo/23/element.table +++ b/definitions/bufr/tables/0/wmo/23/element.table @@ -789,7 +789,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 diff --git a/definitions/bufr/tables/0/wmo/24/element.table b/definitions/bufr/tables/0/wmo/24/element.table index bc72b42fe..19571910f 100644 --- a/definitions/bufr/tables/0/wmo/24/element.table +++ b/definitions/bufr/tables/0/wmo/24/element.table @@ -789,7 +789,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 diff --git a/definitions/bufr/tables/0/wmo/25/element.table b/definitions/bufr/tables/0/wmo/25/element.table index bd1689da6..55cc8a235 100644 --- a/definitions/bufr/tables/0/wmo/25/element.table +++ b/definitions/bufr/tables/0/wmo/25/element.table @@ -795,7 +795,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween025And25M|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween025And25M|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 diff --git a/definitions/bufr/tables/0/wmo/26/element.table b/definitions/bufr/tables/0/wmo/26/element.table index 698311257..c6966123d 100644 --- a/definitions/bufr/tables/0/wmo/26/element.table +++ b/definitions/bufr/tables/0/wmo/26/element.table @@ -809,7 +809,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 diff --git a/definitions/bufr/tables/0/wmo/27/element.table b/definitions/bufr/tables/0/wmo/27/element.table index 9841331b8..4c577b417 100644 --- a/definitions/bufr/tables/0/wmo/27/element.table +++ b/definitions/bufr/tables/0/wmo/27/element.table @@ -843,7 +843,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 019001|synopticFeatureType|table|TYPE OF SYNOPTIC FEATURE|CODE TABLE|0|0|6|CODE TABLE|0|2 diff --git a/definitions/bufr/tables/0/wmo/28/element.table b/definitions/bufr/tables/0/wmo/28/element.table index cf493fd5c..92d44fa43 100644 --- a/definitions/bufr/tables/0/wmo/28/element.table +++ b/definitions/bufr/tables/0/wmo/28/element.table @@ -858,7 +858,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 015063|attenuatedBackscatter|double|ATTENUATED BACKSCATTER|m-1 Sr-1|8|0|20|m-1 Sr-1|8|7 diff --git a/definitions/bufr/tables/0/wmo/29/element.table b/definitions/bufr/tables/0/wmo/29/element.table index bbae0feed..c1a58d38f 100644 --- a/definitions/bufr/tables/0/wmo/29/element.table +++ b/definitions/bufr/tables/0/wmo/29/element.table @@ -863,7 +863,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 015063|attenuatedBackscatter|double|ATTENUATED BACKSCATTER|m-1 Sr-1|8|0|20|m-1 Sr-1|8|7 diff --git a/definitions/bufr/tables/0/wmo/30/element.table b/definitions/bufr/tables/0/wmo/30/element.table index 69235223c..055b05949 100644 --- a/definitions/bufr/tables/0/wmo/30/element.table +++ b/definitions/bufr/tables/0/wmo/30/element.table @@ -864,7 +864,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 015063|attenuatedBackscatter|double|ATTENUATED BACKSCATTER|m-1 sr-1|8|0|20|m-1 sr-1|8|7 diff --git a/definitions/bufr/tables/0/wmo/31/element.table b/definitions/bufr/tables/0/wmo/31/element.table index 26e9f58a6..a0b1ef0bc 100644 --- a/definitions/bufr/tables/0/wmo/31/element.table +++ b/definitions/bufr/tables/0/wmo/31/element.table @@ -869,7 +869,7 @@ 015051|meteorologicalOpticalRange|long|METEOROLOGICAL OPTICAL RANGE|m|0|0|18|m|0|6 015052|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan5Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 5 NM|log (m-3)|1|60|6|log (m-3)|1|3 015053|log10OfNumberDensityOfAerosolParticlesWithDiameterGreaterThan14Nm|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER GREATER THAN 14 NM|log (m-3)|2|600|9|log (m-3)|2|4 -015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 µM|log (m-3)|2|550|9|log (m-3)|2|4 +015054|log10OfNumberDensityOfAerosolParticlesWithDiameterBetween0p25And2p5|double|LOG10 OF NUMBER DENSITY OF AEROSOL PARTICLES WITH DIAMETER BETWEEN 0.25 AND 2.5 uM|log (m-3)|2|550|9|log (m-3)|2|4 015055|nonVolatileAerosolRatio|long|NON VOLATILE AEROSOL RATIO|Numeric|2|0|7|Numeric|2|3 015062|aerosolOpticalThickness|long|AEROSOL OPTICAL THICKNESS|Numeric|3|-1000|14|Numeric|3|5 015063|attenuatedBackscatter|double|ATTENUATED BACKSCATTER|m-1 sr-1|8|0|20|m-1 sr-1|8|7 diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index 1554d0ccb..a4ef007e1 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -857,6 +857,18 @@ parameterCategory = 1 ; parameterNumber = 121 ; } +#Clear air turbulence (CAT) +'cat' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 29 ; + } +#Mountain wave turbulence (eddy dissipation rate) +'mwt' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 28 ; + } #Soil temperature 'sot' = { discipline = 2 ; @@ -2378,8 +2390,8 @@ parameterCategory = 19 ; parameterNumber = 21 ; } -#Clear air turbulence (CAT) -'cat' = { +#Relative clear air turbulence (RCAT) +'rcat' = { discipline = 0 ; parameterCategory = 19 ; parameterNumber = 22 ; diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 50119503e..6c5eaed52 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -857,6 +857,18 @@ parameterCategory = 1 ; parameterNumber = 121 ; } +#Clear air turbulence (CAT) +'Clear air turbulence (CAT)' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 29 ; + } +#Mountain wave turbulence (eddy dissipation rate) +'Mountain wave turbulence (eddy dissipation rate)' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 28 ; + } #Soil temperature 'Soil temperature' = { discipline = 2 ; @@ -2378,8 +2390,8 @@ parameterCategory = 19 ; parameterNumber = 21 ; } -#Clear air turbulence (CAT) -'Clear air turbulence (CAT)' = { +#Relative clear air turbulence (RCAT) +'Relative clear air turbulence (RCAT)' = { discipline = 0 ; parameterCategory = 19 ; parameterNumber = 22 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index b3bf0375b..536914e97 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -857,6 +857,18 @@ parameterCategory = 1 ; parameterNumber = 121 ; } +#Clear air turbulence (CAT) +'260290' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 29 ; + } +#Mountain wave turbulence (eddy dissipation rate) +'260291' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 28 ; + } #Soil temperature '260360' = { discipline = 2 ; @@ -2378,7 +2390,7 @@ parameterCategory = 19 ; parameterNumber = 21 ; } -#Clear air turbulence (CAT) +#Relative clear air turbulence (RCAT) '260165' = { discipline = 0 ; parameterCategory = 19 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index 654c2ebe2..8a8a3f0d7 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -857,6 +857,18 @@ parameterCategory = 1 ; parameterNumber = 121 ; } +#Clear air turbulence (CAT) +'cat' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 29 ; + } +#Mountain wave turbulence (eddy dissipation rate) +'mwt' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 28 ; + } #Soil temperature 'sot' = { discipline = 2 ; @@ -2378,8 +2390,8 @@ parameterCategory = 19 ; parameterNumber = 21 ; } -#Clear air turbulence (CAT) -'cat' = { +#Relative clear air turbulence (RCAT) +'rcat' = { discipline = 0 ; parameterCategory = 19 ; parameterNumber = 22 ; diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index fabda402e..4c6c79113 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -857,6 +857,18 @@ parameterCategory = 1 ; parameterNumber = 121 ; } +#Clear air turbulence (CAT) +'m**2/3 s**-1' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 29 ; + } +#Mountain wave turbulence (eddy dissipation rate) +'m**2/3 s**-1' = { + discipline = 0 ; + parameterCategory = 19 ; + parameterNumber = 28 ; + } #Soil temperature 'K' = { discipline = 2 ; @@ -2378,7 +2390,7 @@ parameterCategory = 19 ; parameterNumber = 21 ; } -#Clear air turbulence (CAT) +#Relative clear air turbulence (RCAT) '%' = { discipline = 0 ; parameterCategory = 19 ; diff --git a/src/grib_accessor_class_bufr_data_array.c b/src/grib_accessor_class_bufr_data_array.c index 89fff89ed..2fcd05b66 100644 --- a/src/grib_accessor_class_bufr_data_array.c +++ b/src/grib_accessor_class_bufr_data_array.c @@ -69,6 +69,7 @@ MEMBERS = long* refValList MEMBERS = long refValIndex MEMBERS = bufr_tableb_override* tableb_override + MEMBERS = int set_to_missing_if_out_of_range END_CLASS_DEF @@ -147,6 +148,7 @@ typedef struct grib_accessor_bufr_data_array { long* refValList; long refValIndex; bufr_tableb_override* tableb_override; + int set_to_missing_if_out_of_range; } grib_accessor_bufr_data_array; extern grib_accessor_class* grib_accessor_class_gen; @@ -401,6 +403,7 @@ static void init(grib_accessor* a,const long v, grib_arguments* params) self->refValList=NULL; /* Operator 203YYY: overridden reference values array */ self->refValIndex=0; /* Operator 203YYY: index into overridden reference values array */ self->tableb_override = NULL; /* Operator 203YYY: Table B lookup linked list */ + self->set_to_missing_if_out_of_range = 0; /* By default fail if out of range */ a->length=0; self->bitsToEndData=get_length(a)*8; @@ -449,6 +452,7 @@ static void self_clear(grib_context* c,grib_accessor_bufr_data_array* self) if (self->refValList) grib_context_free(c, self->refValList); self->refValIndex=0; tableB_override_clear(c, self); + self->set_to_missing_if_out_of_range = 0; } static int get_native_type(grib_accessor* a) @@ -732,7 +736,8 @@ static int encode_double_array(grib_context* c,grib_buffer* buff,long* pos, bufr int thereIsAMissing=0; int is_constant; double val0; - const int dont_fail_if_out_of_range = c->bufr_set_to_missing_if_out_of_range;/* ECC-379 */ + /* ECC-379, ECC-830 */ + const int dont_fail_if_out_of_range = self->set_to_missing_if_out_of_range; if (self->iss_list==NULL) { grib_context_log(c, GRIB_LOG_ERROR,"encode_double_array: self->iss_list==NULL"); @@ -763,7 +768,7 @@ static int encode_double_array(grib_context* c,grib_buffer* buff,long* pos, bufr if (*v > maxAllowed || *v < minAllowed) { if (dont_fail_if_out_of_range) { grib_context_log(c, GRIB_LOG_ERROR, "encode_double_array: %s. Value (%g) out of range (minAllowed=%g, maxAllowed=%g)." - "Setting it to missing value\n", bd->shortName, *v, minAllowed, maxAllowed); + " Setting it to missing value\n", bd->shortName, *v, minAllowed, maxAllowed); grib_set_bits_on(buff->data,pos,modifiedWidth); } else { grib_context_log(c, GRIB_LOG_ERROR, "encode_double_array: %s. Value (%g) out of range (minAllowed=%g, maxAllowed=%g).", @@ -817,7 +822,7 @@ static int encode_double_array(grib_context* c,grib_buffer* buff,long* pos, bufr /* Turn out-of-range values into 'missing' */ if (*v!=GRIB_MISSING_DOUBLE && (*v < minAllowed || *v > maxAllowed)) { grib_context_log(c, GRIB_LOG_ERROR, "encode_double_array: %s. Value at index %ld (%g) out of range (minAllowed=%g, maxAllowed=%g)." - "Setting it to missing value\n", + " Setting it to missing value\n", bd->shortName, (long)ii, *v, minAllowed, maxAllowed); *v = GRIB_MISSING_DOUBLE; } @@ -910,7 +915,8 @@ static int encode_double_value(grib_context* c,grib_buffer* buff,long* pos,bufr_ int err=0; int modifiedWidth,modifiedReference; double modifiedFactor; - const int dont_fail_if_out_of_range = c->bufr_set_to_missing_if_out_of_range; /* ECC-379 */ + /* ECC-379, ECC-830 */ + const int dont_fail_if_out_of_range = self->set_to_missing_if_out_of_range; modifiedReference= bd->reference; modifiedFactor= bd->factor; @@ -925,7 +931,7 @@ static int encode_double_value(grib_context* c,grib_buffer* buff,long* pos,bufr_ else if (value>maxAllowed || valueshortName, value, minAllowed, maxAllowed); value = GRIB_MISSING_DOUBLE; /* Ignore the bad value and instead use 'missing' */ grib_set_bits_on(buff->data,pos,modifiedWidth); @@ -2478,6 +2484,19 @@ static void set_input_bitmap(grib_handle* h,grib_accessor_bufr_data_array *self) } } +static int set_to_missing_if_out_of_range(grib_handle* h) +{ + /* First check if the transient key is set */ + long setToMissingIfOutOfRange=0; + if (grib_get_long(h, "setToMissingIfOutOfRange", &setToMissingIfOutOfRange)==GRIB_SUCCESS && + setToMissingIfOutOfRange != 0) + { + return 1; + } + /* Then check the environment variable via the context */ + return h->context->bufr_set_to_missing_if_out_of_range; +} + static int process_elements(grib_accessor* a,int flag,long onlySubset,long startSubset,long endSubset) { int err=0; @@ -2535,6 +2554,7 @@ static int process_elements(grib_accessor* a,int flag,long onlySubset,long start decoding=0; do_clean=1; self->do_decode=1; + self->set_to_missing_if_out_of_range = set_to_missing_if_out_of_range(h); pos=0; codec_element=&encode_new_element; codec_replication=&encode_new_replication; @@ -2548,6 +2568,7 @@ static int process_elements(grib_accessor* a,int flag,long onlySubset,long start decoding=0; do_clean=0; self->do_decode=0; + self->set_to_missing_if_out_of_range = set_to_missing_if_out_of_range(h); pos=0; codec_element=&encode_element; grib_get_long(grib_handle_of_accessor(a),"extractSubset",&onlySubset); diff --git a/src/grib_accessor_class_data_simple_packing.c b/src/grib_accessor_class_data_simple_packing.c index 5e485c205..91a4db32e 100644 --- a/src/grib_accessor_class_data_simple_packing.c +++ b/src/grib_accessor_class_data_simple_packing.c @@ -447,6 +447,26 @@ static int unpack_double(grib_accessor* a, double* val, size_t *len) #endif /* Return true(1) if large constant fields are to be created, otherwise false(0) */ +static int producing_large_constant_fields(grib_handle* h, int edition) +{ + /* First check if the transient key is set */ + grib_context* c = h->context; + long produceLargeConstantFields=0; + if (grib_get_long(h, "produceLargeConstantFields", &produceLargeConstantFields)==GRIB_SUCCESS && + produceLargeConstantFields != 0) + { + return 1; + } + + if (c->gribex_mode_on==1 && edition==1) { + return 1; + } + + /* Finally check the environment variable via the context */ + return c->large_constant_fields; +} + +#if 0 static int producing_large_constant_fields(const grib_context* c, grib_handle* h, int edition) { /* GRIB-802: If override key is set, ignore env. var and produce compressed fields */ @@ -466,6 +486,7 @@ static int producing_large_constant_fields(const grib_context* c, grib_handle* h return 0; } +#endif static int check_range(const double val) { @@ -570,7 +591,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t *len) Assert(ref == reference_value); } - large_constant_fields = producing_large_constant_fields(c, gh, self->edition); + large_constant_fields = producing_large_constant_fields(gh, self->edition); if (large_constant_fields) { if((err = grib_set_long_internal(gh,self->binary_scale_factor, 0)) != GRIB_SUCCESS) diff --git a/tests/bufr_ecc-379.sh b/tests/bufr_ecc-379.sh index 8aa23bbef..a673e0983 100755 --- a/tests/bufr_ecc-379.sh +++ b/tests/bufr_ecc-379.sh @@ -11,7 +11,7 @@ . ./include.sh # --------------------------------------------------------- -# This is the test for the JIRA issue ECC-379 +# This is the test for the JIRA issue ECC-379 (Also ECC-830) # BUFR encoding failing when value out of range # --------------------------------------------------------- cd ${data_dir}/bufr @@ -96,5 +96,46 @@ export ECCODES_BUFR_SET_TO_MISSING_IF_OUT_OF_RANGE=1 ${tools_dir}/codes_bufr_filter -o $tempOut $tempRules $BufrFile unset ECCODES_BUFR_SET_TO_MISSING_IF_OUT_OF_RANGE + +# -------------------------------------------------------- +# Test 4: use the key setToMissingIfOutOfRange +# -------------------------------------------------------- +BufrFile=airc_144.bufr +cat > $tempRules < $tempRules < Date: Wed, 23 Jan 2019 12:06:44 +0000 Subject: [PATCH 2/8] For MIR: Encoding of spherical harmonics when truncation less than 20 --- src/grib_util.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/grib_util.c b/src/grib_util.c index c5f32a502..4112971db 100644 --- a/src/grib_util.c +++ b/src/grib_util.c @@ -1200,11 +1200,12 @@ grib_handle* grib_util_set_spec2(grib_handle* h, if(packing_spec->packing_type == GRIB_UTIL_PACKING_TYPE_SPECTRAL_COMPLEX) { + const long JS = spec->truncation < 20 ? spec->truncation : 20; SET_STRING_VALUE("packingType", "spectral_complex"); packingTypeIsSet=1; - SET_LONG_VALUE("JS", 20); - SET_LONG_VALUE("KS", 20); - SET_LONG_VALUE("MS", 20); + SET_LONG_VALUE("JS", JS); + SET_LONG_VALUE("KS", JS); + SET_LONG_VALUE("MS", JS); if (packing_spec->packing == GRIB_UTIL_PACKING_USE_PROVIDED && editionNumber==2 ) { SET_LONG_VALUE("computeLaplacianOperator", 1); } else if ((!(*err) && strcmp(input_grid_type,"sh")) || packing_spec->computeLaplacianOperator ) { From 73fa3851e60a8d9b84efef3595684222db6fdf8c Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Fri, 1 Feb 2019 12:13:53 +0000 Subject: [PATCH 3/8] Bump up version to 2.10.3 --- VERSION.cmake | 2 +- version.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION.cmake b/VERSION.cmake index 9480c7ca6..cd5631cd1 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -1 +1 @@ -set( ${PROJECT_NAME}_VERSION_STR "2.10.2" ) +set( ${PROJECT_NAME}_VERSION_STR "2.10.3" ) diff --git a/version.sh b/version.sh index 4fe5bfed1..476a004de 100644 --- a/version.sh +++ b/version.sh @@ -15,7 +15,7 @@ PACKAGE_NAME='eccodes' # Package version ECCODES_MAJOR_VERSION=2 ECCODES_MINOR_VERSION=10 -ECCODES_REVISION_VERSION=2 +ECCODES_REVISION_VERSION=3 ECCODES_CURRENT=1 ECCODES_REVISION=0 From d78e5ed6694d43f6734c85ba692c2e082c631766 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Fri, 1 Feb 2019 13:05:34 +0000 Subject: [PATCH 4/8] ECC-876 and Support for legacy GRIB2 encoded with discipline=192 --- definitions/grib1/2.98.228.table | 3 + .../grib1/localConcepts/ecmf/cfVarName.def | 15 +++ definitions/grib1/localConcepts/ecmf/name.def | 15 +++ .../grib1/localConcepts/ecmf/paramId.def | 15 +++ .../grib1/localConcepts/ecmf/shortName.def | 15 +++ .../grib1/localConcepts/ecmf/units.def | 15 +++ definitions/grib2/cfVarName.def | 54 ++++++++ .../grib2/localConcepts/ecmf/cfVarName.def | 18 --- definitions/grib2/localConcepts/ecmf/name.def | 18 --- .../grib2/localConcepts/ecmf/paramId.def | 18 --- .../grib2/localConcepts/ecmf/shortName.def | 18 --- .../grib2/localConcepts/ecmf/units.def | 18 --- definitions/grib2/name.def | 54 ++++++++ definitions/grib2/paramId.def | 54 ++++++++ definitions/grib2/shortName.def | 54 ++++++++ definitions/grib2/units.def | 54 ++++++++ src/grib_accessor_class_concept.c | 120 +++++++++++++++--- 17 files changed, 453 insertions(+), 105 deletions(-) diff --git a/definitions/grib1/2.98.228.table b/definitions/grib1/2.98.228.table index e1801b2da..daad8fd53 100644 --- a/definitions/grib1/2.98.228.table +++ b/definitions/grib1/2.98.228.table @@ -85,6 +85,9 @@ 228 tp TP Total Precipitation (kg m**-2) 229 smos_tb_cdfa SMOS_TB_CDFA SMOS first Brightness Temperature Bias Correction parameter (K) 230 smos_tb_cdfb SMOS_TB_CDFB SMOS second Brightness Temperature Bias Correction parameter (dimensionless) +239 200U 200 metre U wind component (m s**-1) +240 200V 200 metre V wind component (m s**-1) +241 200SI 200 metre wind speed (m s**-1) 242 fdif FDIF Surface solar radiation diffuse total sky (J m**-2) 243 cdif CDIF Surface solar radiation diffuse clear-sky (J m**-2) 244 aldr ALDR Surface albedo of direct radiation (0 - 1) diff --git a/definitions/grib1/localConcepts/ecmf/cfVarName.def b/definitions/grib1/localConcepts/ecmf/cfVarName.def index bd11bc379..d238cc0c1 100644 --- a/definitions/grib1/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib1/localConcepts/ecmf/cfVarName.def @@ -9559,6 +9559,21 @@ table2Version = 228 ; indicatorOfParameter = 230 ; } +#200 metre U wind component +'u200' = { + table2Version = 228 ; + indicatorOfParameter = 239 ; + } +#200 metre V wind component +'v200' = { + table2Version = 228 ; + indicatorOfParameter = 240 ; + } +#200 metre wind speed +'si200' = { + table2Version = 228 ; + indicatorOfParameter = 241 ; + } #Surface solar radiation diffuse total sky 'fdif' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/name.def b/definitions/grib1/localConcepts/ecmf/name.def index 78169a694..bd7ba2320 100644 --- a/definitions/grib1/localConcepts/ecmf/name.def +++ b/definitions/grib1/localConcepts/ecmf/name.def @@ -9559,6 +9559,21 @@ table2Version = 228 ; indicatorOfParameter = 230 ; } +#200 metre U wind component +'200 metre U wind component' = { + table2Version = 228 ; + indicatorOfParameter = 239 ; + } +#200 metre V wind component +'200 metre V wind component' = { + table2Version = 228 ; + indicatorOfParameter = 240 ; + } +#200 metre wind speed +'200 metre wind speed' = { + table2Version = 228 ; + indicatorOfParameter = 241 ; + } #Surface solar radiation diffuse total sky 'Surface solar radiation diffuse total sky' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/paramId.def b/definitions/grib1/localConcepts/ecmf/paramId.def index d88458cf8..3265063b6 100644 --- a/definitions/grib1/localConcepts/ecmf/paramId.def +++ b/definitions/grib1/localConcepts/ecmf/paramId.def @@ -9559,6 +9559,21 @@ table2Version = 228 ; indicatorOfParameter = 230 ; } +#200 metre U wind component +'228239' = { + table2Version = 228 ; + indicatorOfParameter = 239 ; + } +#200 metre V wind component +'228240' = { + table2Version = 228 ; + indicatorOfParameter = 240 ; + } +#200 metre wind speed +'228241' = { + table2Version = 228 ; + indicatorOfParameter = 241 ; + } #Surface solar radiation diffuse total sky '228242' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/shortName.def b/definitions/grib1/localConcepts/ecmf/shortName.def index 23a98e99e..c93a57bb1 100644 --- a/definitions/grib1/localConcepts/ecmf/shortName.def +++ b/definitions/grib1/localConcepts/ecmf/shortName.def @@ -9559,6 +9559,21 @@ table2Version = 228 ; indicatorOfParameter = 230 ; } +#200 metre U wind component +'200u' = { + table2Version = 228 ; + indicatorOfParameter = 239 ; + } +#200 metre V wind component +'200v' = { + table2Version = 228 ; + indicatorOfParameter = 240 ; + } +#200 metre wind speed +'200si' = { + table2Version = 228 ; + indicatorOfParameter = 241 ; + } #Surface solar radiation diffuse total sky 'fdif' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/units.def b/definitions/grib1/localConcepts/ecmf/units.def index 82822f9d7..6a184c837 100644 --- a/definitions/grib1/localConcepts/ecmf/units.def +++ b/definitions/grib1/localConcepts/ecmf/units.def @@ -9559,6 +9559,21 @@ table2Version = 228 ; indicatorOfParameter = 230 ; } +#200 metre U wind component +'m s**-1' = { + table2Version = 228 ; + indicatorOfParameter = 239 ; + } +#200 metre V wind component +'m s**-1' = { + table2Version = 228 ; + indicatorOfParameter = 240 ; + } +#200 metre wind speed +'m s**-1' = { + table2Version = 228 ; + indicatorOfParameter = 241 ; + } #Surface solar radiation diffuse total sky 'J m**-2' = { table2Version = 228 ; diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index a4ef007e1..2ed13e201 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -535,6 +535,42 @@ parameterCategory = 0 ; parameterNumber = 33 ; } +#200 metre U wind component +'u200' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + typeOfFirstFixedSurface = 103 ; + } +#200 metre V wind component +'v200' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#200 metre wind speed +'si200' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#100 metre wind speed +'si100' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Mean temperature tendency due to short-wave radiation 'mttswr' = { discipline = 0 ; @@ -1117,6 +1153,24 @@ parameterCategory = 0 ; parameterNumber = 34 ; } +#100 metre U wind component +'u100' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#100 metre V wind component +'v100' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 100 ; + } #Total precipitation of at least 10 mm 'tpg10' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.def b/definitions/grib2/localConcepts/ecmf/cfVarName.def index 9319e5300..63e6ddcd8 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.def @@ -13437,12 +13437,6 @@ parameterCategory = 228 ; parameterNumber = 248 ; } -#100 metre wind speed -'si100' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 249 ; - } #Irrigation fraction 'irrfr' = { discipline = 192 ; @@ -21915,18 +21909,6 @@ parameterCategory = 254 ; parameterNumber = 136 ; } -#100 metre U wind component -'u100' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 246 ; - } -#100 metre V wind component -'v100' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 247 ; - } #ASCAT first soil moisture CDF matching parameter 'ascat_sm_cdfa' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/name.def b/definitions/grib2/localConcepts/ecmf/name.def index f35354a59..b44b56a5f 100644 --- a/definitions/grib2/localConcepts/ecmf/name.def +++ b/definitions/grib2/localConcepts/ecmf/name.def @@ -13437,12 +13437,6 @@ parameterCategory = 228 ; parameterNumber = 248 ; } -#100 metre wind speed -'100 metre wind speed' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 249 ; - } #Irrigation fraction 'Irrigation fraction' = { discipline = 192 ; @@ -21915,18 +21909,6 @@ parameterCategory = 254 ; parameterNumber = 136 ; } -#100 metre U wind component -'100 metre U wind component' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 246 ; - } -#100 metre V wind component -'100 metre V wind component' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 247 ; - } #ASCAT first soil moisture CDF matching parameter 'ASCAT first soil moisture CDF matching parameter' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/paramId.def b/definitions/grib2/localConcepts/ecmf/paramId.def index 555bdd599..e5d559710 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.def @@ -13437,12 +13437,6 @@ parameterCategory = 228 ; parameterNumber = 248 ; } -#100 metre wind speed -'228249' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 249 ; - } #Irrigation fraction '228250' = { discipline = 192 ; @@ -21915,18 +21909,6 @@ parameterCategory = 254 ; parameterNumber = 136 ; } -#100 metre U wind component -'228246' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 246 ; - } -#100 metre V wind component -'228247' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 247 ; - } #ASCAT first soil moisture CDF matching parameter '228253' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/shortName.def b/definitions/grib2/localConcepts/ecmf/shortName.def index c4a324965..4306096d8 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.def @@ -13437,12 +13437,6 @@ parameterCategory = 228 ; parameterNumber = 248 ; } -#100 metre wind speed -'100si' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 249 ; - } #Irrigation fraction 'irrfr' = { discipline = 192 ; @@ -21915,18 +21909,6 @@ parameterCategory = 254 ; parameterNumber = 136 ; } -#100 metre U wind component -'100u' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 246 ; - } -#100 metre V wind component -'100v' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 247 ; - } #ASCAT first soil moisture CDF matching parameter 'ascat_sm_cdfa' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/units.def b/definitions/grib2/localConcepts/ecmf/units.def index 721b0c55c..c6c7811fa 100644 --- a/definitions/grib2/localConcepts/ecmf/units.def +++ b/definitions/grib2/localConcepts/ecmf/units.def @@ -13437,12 +13437,6 @@ parameterCategory = 228 ; parameterNumber = 248 ; } -#100 metre wind speed -'m s**-1' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 249 ; - } #Irrigation fraction 'Proportion' = { discipline = 192 ; @@ -21915,18 +21909,6 @@ parameterCategory = 254 ; parameterNumber = 136 ; } -#100 metre U wind component -'m s**-1' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 246 ; - } -#100 metre V wind component -'m s**-1' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 247 ; - } #ASCAT first soil moisture CDF matching parameter 'm**3 m**-3' = { discipline = 192 ; diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 6c5eaed52..0f1adfa28 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -535,6 +535,42 @@ parameterCategory = 0 ; parameterNumber = 33 ; } +#200 metre U wind component +'200 metre U wind component' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 200 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#200 metre V wind component +'200 metre V wind component' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + scaledValueOfFirstFixedSurface = 200 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + } +#200 metre wind speed +'200 metre wind speed' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#100 metre wind speed +'100 metre wind speed' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Mean temperature tendency due to short-wave radiation 'Mean temperature tendency due to short-wave radiation' = { discipline = 0 ; @@ -1117,6 +1153,24 @@ parameterCategory = 0 ; parameterNumber = 34 ; } +#100 metre U wind component +'100 metre U wind component' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#100 metre V wind component +'100 metre V wind component' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Total precipitation of at least 10 mm 'Total precipitation of at least 10 mm' = { discipline = 0 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index 536914e97..ce4ccc134 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -535,6 +535,42 @@ parameterCategory = 0 ; parameterNumber = 33 ; } +#200 metre U wind component +'228239' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#200 metre V wind component +'228240' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#200 metre wind speed +'228241' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#100 metre wind speed +'228249' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + } #Mean temperature tendency due to short-wave radiation '235001' = { discipline = 0 ; @@ -1117,6 +1153,24 @@ parameterCategory = 0 ; parameterNumber = 34 ; } +#100 metre U wind component +'228246' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + } +#100 metre V wind component +'228247' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Total precipitation of at least 10 mm '131062' = { discipline = 0 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index 8a8a3f0d7..c62978901 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -535,6 +535,42 @@ parameterCategory = 0 ; parameterNumber = 33 ; } +#200 metre U wind component +'200u' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + typeOfFirstFixedSurface = 103 ; + } +#200 metre V wind component +'200v' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#200 metre wind speed +'200si' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#100 metre wind speed +'100si' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Mean temperature tendency due to short-wave radiation 'mttswr' = { discipline = 0 ; @@ -1117,6 +1153,24 @@ parameterCategory = 0 ; parameterNumber = 34 ; } +#100 metre U wind component +'100u' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#100 metre V wind component +'100v' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 100 ; + } #Total precipitation of at least 10 mm 'tpg10' = { discipline = 0 ; diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 4c6c79113..43973320d 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -535,6 +535,42 @@ parameterCategory = 0 ; parameterNumber = 33 ; } +#200 metre U wind component +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 200 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#200 metre V wind component +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + scaledValueOfFirstFixedSurface = 200 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + } +#200 metre wind speed +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 200 ; + } +#100 metre wind speed +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Mean temperature tendency due to short-wave radiation 'K s**-1' = { discipline = 0 ; @@ -1117,6 +1153,24 @@ parameterCategory = 0 ; parameterNumber = 34 ; } +#100 metre U wind component +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 2 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#100 metre V wind component +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 3 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Total precipitation of at least 10 mm '%' = { discipline = 0 ; diff --git a/src/grib_accessor_class_concept.c b/src/grib_accessor_class_concept.c index 59ded63a9..df1dc3ae3 100644 --- a/src/grib_accessor_class_concept.c +++ b/src/grib_accessor_class_concept.c @@ -160,17 +160,10 @@ static void dump(grib_accessor* a, grib_dumper* dumper) static int concept_condition_expression_true(grib_handle* h,grib_concept_condition* c) { long lval; - double dval; long lres=0; - double dres=0.0; - const char *cval; - char buf[80]; - char tmp[80]; - size_t len = sizeof(buf); - size_t size=sizeof(tmp); int ok = 0; int err=0; - int type = grib_expression_native_type(h,c->expression); + const int type = grib_expression_native_type(h,c->expression); switch(type) { @@ -180,17 +173,27 @@ static int concept_condition_expression_true(grib_handle* h,grib_concept_conditi (lval == lres); break; - case GRIB_TYPE_DOUBLE: + case GRIB_TYPE_DOUBLE: { + double dval; + double dres=0.0; grib_expression_evaluate_double(h,c->expression,&dres); ok = (grib_get_double(h,c->name,&dval) == GRIB_SUCCESS) && (dval == dres); break; + } + + case GRIB_TYPE_STRING: { + const char *cval; + char buf[80]; + char tmp[80]; + size_t len = sizeof(buf); + size_t size=sizeof(tmp); - case GRIB_TYPE_STRING: ok = (grib_get_string(h,c->name,buf,&len) == GRIB_SUCCESS) && ((cval = grib_expression_evaluate_string(h,c->expression,tmp,&size,&err)) != NULL) && (err==0) && (grib_inline_strcmp(buf,cval) == 0); break; + } default: /* TODO: */ @@ -425,14 +428,54 @@ static int unpack_double(grib_accessor* a, double* val, size_t *len) return ret; } +static long guess_paramId(grib_handle* h) +{ + int err = 0; + long discipline, category, number; + err=grib_get_long(h,"discipline",&discipline); + if (err || discipline != 192) + return -1; + err=grib_get_long(h,"parameterCategory",&category); + if (err) return -1; + err=grib_get_long(h,"parameterNumber",&number); + if (err) return -1; + + if (category==128) return number; + else return (category * 1000 + number); +} + +/* Return -1 if cannot match */ +static long get_ECMWF_local_paramId(grib_accessor* a, grib_handle* h) +{ + int err = 0; + long edition, centre; + if (h->product_kind != PRODUCT_GRIB) + return -1; + err=grib_get_long(h,"centre",¢re); + if (err) return -1; + err=grib_get_long(h,"edition",&edition); + if (err) return -1; + if (edition==2 && centre==98 && strncmp(a->name,"paramId",7)==0) { + return guess_paramId(h); + } + return -1; +} + static int unpack_long(grib_accessor* a, long* val, size_t *len) { - /* TODO properly calling concept_evaluate_long ! */ const char *p = concept_evaluate(a); if(!p) { + grib_handle* h = grib_handle_of_accessor(a); + const long pid = get_ECMWF_local_paramId(a, h); + if (pid != -1) { + grib_context_log(h->context,GRIB_LOG_DEBUG,"ECMWF local grib2: paramId guessed to be %ld",pid); + *val = pid; + *len = 1; + return GRIB_SUCCESS; + } if (a->creator->defaultkey) - return grib_get_long_internal(grib_handle_of_accessor(a),a->creator->defaultkey,val); + return grib_get_long_internal(h,a->creator->defaultkey,val); return GRIB_NOT_FOUND; } @@ -460,16 +503,63 @@ static void destroy(grib_context* c,grib_accessor* a) */ } +static int is_local_ecmwf_grib2_param_key(grib_accessor* a, long edition, long centre) +{ + if (edition==2 && centre==98) { + if (a->parent->owner && a->parent->owner->name && strcmp(a->parent->owner->name,"parameters")==0) + return 1; + } + return 0; +} + +/* Try to get the name, shortName, units etc for a GRIB2 message with + * local ECMWF coding i.e. discipline=192 etc + */ +static const char* get_ECMWF_local_parameter(grib_accessor* a, grib_handle* h) +{ + int err = 0; + const char* key_name = a->name; /*this is the key whose value we want*/ + long edition, centre; + if (h->product_kind != PRODUCT_GRIB) + return NULL; + err=grib_get_long(h,"centre",¢re); + if (err) return NULL; + err=grib_get_long(h,"edition",&edition); + if (err) return NULL; + if (is_local_ecmwf_grib2_param_key(a,edition,centre)) { + /* Must be one of: 'name', 'shortName', 'units', 'cfName' etc */ + grib_accessor* a2 = NULL; + long pid_guess = guess_paramId(h); + if (pid_guess == -1) return NULL; + + /* Change the paramId so we can get the other string key*/ + err = grib_set_long(h, "paramId", pid_guess); + if (err) return NULL; + /* Get the string value of key. Do not call grib_get_string() to avoid + * dangers of infinite recursion as that calls unpack_string()! + */ + a2 = grib_find_accessor(h, key_name); + if (!a2) return NULL; + return concept_evaluate(a2); + } + return NULL; + +} static int unpack_string (grib_accessor* a, char* val, size_t *len) { size_t slen ; const char *p = concept_evaluate(a); if(!p) { - if (a->creator->defaultkey) - return grib_get_string_internal(grib_handle_of_accessor(a),a->creator->defaultkey,val,len); + grib_handle* h = grib_handle_of_accessor(a); + p = get_ECMWF_local_parameter(a, h); + if (!p) { + if (a->creator->defaultkey) + return grib_get_string_internal(h,a->creator->defaultkey,val,len); - return GRIB_NOT_FOUND; + return GRIB_NOT_FOUND; + } + grib_context_log(h->context,GRIB_LOG_DEBUG,"ECMWF local grib2 parameter: %s=%s", a->name,p); } slen = strlen(p) +1; From 7327eeec1759388da0c0035ce1c2a6a7e3e12e9c Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Fri, 1 Feb 2019 13:31:34 +0000 Subject: [PATCH 5/8] ECC-877 and ECC-878 --- definitions/grib1/2.98.140.table | 14 ++++ .../grib1/localConcepts/ecmf/cfVarName.def | 70 +++++++++++++++++++ definitions/grib1/localConcepts/ecmf/name.def | 70 +++++++++++++++++++ .../grib1/localConcepts/ecmf/paramId.def | 70 +++++++++++++++++++ .../grib1/localConcepts/ecmf/shortName.def | 70 +++++++++++++++++++ .../grib1/localConcepts/ecmf/units.def | 70 +++++++++++++++++++ definitions/grib2/cfVarName.def | 12 ++++ definitions/grib2/name.def | 12 ++++ definitions/grib2/paramId.def | 12 ++++ definitions/grib2/shortName.def | 12 ++++ definitions/grib2/units.def | 12 ++++ 11 files changed, 424 insertions(+) diff --git a/definitions/grib1/2.98.140.table b/definitions/grib1/2.98.140.table index 19e2c325a..6147bcc8a 100644 --- a/definitions/grib1/2.98.140.table +++ b/definitions/grib1/2.98.140.table @@ -4,6 +4,20 @@ 82 82 WX3 Wave experimental parameter 3 (~) 83 83 WX4 Wave experimental parameter 4 (~) 84 84 WX5 Wave experimental parameter 5 (~) +98 98 WETA Wave induced mean sea level correction (m) +99 99 WRAF Ratio of wave angular and frequency width (dimensionless) +100 100 WNSLC Number of events in freak waves statistics (dimensionless) +101 101 UTAUA U-component of atmospheric surface momentum flux (N m**-2) +102 102 VTAUA V-component of atmospheric surface momentum flux (N m**-2) +103 103 UTAUO U-component of surface momentum flux into ocean (N m**-2) +104 104 VTAUO V-component of surface momentum flux into ocean (N m**-2) +105 105 WPHIO Wave turbulent energy flux into ocean (W m**-2) +106 106 WDW1 Wave directional width of first swell partition (dimensionless) +107 107 WFW1 Wave frequency width of first swell partition (dimensionless) +108 108 WDW2 Wave directional width of second swell partition (dimensionless) +109 109 WFW2 Wave frequency width of second swell partition (dimensionless) +110 110 WDW3 Wave directional width of third swell partition (dimensionless) +111 111 WFW3 Wave frequency width of third swell partition (dimensionless) 112 112 WEFXM Wave energy flux magnitude (W m**-1) 113 113 WEFXD Wave energy flux mean direction (Degree true) 114 114 H1012 Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds (m) diff --git a/definitions/grib1/localConcepts/ecmf/cfVarName.def b/definitions/grib1/localConcepts/ecmf/cfVarName.def index d238cc0c1..1e3d0e26f 100644 --- a/definitions/grib1/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib1/localConcepts/ecmf/cfVarName.def @@ -3359,6 +3359,76 @@ table2Version = 140 ; indicatorOfParameter = 84 ; } +#Wave induced mean sea level correction +'weta' = { + table2Version = 140 ; + indicatorOfParameter = 98 ; + } +#Ratio of wave angular and frequency width +'wraf' = { + table2Version = 140 ; + indicatorOfParameter = 99 ; + } +#Number of events in freak waves statistics +'wnslc' = { + table2Version = 140 ; + indicatorOfParameter = 100 ; + } +#U-component of atmospheric surface momentum flux +'utaua' = { + table2Version = 140 ; + indicatorOfParameter = 101 ; + } +#V-component of atmospheric surface momentum flux +'vtaua' = { + table2Version = 140 ; + indicatorOfParameter = 102 ; + } +#U-component of surface momentum flux into ocean +'utauo' = { + table2Version = 140 ; + indicatorOfParameter = 103 ; + } +#V-component of surface momentum flux into ocean +'vtauo' = { + table2Version = 140 ; + indicatorOfParameter = 104 ; + } +#Wave turbulent energy flux into ocean +'wphio' = { + table2Version = 140 ; + indicatorOfParameter = 105 ; + } +#Wave directional width of first swell partition +'wdw1' = { + table2Version = 140 ; + indicatorOfParameter = 106 ; + } +#Wave frequency width of first swell partition +'wfw1' = { + table2Version = 140 ; + indicatorOfParameter = 107 ; + } +#Wave directional width of second swell partition +'wdw2' = { + table2Version = 140 ; + indicatorOfParameter = 108 ; + } +#Wave frequency width of second swell partition +'wfw2' = { + table2Version = 140 ; + indicatorOfParameter = 109 ; + } +#Wave directional width of third swell partition +'wdw3' = { + table2Version = 140 ; + indicatorOfParameter = 110 ; + } +#Wave frequency width of third swell partition +'wfw3' = { + table2Version = 140 ; + indicatorOfParameter = 111 ; + } #Wave energy flux magnitude 'wefxm' = { table2Version = 140 ; diff --git a/definitions/grib1/localConcepts/ecmf/name.def b/definitions/grib1/localConcepts/ecmf/name.def index bd7ba2320..c79d9ad14 100644 --- a/definitions/grib1/localConcepts/ecmf/name.def +++ b/definitions/grib1/localConcepts/ecmf/name.def @@ -3359,6 +3359,76 @@ table2Version = 140 ; indicatorOfParameter = 84 ; } +#Wave induced mean sea level correction +'Wave induced mean sea level correction' = { + table2Version = 140 ; + indicatorOfParameter = 98 ; + } +#Ratio of wave angular and frequency width +'Ratio of wave angular and frequency width' = { + table2Version = 140 ; + indicatorOfParameter = 99 ; + } +#Number of events in freak waves statistics +'Number of events in freak waves statistics' = { + table2Version = 140 ; + indicatorOfParameter = 100 ; + } +#U-component of atmospheric surface momentum flux +'U-component of atmospheric surface momentum flux' = { + table2Version = 140 ; + indicatorOfParameter = 101 ; + } +#V-component of atmospheric surface momentum flux +'V-component of atmospheric surface momentum flux' = { + table2Version = 140 ; + indicatorOfParameter = 102 ; + } +#U-component of surface momentum flux into ocean +'U-component of surface momentum flux into ocean' = { + table2Version = 140 ; + indicatorOfParameter = 103 ; + } +#V-component of surface momentum flux into ocean +'V-component of surface momentum flux into ocean' = { + table2Version = 140 ; + indicatorOfParameter = 104 ; + } +#Wave turbulent energy flux into ocean +'Wave turbulent energy flux into ocean' = { + table2Version = 140 ; + indicatorOfParameter = 105 ; + } +#Wave directional width of first swell partition +'Wave directional width of first swell partition' = { + table2Version = 140 ; + indicatorOfParameter = 106 ; + } +#Wave frequency width of first swell partition +'Wave frequency width of first swell partition' = { + table2Version = 140 ; + indicatorOfParameter = 107 ; + } +#Wave directional width of second swell partition +'Wave directional width of second swell partition' = { + table2Version = 140 ; + indicatorOfParameter = 108 ; + } +#Wave frequency width of second swell partition +'Wave frequency width of second swell partition' = { + table2Version = 140 ; + indicatorOfParameter = 109 ; + } +#Wave directional width of third swell partition +'Wave directional width of third swell partition' = { + table2Version = 140 ; + indicatorOfParameter = 110 ; + } +#Wave frequency width of third swell partition +'Wave frequency width of third swell partition' = { + table2Version = 140 ; + indicatorOfParameter = 111 ; + } #Wave energy flux magnitude 'Wave energy flux magnitude' = { table2Version = 140 ; diff --git a/definitions/grib1/localConcepts/ecmf/paramId.def b/definitions/grib1/localConcepts/ecmf/paramId.def index 3265063b6..1c8bcdbbd 100644 --- a/definitions/grib1/localConcepts/ecmf/paramId.def +++ b/definitions/grib1/localConcepts/ecmf/paramId.def @@ -3359,6 +3359,76 @@ table2Version = 140 ; indicatorOfParameter = 84 ; } +#Wave induced mean sea level correction +'140098' = { + table2Version = 140 ; + indicatorOfParameter = 98 ; + } +#Ratio of wave angular and frequency width +'140099' = { + table2Version = 140 ; + indicatorOfParameter = 99 ; + } +#Number of events in freak waves statistics +'140100' = { + table2Version = 140 ; + indicatorOfParameter = 100 ; + } +#U-component of atmospheric surface momentum flux +'140101' = { + table2Version = 140 ; + indicatorOfParameter = 101 ; + } +#V-component of atmospheric surface momentum flux +'140102' = { + table2Version = 140 ; + indicatorOfParameter = 102 ; + } +#U-component of surface momentum flux into ocean +'140103' = { + table2Version = 140 ; + indicatorOfParameter = 103 ; + } +#V-component of surface momentum flux into ocean +'140104' = { + table2Version = 140 ; + indicatorOfParameter = 104 ; + } +#Wave turbulent energy flux into ocean +'140105' = { + table2Version = 140 ; + indicatorOfParameter = 105 ; + } +#Wave directional width of first swell partition +'140106' = { + table2Version = 140 ; + indicatorOfParameter = 106 ; + } +#Wave frequency width of first swell partition +'140107' = { + table2Version = 140 ; + indicatorOfParameter = 107 ; + } +#Wave directional width of second swell partition +'140108' = { + table2Version = 140 ; + indicatorOfParameter = 108 ; + } +#Wave frequency width of second swell partition +'140109' = { + table2Version = 140 ; + indicatorOfParameter = 109 ; + } +#Wave directional width of third swell partition +'140110' = { + table2Version = 140 ; + indicatorOfParameter = 110 ; + } +#Wave frequency width of third swell partition +'140111' = { + table2Version = 140 ; + indicatorOfParameter = 111 ; + } #Wave energy flux magnitude '140112' = { table2Version = 140 ; diff --git a/definitions/grib1/localConcepts/ecmf/shortName.def b/definitions/grib1/localConcepts/ecmf/shortName.def index c93a57bb1..c5c21d4b4 100644 --- a/definitions/grib1/localConcepts/ecmf/shortName.def +++ b/definitions/grib1/localConcepts/ecmf/shortName.def @@ -3359,6 +3359,76 @@ table2Version = 140 ; indicatorOfParameter = 84 ; } +#Wave induced mean sea level correction +'weta' = { + table2Version = 140 ; + indicatorOfParameter = 98 ; + } +#Ratio of wave angular and frequency width +'wraf' = { + table2Version = 140 ; + indicatorOfParameter = 99 ; + } +#Number of events in freak waves statistics +'wnslc' = { + table2Version = 140 ; + indicatorOfParameter = 100 ; + } +#U-component of atmospheric surface momentum flux +'utaua' = { + table2Version = 140 ; + indicatorOfParameter = 101 ; + } +#V-component of atmospheric surface momentum flux +'vtaua' = { + table2Version = 140 ; + indicatorOfParameter = 102 ; + } +#U-component of surface momentum flux into ocean +'utauo' = { + table2Version = 140 ; + indicatorOfParameter = 103 ; + } +#V-component of surface momentum flux into ocean +'vtauo' = { + table2Version = 140 ; + indicatorOfParameter = 104 ; + } +#Wave turbulent energy flux into ocean +'wphio' = { + table2Version = 140 ; + indicatorOfParameter = 105 ; + } +#Wave directional width of first swell partition +'wdw1' = { + table2Version = 140 ; + indicatorOfParameter = 106 ; + } +#Wave frequency width of first swell partition +'wfw1' = { + table2Version = 140 ; + indicatorOfParameter = 107 ; + } +#Wave directional width of second swell partition +'wdw2' = { + table2Version = 140 ; + indicatorOfParameter = 108 ; + } +#Wave frequency width of second swell partition +'wfw2' = { + table2Version = 140 ; + indicatorOfParameter = 109 ; + } +#Wave directional width of third swell partition +'wdw3' = { + table2Version = 140 ; + indicatorOfParameter = 110 ; + } +#Wave frequency width of third swell partition +'wfw3' = { + table2Version = 140 ; + indicatorOfParameter = 111 ; + } #Wave energy flux magnitude 'wefxm' = { table2Version = 140 ; diff --git a/definitions/grib1/localConcepts/ecmf/units.def b/definitions/grib1/localConcepts/ecmf/units.def index 6a184c837..839a1100e 100644 --- a/definitions/grib1/localConcepts/ecmf/units.def +++ b/definitions/grib1/localConcepts/ecmf/units.def @@ -3359,6 +3359,76 @@ table2Version = 140 ; indicatorOfParameter = 84 ; } +#Wave induced mean sea level correction +'m' = { + table2Version = 140 ; + indicatorOfParameter = 98 ; + } +#Ratio of wave angular and frequency width +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 99 ; + } +#Number of events in freak waves statistics +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 100 ; + } +#U-component of atmospheric surface momentum flux +'N m**-2' = { + table2Version = 140 ; + indicatorOfParameter = 101 ; + } +#V-component of atmospheric surface momentum flux +'N m**-2' = { + table2Version = 140 ; + indicatorOfParameter = 102 ; + } +#U-component of surface momentum flux into ocean +'N m**-2' = { + table2Version = 140 ; + indicatorOfParameter = 103 ; + } +#V-component of surface momentum flux into ocean +'N m**-2' = { + table2Version = 140 ; + indicatorOfParameter = 104 ; + } +#Wave turbulent energy flux into ocean +'W m**-2' = { + table2Version = 140 ; + indicatorOfParameter = 105 ; + } +#Wave directional width of first swell partition +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 106 ; + } +#Wave frequency width of first swell partition +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 107 ; + } +#Wave directional width of second swell partition +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 108 ; + } +#Wave frequency width of second swell partition +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 109 ; + } +#Wave directional width of third swell partition +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 110 ; + } +#Wave frequency width of third swell partition +'dimensionless' = { + table2Version = 140 ; + indicatorOfParameter = 111 ; + } #Wave energy flux magnitude 'W m**-1' = { table2Version = 140 ; diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index 2ed13e201..9449ab748 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -293,6 +293,18 @@ scaleFactorOfLowerLimit = 0 ; productDefinitionTemplateNumber = 9 ; } +#Mean sea water temperature in the upper 300 m +'mswt300m' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 15 ; + typeOfFirstFixedSurface = 160 ; + typeOfSecondFixedSurface = 160 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 0 ; + scaledValueOfSecondFixedSurface = 300 ; + scaleFactorOfSecondFixedSurface = 0 ; + } #10 metre wind gust in the last 3 hours 'fg310' = { discipline = 0 ; diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 0f1adfa28..fc0db0df7 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -293,6 +293,18 @@ probabilityType = 0 ; typeOfStatisticalProcessing = 10 ; } +#Mean sea water temperature in the upper 300 m +'Mean sea water temperature in the upper 300 m' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 15 ; + typeOfFirstFixedSurface = 160 ; + typeOfSecondFixedSurface = 160 ; + scaledValueOfFirstFixedSurface = 0 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfSecondFixedSurface = 300 ; + scaleFactorOfSecondFixedSurface = 0 ; + } #10 metre wind gust in the last 3 hours '10 metre wind gust in the last 3 hours' = { discipline = 0 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index ce4ccc134..bd56a2d45 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -293,6 +293,18 @@ probabilityType = 0 ; scaleFactorOfLowerLimit = 0 ; } +#Mean sea water temperature in the upper 300 m +'151127' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 15 ; + typeOfFirstFixedSurface = 160 ; + typeOfSecondFixedSurface = 160 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 0 ; + scaledValueOfSecondFixedSurface = 300 ; + scaleFactorOfSecondFixedSurface = 0 ; + } #10 metre wind gust in the last 3 hours '228028' = { discipline = 0 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index c62978901..2a36719dd 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -293,6 +293,18 @@ scaleFactorOfLowerLimit = 0 ; productDefinitionTemplateNumber = 9 ; } +#Mean sea water temperature in the upper 300 m +'mswt300m' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 15 ; + typeOfFirstFixedSurface = 160 ; + typeOfSecondFixedSurface = 160 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 0 ; + scaledValueOfSecondFixedSurface = 300 ; + scaleFactorOfSecondFixedSurface = 0 ; + } #10 metre wind gust in the last 3 hours '10fg3' = { discipline = 0 ; diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 43973320d..de317a8be 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -293,6 +293,18 @@ probabilityType = 0 ; typeOfStatisticalProcessing = 10 ; } +#Mean sea water temperature in the upper 300 m +'K' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 15 ; + typeOfFirstFixedSurface = 160 ; + typeOfSecondFixedSurface = 160 ; + scaledValueOfFirstFixedSurface = 0 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfSecondFixedSurface = 300 ; + scaleFactorOfSecondFixedSurface = 0 ; + } #10 metre wind gust in the last 3 hours 'm s**-1' = { discipline = 0 ; From 7e5f4fa118d15fabaffd34f0ac2773eda369fe6b Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Mon, 25 Feb 2019 12:40:31 +0000 Subject: [PATCH 6/8] Bump up version to 2.12.1 --- VERSION.cmake | 2 +- definitions/grib1/2.98.228.table | 5 ++ .../grib1/localConcepts/ecmf/cfVarName.def | 25 ++++++++ definitions/grib1/localConcepts/ecmf/name.def | 25 ++++++++ .../grib1/localConcepts/ecmf/paramId.def | 25 ++++++++ .../grib1/localConcepts/ecmf/shortName.def | 25 ++++++++ .../grib1/localConcepts/ecmf/units.def | 25 ++++++++ .../grib2/localConcepts/ecmf/cfVarName.def | 59 +++++++++++++++++++ definitions/grib2/localConcepts/ecmf/name.def | 59 +++++++++++++++++++ .../grib2/localConcepts/ecmf/paramId.def | 59 +++++++++++++++++++ .../grib2/localConcepts/ecmf/shortName.def | 59 +++++++++++++++++++ .../grib2/localConcepts/ecmf/units.def | 59 +++++++++++++++++++ .../grib2/tables/local/ecmf/1/4.2.2.0.table | 10 ++++ version.sh | 2 +- 14 files changed, 437 insertions(+), 2 deletions(-) create mode 100644 definitions/grib2/tables/local/ecmf/1/4.2.2.0.table diff --git a/VERSION.cmake b/VERSION.cmake index cfad35a46..1f4932340 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -1 +1 @@ -set( ${PROJECT_NAME}_VERSION_STR "2.12.0" ) +set( ${PROJECT_NAME}_VERSION_STR "2.12.1" ) diff --git a/definitions/grib1/2.98.228.table b/definitions/grib1/2.98.228.table index daad8fd53..5dd02af69 100644 --- a/definitions/grib1/2.98.228.table +++ b/definitions/grib1/2.98.228.table @@ -40,6 +40,11 @@ 51 litota1 LITOTA1 Averaged total lightning flash density in the last hour (km**-2 day**-1) 52 licgi LICGI Instantaneous cloud-to-ground lightning flash density (km**-2 day**-1) 53 licga1 LICGA1 Averaged cloud-to-ground lightning flash density in the last hour (km**-2 day**-1) +70 smnnob SMNNOB SMOS observed soil moisture retrieved using neural network (m**3 m**-3) +71 smnner SMNNER SMOS observed soil moisture uncertainty retrieved using neural network (m**3 m**-3) +72 smnnrfi SMNNRFI SMOS radio frequency interference probability (%) +73 smnnnb SMNNNB SMOS number of observations per grid point (dimensionless) +74 smnntim SMNNTIM SMOS observation time for the satellite soil moisture data (hour) 78 gppbfas GPPBFAS GPP coefficient from Biogenic Flux Adjustment System (dimensionless) 79 recbfas RECBFAS Rec coefficient from Biogenic Flux Adjustment System (dimensionless) 80 aco2nee ACO2NEE Accumulated Carbon Dioxide Net Ecosystem Exchange (kg m**-2) diff --git a/definitions/grib1/localConcepts/ecmf/cfVarName.def b/definitions/grib1/localConcepts/ecmf/cfVarName.def index 04be3a19b..28353a0f3 100644 --- a/definitions/grib1/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib1/localConcepts/ecmf/cfVarName.def @@ -9614,6 +9614,31 @@ table2Version = 228 ; indicatorOfParameter = 53 ; } +#SMOS observed soil moisture retrieved using neural network +'smnnob' = { + table2Version = 228 ; + indicatorOfParameter = 70 ; + } +#SMOS observed soil moisture uncertainty retrieved using neural network +'smnner' = { + table2Version = 228 ; + indicatorOfParameter = 71 ; + } +#SMOS radio frequency interference probability +'smnnrfi' = { + table2Version = 228 ; + indicatorOfParameter = 72 ; + } +#SMOS number of observations per grid point +'smnnnb' = { + table2Version = 228 ; + indicatorOfParameter = 73 ; + } +#SMOS observation time for the satellite soil moisture data +'smnntim' = { + table2Version = 228 ; + indicatorOfParameter = 74 ; + } #GPP coefficient from Biogenic Flux Adjustment System 'gppbfas' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/name.def b/definitions/grib1/localConcepts/ecmf/name.def index e98c5cc89..523b9307c 100644 --- a/definitions/grib1/localConcepts/ecmf/name.def +++ b/definitions/grib1/localConcepts/ecmf/name.def @@ -9614,6 +9614,31 @@ table2Version = 228 ; indicatorOfParameter = 53 ; } +#SMOS observed soil moisture retrieved using neural network +'SMOS observed soil moisture retrieved using neural network' = { + table2Version = 228 ; + indicatorOfParameter = 70 ; + } +#SMOS observed soil moisture uncertainty retrieved using neural network +'SMOS observed soil moisture uncertainty retrieved using neural network' = { + table2Version = 228 ; + indicatorOfParameter = 71 ; + } +#SMOS radio frequency interference probability +'SMOS radio frequency interference probability' = { + table2Version = 228 ; + indicatorOfParameter = 72 ; + } +#SMOS number of observations per grid point +'SMOS number of observations per grid point' = { + table2Version = 228 ; + indicatorOfParameter = 73 ; + } +#SMOS observation time for the satellite soil moisture data +'SMOS observation time for the satellite soil moisture data' = { + table2Version = 228 ; + indicatorOfParameter = 74 ; + } #GPP coefficient from Biogenic Flux Adjustment System 'GPP coefficient from Biogenic Flux Adjustment System' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/paramId.def b/definitions/grib1/localConcepts/ecmf/paramId.def index 083336457..f2d0cc05b 100644 --- a/definitions/grib1/localConcepts/ecmf/paramId.def +++ b/definitions/grib1/localConcepts/ecmf/paramId.def @@ -9614,6 +9614,31 @@ table2Version = 228 ; indicatorOfParameter = 53 ; } +#SMOS observed soil moisture retrieved using neural network +'228070' = { + table2Version = 228 ; + indicatorOfParameter = 70 ; + } +#SMOS observed soil moisture uncertainty retrieved using neural network +'228071' = { + table2Version = 228 ; + indicatorOfParameter = 71 ; + } +#SMOS radio frequency interference probability +'228072' = { + table2Version = 228 ; + indicatorOfParameter = 72 ; + } +#SMOS number of observations per grid point +'228073' = { + table2Version = 228 ; + indicatorOfParameter = 73 ; + } +#SMOS observation time for the satellite soil moisture data +'228074' = { + table2Version = 228 ; + indicatorOfParameter = 74 ; + } #GPP coefficient from Biogenic Flux Adjustment System '228078' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/shortName.def b/definitions/grib1/localConcepts/ecmf/shortName.def index fec3780e4..95902571e 100644 --- a/definitions/grib1/localConcepts/ecmf/shortName.def +++ b/definitions/grib1/localConcepts/ecmf/shortName.def @@ -9614,6 +9614,31 @@ table2Version = 228 ; indicatorOfParameter = 53 ; } +#SMOS observed soil moisture retrieved using neural network +'smnnob' = { + table2Version = 228 ; + indicatorOfParameter = 70 ; + } +#SMOS observed soil moisture uncertainty retrieved using neural network +'smnner' = { + table2Version = 228 ; + indicatorOfParameter = 71 ; + } +#SMOS radio frequency interference probability +'smnnrfi' = { + table2Version = 228 ; + indicatorOfParameter = 72 ; + } +#SMOS number of observations per grid point +'smnnnb' = { + table2Version = 228 ; + indicatorOfParameter = 73 ; + } +#SMOS observation time for the satellite soil moisture data +'smnntim' = { + table2Version = 228 ; + indicatorOfParameter = 74 ; + } #GPP coefficient from Biogenic Flux Adjustment System 'gppbfas' = { table2Version = 228 ; diff --git a/definitions/grib1/localConcepts/ecmf/units.def b/definitions/grib1/localConcepts/ecmf/units.def index a7e3eef05..f5c5a1970 100644 --- a/definitions/grib1/localConcepts/ecmf/units.def +++ b/definitions/grib1/localConcepts/ecmf/units.def @@ -9614,6 +9614,31 @@ table2Version = 228 ; indicatorOfParameter = 53 ; } +#SMOS observed soil moisture retrieved using neural network +'m**3 m**-3' = { + table2Version = 228 ; + indicatorOfParameter = 70 ; + } +#SMOS observed soil moisture uncertainty retrieved using neural network +'m**3 m**-3' = { + table2Version = 228 ; + indicatorOfParameter = 71 ; + } +#SMOS radio frequency interference probability +'%' = { + table2Version = 228 ; + indicatorOfParameter = 72 ; + } +#SMOS number of observations per grid point +'dimensionless' = { + table2Version = 228 ; + indicatorOfParameter = 73 ; + } +#SMOS observation time for the satellite soil moisture data +'hour' = { + table2Version = 228 ; + indicatorOfParameter = 74 ; + } #GPP coefficient from Biogenic Flux Adjustment System 'dimensionless' = { table2Version = 228 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.def b/definitions/grib2/localConcepts/ecmf/cfVarName.def index 57e88c73c..ac04aee31 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.def @@ -13359,6 +13359,65 @@ parameterCategory = 228 ; parameterNumber = 60 ; } +#GPP coefficient from Biogenic Flux Adjustment System +'gppbfas' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 198 ; + } +#Rec coefficient from Biogenic Flux Adjustment System +'recbfas' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 199 ; + } +#Accumulated Carbon Dioxide Net Ecosystem Exchange +'aco2nee' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 192 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Gross Primary Production +'aco2gpp' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 193 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Ecosystem Respiration +'aco2rec' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 194 ; + typeOfStatisticalProcessing = 1 ; + } +#Flux of Carbon Dioxide Net Ecosystem Exchange +'fco2nee' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 195 ; + } +#Flux of Carbon Dioxide Gross Primary Production +'fco2gpp' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 197 ; + } +#Flux of Carbon Dioxide Ecosystem Respiration +'fco2rec' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 196 ; + } #Total column rain water 'tcrw' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/name.def b/definitions/grib2/localConcepts/ecmf/name.def index fa2c35e8f..0e8ad9f53 100644 --- a/definitions/grib2/localConcepts/ecmf/name.def +++ b/definitions/grib2/localConcepts/ecmf/name.def @@ -13359,6 +13359,65 @@ parameterCategory = 228 ; parameterNumber = 60 ; } +#GPP coefficient from Biogenic Flux Adjustment System +'GPP coefficient from Biogenic Flux Adjustment System' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 198 ; + } +#Rec coefficient from Biogenic Flux Adjustment System +'Rec coefficient from Biogenic Flux Adjustment System' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 199 ; + } +#Accumulated Carbon Dioxide Net Ecosystem Exchange +'Accumulated Carbon Dioxide Net Ecosystem Exchange' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 192 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Gross Primary Production +'Accumulated Carbon Dioxide Gross Primary Production' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 193 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Ecosystem Respiration +'Accumulated Carbon Dioxide Ecosystem Respiration' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 194 ; + typeOfStatisticalProcessing = 1 ; + } +#Flux of Carbon Dioxide Net Ecosystem Exchange +'Flux of Carbon Dioxide Net Ecosystem Exchange' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 195 ; + } +#Flux of Carbon Dioxide Gross Primary Production +'Flux of Carbon Dioxide Gross Primary Production' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 197 ; + } +#Flux of Carbon Dioxide Ecosystem Respiration +'Flux of Carbon Dioxide Ecosystem Respiration' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 196 ; + } #Total column rain water 'Total column rain water' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/paramId.def b/definitions/grib2/localConcepts/ecmf/paramId.def index 721fc6763..73615c8cd 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.def @@ -13359,6 +13359,65 @@ parameterCategory = 228 ; parameterNumber = 60 ; } +#GPP coefficient from Biogenic Flux Adjustment System +'228078' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 198 ; + } +#Rec coefficient from Biogenic Flux Adjustment System +'228079' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 199 ; + } +#Accumulated Carbon Dioxide Net Ecosystem Exchange +'228080' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 192 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Gross Primary Production +'228081' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 193 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Ecosystem Respiration +'228082' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 194 ; + typeOfStatisticalProcessing = 1 ; + } +#Flux of Carbon Dioxide Net Ecosystem Exchange +'228083' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 195 ; + } +#Flux of Carbon Dioxide Gross Primary Production +'228084' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 197 ; + } +#Flux of Carbon Dioxide Ecosystem Respiration +'228085' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 196 ; + } #Total column rain water '228089' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/shortName.def b/definitions/grib2/localConcepts/ecmf/shortName.def index 5478390b4..6817dff9f 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.def @@ -13359,6 +13359,65 @@ parameterCategory = 228 ; parameterNumber = 60 ; } +#GPP coefficient from Biogenic Flux Adjustment System +'gppbfas' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 198 ; + } +#Rec coefficient from Biogenic Flux Adjustment System +'recbfas' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 199 ; + } +#Accumulated Carbon Dioxide Net Ecosystem Exchange +'aco2nee' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 192 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Gross Primary Production +'aco2gpp' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 193 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Ecosystem Respiration +'aco2rec' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 194 ; + typeOfStatisticalProcessing = 1 ; + } +#Flux of Carbon Dioxide Net Ecosystem Exchange +'fco2nee' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 195 ; + } +#Flux of Carbon Dioxide Gross Primary Production +'fco2gpp' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 197 ; + } +#Flux of Carbon Dioxide Ecosystem Respiration +'fco2rec' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 196 ; + } #Total column rain water 'tcrw' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/units.def b/definitions/grib2/localConcepts/ecmf/units.def index 1c045cb3e..384725899 100644 --- a/definitions/grib2/localConcepts/ecmf/units.def +++ b/definitions/grib2/localConcepts/ecmf/units.def @@ -13359,6 +13359,65 @@ parameterCategory = 228 ; parameterNumber = 60 ; } +#GPP coefficient from Biogenic Flux Adjustment System +'dimensionless' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 198 ; + } +#Rec coefficient from Biogenic Flux Adjustment System +'dimensionless' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 199 ; + } +#Accumulated Carbon Dioxide Net Ecosystem Exchange +'kg m**-2' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 192 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Gross Primary Production +'kg m**-2' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 193 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated Carbon Dioxide Ecosystem Respiration +'kg m**-2' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 194 ; + typeOfStatisticalProcessing = 1 ; + } +#Flux of Carbon Dioxide Net Ecosystem Exchange +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 195 ; + } +#Flux of Carbon Dioxide Gross Primary Production +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 197 ; + } +#Flux of Carbon Dioxide Ecosystem Respiration +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 196 ; + } #Total column rain water 'kg m**-2' = { discipline = 192 ; diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table b/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table new file mode 100644 index 000000000..ce920325e --- /dev/null +++ b/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table @@ -0,0 +1,10 @@ +# Code table 4.2 - discipline=2 category=0 for ECMWF +192 192 Carbon Dioxide Net Ecosystem Exchange +193 193 Carbon Dioxide Gross Primary Production +194 194 Carbon Dioxide Ecosystem Respiration +195 195 Flux of Carbon Dioxide Net Ecosystem Exchange +196 196 Flux of Carbon Dioxide Ecosystem Respiration +197 197 Flux of Carbon Dioxide Gross Primary Production +198 198 GPP coefficient from Biogenic Flux Adjustment System +199 199 Rec coefficient from Biogenic Flux Adjustment System +255 255 Missing diff --git a/version.sh b/version.sh index e785dbce2..c195766c2 100644 --- a/version.sh +++ b/version.sh @@ -15,7 +15,7 @@ PACKAGE_NAME='eccodes' # Package version ECCODES_MAJOR_VERSION=2 ECCODES_MINOR_VERSION=12 -ECCODES_REVISION_VERSION=0 +ECCODES_REVISION_VERSION=1 ECCODES_CURRENT=1 ECCODES_REVISION=0 From b70a31215bd0cbc9195f509f9c03bd50b1516e82 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Mon, 25 Feb 2019 13:17:30 +0000 Subject: [PATCH 7/8] ECC-890: CAMS parameters --- definitions/grib1/2.98.215.table | 4 +- .../grib1/localConcepts/ecmf/cfVarName.def | 4 +- definitions/grib1/localConcepts/ecmf/name.def | 8 +- .../grib1/localConcepts/ecmf/paramId.def | 4 +- .../grib1/localConcepts/ecmf/shortName.def | 4 +- .../grib1/localConcepts/ecmf/units.def | 4 +- definitions/grib2/cfVarName.def | 74 ++++++ .../grib2/localConcepts/ecmf/cfVarName.def | 192 ++++++++++++++ definitions/grib2/localConcepts/ecmf/name.def | 230 +++++++++++++++-- .../grib2/localConcepts/ecmf/paramId.def | 232 +++++++++++++++-- .../grib2/localConcepts/ecmf/shortName.def | 236 ++++++++++++++++-- .../grib2/localConcepts/ecmf/units.def | 232 +++++++++++++++-- definitions/grib2/name.def | 74 ++++++ definitions/grib2/paramId.def | 74 ++++++ definitions/grib2/shortName.def | 74 ++++++ .../grib2/tables/local/ecmf/1/4.2.0.20.table | 3 + .../grib2/tables/local/ecmf/1/4.233.table | 3 + definitions/grib2/units.def | 74 ++++++ 18 files changed, 1431 insertions(+), 95 deletions(-) create mode 100644 definitions/grib2/tables/local/ecmf/1/4.2.0.20.table create mode 100644 definitions/grib2/tables/local/ecmf/1/4.233.table diff --git a/definitions/grib1/2.98.215.table b/definitions/grib1/2.98.215.table index d75e6051a..96de89678 100644 --- a/definitions/grib1/2.98.215.table +++ b/definitions/grib1/2.98.215.table @@ -201,8 +201,8 @@ 200 200 AERNGTNIC Negative fixer of coarse-mode nitrate aerosol (kg m**-2 s**-1) 201 201 AERMSSNIF Vertically integrated mass of fine-mode nitrate aerosol (kg m**-2) 202 202 AERMSSNIC Vertically integrated mass of coarse-mode nitrate aerosol (kg m**-2) -203 203 AERODNIF Fine-mode nitrate aerosol optical depth at 550mn (dimensionless) -204 204 AERODNIC Coarse-mode nitrate aerosol optical depth at 550nm (dimensionless) +203 203 AERODNIF Fine-mode nitrate aerosol optical depth at 550 nm (dimensionless) +204 204 AERODNIC Coarse-mode nitrate aerosol optical depth at 550 nm (dimensionless) 205 205 AERSRCAM Source/gain of ammonium aerosol (kg m**-2 s**-1) 206 206 AERDDPAM Dry deposition of ammonium aerosol (kg m**-2 s**-1) 207 207 AERSDMAM Sedimentation of ammonium aerosol (kg m**-2 s**-1) diff --git a/definitions/grib1/localConcepts/ecmf/cfVarName.def b/definitions/grib1/localConcepts/ecmf/cfVarName.def index 28353a0f3..45c63f5e9 100644 --- a/definitions/grib1/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib1/localConcepts/ecmf/cfVarName.def @@ -7134,12 +7134,12 @@ table2Version = 215 ; indicatorOfParameter = 202 ; } -#Fine-mode nitrate aerosol optical depth at 550mn +#Fine-mode nitrate aerosol optical depth at 550 nm 'aerodnif' = { table2Version = 215 ; indicatorOfParameter = 203 ; } -#Coarse-mode nitrate aerosol optical depth at 550nm +#Coarse-mode nitrate aerosol optical depth at 550 nm 'aerodnic' = { table2Version = 215 ; indicatorOfParameter = 204 ; diff --git a/definitions/grib1/localConcepts/ecmf/name.def b/definitions/grib1/localConcepts/ecmf/name.def index 523b9307c..1ecbe273e 100644 --- a/definitions/grib1/localConcepts/ecmf/name.def +++ b/definitions/grib1/localConcepts/ecmf/name.def @@ -7134,13 +7134,13 @@ table2Version = 215 ; indicatorOfParameter = 202 ; } -#Fine-mode nitrate aerosol optical depth at 550mn -'Fine-mode nitrate aerosol optical depth at 550mn' = { +#Fine-mode nitrate aerosol optical depth at 550 nm +'Fine-mode nitrate aerosol optical depth at 550 nm' = { table2Version = 215 ; indicatorOfParameter = 203 ; } -#Coarse-mode nitrate aerosol optical depth at 550nm -'Coarse-mode nitrate aerosol optical depth at 550nm' = { +#Coarse-mode nitrate aerosol optical depth at 550 nm +'Coarse-mode nitrate aerosol optical depth at 550 nm' = { table2Version = 215 ; indicatorOfParameter = 204 ; } diff --git a/definitions/grib1/localConcepts/ecmf/paramId.def b/definitions/grib1/localConcepts/ecmf/paramId.def index f2d0cc05b..6eb71a2bc 100644 --- a/definitions/grib1/localConcepts/ecmf/paramId.def +++ b/definitions/grib1/localConcepts/ecmf/paramId.def @@ -7134,12 +7134,12 @@ table2Version = 215 ; indicatorOfParameter = 202 ; } -#Fine-mode nitrate aerosol optical depth at 550mn +#Fine-mode nitrate aerosol optical depth at 550 nm '215203' = { table2Version = 215 ; indicatorOfParameter = 203 ; } -#Coarse-mode nitrate aerosol optical depth at 550nm +#Coarse-mode nitrate aerosol optical depth at 550 nm '215204' = { table2Version = 215 ; indicatorOfParameter = 204 ; diff --git a/definitions/grib1/localConcepts/ecmf/shortName.def b/definitions/grib1/localConcepts/ecmf/shortName.def index 95902571e..9871d5d43 100644 --- a/definitions/grib1/localConcepts/ecmf/shortName.def +++ b/definitions/grib1/localConcepts/ecmf/shortName.def @@ -7134,12 +7134,12 @@ table2Version = 215 ; indicatorOfParameter = 202 ; } -#Fine-mode nitrate aerosol optical depth at 550mn +#Fine-mode nitrate aerosol optical depth at 550 nm 'aerodnif' = { table2Version = 215 ; indicatorOfParameter = 203 ; } -#Coarse-mode nitrate aerosol optical depth at 550nm +#Coarse-mode nitrate aerosol optical depth at 550 nm 'aerodnic' = { table2Version = 215 ; indicatorOfParameter = 204 ; diff --git a/definitions/grib1/localConcepts/ecmf/units.def b/definitions/grib1/localConcepts/ecmf/units.def index f5c5a1970..a1bfae7de 100644 --- a/definitions/grib1/localConcepts/ecmf/units.def +++ b/definitions/grib1/localConcepts/ecmf/units.def @@ -7134,12 +7134,12 @@ table2Version = 215 ; indicatorOfParameter = 202 ; } -#Fine-mode nitrate aerosol optical depth at 550mn +#Fine-mode nitrate aerosol optical depth at 550 nm 'dimensionless' = { table2Version = 215 ; indicatorOfParameter = 203 ; } -#Coarse-mode nitrate aerosol optical depth at 550nm +#Coarse-mode nitrate aerosol optical depth at 550 nm 'dimensionless' = { table2Version = 215 ; indicatorOfParameter = 204 ; diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index c683a790b..0b8ce5d07 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -305,6 +305,80 @@ scaledValueOfSecondFixedSurface = 300 ; scaleFactorOfSecondFixedSurface = 0 ; } +#Ammonium aerosol mass mixing ratio +'aermr18' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Nitrate aerosol optical depth at 550 nm +'niaod550' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 62004 ; + } +#Ammonium aerosol optical depth at 550 nm +'amaod550' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 62003 ; + is_aerosol_optical = 1 ; + } +#Dry deposition of ammonium aerosol +'aerddpam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Sedimentation of ammonium aerosol +'aersdmam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by large-scale precipitation +'aerwdlam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by convective precipitation +'aerwdcam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Vertically integrated mass of ammonium aerosol +'aermssam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + is_aerosol = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + aerosolType = 62003 ; + } #10 metre wind gust in the last 3 hours 'fg310' = { discipline = 0 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.def b/definitions/grib2/localConcepts/ecmf/cfVarName.def index ac04aee31..8da2c9b0d 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.def @@ -3281,6 +3281,24 @@ parameterCategory = 210 ; parameterNumber = 246 ; } +#Nitrate fine mode aerosol mass mixing ratio +'aermr16' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Nitrate coarse mode aerosol mass mixing ratio +'aermr17' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } #Aerosol type 13 mass mixing ratio 'aermr13diff' = { discipline = 192 ; @@ -6659,6 +6677,180 @@ parameterCategory = 215 ; parameterNumber = 188 ; } +#Source/gain of fine-mode nitrate aerosol +'aersrcnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Source/gain of coarse-mode nitrate aerosol +'aersrcnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Dry deposition of fine-mode nitrate aerosol +'aerddpnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Dry deposition of coarse-mode nitrate aerosol +'aerddpnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Sedimentation of fine-mode nitrate aerosol +'aersdmnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Sedimentation of coarse-mode nitrate aerosol +'aersdmnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Wet deposition of fine-mode nitrate aerosol by large-scale precipitation +'aerwdlnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Wet deposition of coarse-mode nitrate aerosol by large-scale precipitation +'aerwdlnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Wet deposition of fine-mode nitrate aerosol by convective precipitation +'aerwdcnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Wet deposition of coarse-mode nitrate aerosol by convective precipitation +'aerwdcnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Negative fixer of fine-mode nitrate aerosol +'aerngtnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Negative fixer of coarse-mode nitrate aerosol +'aerngtnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of fine-mode nitrate aerosol +'aermssnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Vertically integrated mass of coarse-mode nitrate aerosol +'aermssnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Fine-mode nitrate aerosol optical depth at 550 nm +'aerodnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 65534 ; + } +#Coarse-mode nitrate aerosol optical depth at 550 nm +'aerodnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfSizeInterval = 255 ; + aerosolType = 65533 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + } +#Source/gain of ammonium aerosol +'aersrcam' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Negative fixer of ammonium aerosol +'aerngtam' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } #Experimental product 'p1.216' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/name.def b/definitions/grib2/localConcepts/ecmf/name.def index 0e8ad9f53..dd4218777 100644 --- a/definitions/grib2/localConcepts/ecmf/name.def +++ b/definitions/grib2/localConcepts/ecmf/name.def @@ -316,24 +316,24 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + lengthOfTimeRange = 24 ; scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; + indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 103 ; typeOfStatisticalProcessing = 2 ; - indicatorOfUnitForTimeRange = 1 ; - lengthOfTimeRange = 24 ; } #Minimum temperature at 2 metres in the last 24 hours 'Minimum temperature at 2 metres in the last 24 hours' = { discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + typeOfStatisticalProcessing = 3 ; + indicatorOfUnitForTimeRange = 1 ; lengthOfTimeRange = 24 ; scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; typeOfFirstFixedSurface = 103 ; - typeOfStatisticalProcessing = 3 ; - indicatorOfUnitForTimeRange = 1 ; } #Montgomery potential 'Montgomery potential' = { @@ -1129,8 +1129,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 52 ; - typeOfStatisticalProcessing = 1 ; typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; unitsFactor = 1000 ; } #Instantaneous eastward turbulent surface stress @@ -3281,6 +3281,24 @@ parameterCategory = 210 ; parameterNumber = 246 ; } +#Nitrate fine mode aerosol mass mixing ratio +'Nitrate fine mode aerosol mass mixing ratio' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Nitrate coarse mode aerosol mass mixing ratio +'Nitrate coarse mode aerosol mass mixing ratio' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } #Aerosol type 13 mass mixing ratio 'Aerosol type 13 mass mixing ratio' = { discipline = 192 ; @@ -6659,6 +6677,180 @@ parameterCategory = 215 ; parameterNumber = 188 ; } +#Source/gain of fine-mode nitrate aerosol +'Source/gain of fine-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Source/gain of coarse-mode nitrate aerosol +'Source/gain of coarse-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Dry deposition of fine-mode nitrate aerosol +'Dry deposition of fine-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Dry deposition of coarse-mode nitrate aerosol +'Dry deposition of coarse-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Sedimentation of fine-mode nitrate aerosol +'Sedimentation of fine-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Sedimentation of coarse-mode nitrate aerosol +'Sedimentation of coarse-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Wet deposition of fine-mode nitrate aerosol by large-scale precipitation +'Wet deposition of fine-mode nitrate aerosol by large-scale precipitation' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Wet deposition of coarse-mode nitrate aerosol by large-scale precipitation +'Wet deposition of coarse-mode nitrate aerosol by large-scale precipitation' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Wet deposition of fine-mode nitrate aerosol by convective precipitation +'Wet deposition of fine-mode nitrate aerosol by convective precipitation' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Wet deposition of coarse-mode nitrate aerosol by convective precipitation +'Wet deposition of coarse-mode nitrate aerosol by convective precipitation' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Negative fixer of fine-mode nitrate aerosol +'Negative fixer of fine-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Negative fixer of coarse-mode nitrate aerosol +'Negative fixer of coarse-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Vertically integrated mass of fine-mode nitrate aerosol +'Vertically integrated mass of fine-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + is_aerosol = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + aerosolType = 65534 ; + } +#Vertically integrated mass of coarse-mode nitrate aerosol +'Vertically integrated mass of coarse-mode nitrate aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + } +#Fine-mode nitrate aerosol optical depth at 550 nm +'Fine-mode nitrate aerosol optical depth at 550 nm' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + typeOfSizeInterval = 255 ; + scaledValueOfFirstWavelength = 55 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 65534 ; + } +#Coarse-mode nitrate aerosol optical depth at 550 nm +'Coarse-mode nitrate aerosol optical depth at 550 nm' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 65533 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + typeOfSizeInterval = 255 ; + scaledValueOfFirstWavelength = 55 ; + } +#Source/gain of ammonium aerosol +'Source/gain of ammonium aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Negative fixer of ammonium aerosol +'Negative fixer of ammonium aerosol' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } #Experimental product 'Experimental product' = { discipline = 192 ; @@ -13168,11 +13360,11 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; - lengthOfTimeRange = 3 ; - scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; typeOfStatisticalProcessing = 2 ; typeOfFirstFixedSurface = 103 ; + lengthOfTimeRange = 3 ; + scaledValueOfFirstFixedSurface = 2 ; indicatorOfUnitForTimeRange = 1 ; } #Minimum temperature at 2 metres in the last 3 hours @@ -13180,9 +13372,9 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + indicatorOfUnitForTimeRange = 1 ; typeOfStatisticalProcessing = 3 ; typeOfFirstFixedSurface = 103 ; - indicatorOfUnitForTimeRange = 1 ; lengthOfTimeRange = 3 ; scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; @@ -15241,14 +15433,14 @@ discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; - scaledValueOfLowerLimit = 25 ; - productDefinitionTemplateNumber = 9 ; - typeOfFirstFixedSurface = 103 ; - scaleFactorOfLowerLimit = 0 ; - probabilityType = 3 ; typeOfStatisticalProcessing = 2 ; scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfLowerLimit = 25 ; + productDefinitionTemplateNumber = 9 ; + scaleFactorOfLowerLimit = 0 ; + typeOfFirstFixedSurface = 103 ; + probabilityType = 3 ; } #2 metre temperature less than 273.15 K '2 metre temperature less than 273.15 K' = { @@ -15261,44 +15453,44 @@ discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; - typeOfFirstFixedSurface = 101 ; - probabilityType = 3 ; scaleFactorOfLowerLimit = 0 ; productDefinitionTemplateNumber = 5 ; scaledValueOfLowerLimit = 2 ; + typeOfFirstFixedSurface = 101 ; + probabilityType = 3 ; } #Significant wave height of at least 4 m 'Significant wave height of at least 4 m' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + probabilityType = 3 ; typeOfFirstFixedSurface = 101 ; productDefinitionTemplateNumber = 5 ; scaleFactorOfLowerLimit = 0 ; scaledValueOfLowerLimit = 4 ; - probabilityType = 3 ; } #Significant wave height of at least 6 m 'Significant wave height of at least 6 m' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + scaleFactorOfLowerLimit = 0 ; + scaledValueOfLowerLimit = 6 ; productDefinitionTemplateNumber = 5 ; typeOfFirstFixedSurface = 101 ; probabilityType = 3 ; - scaleFactorOfLowerLimit = 0 ; - scaledValueOfLowerLimit = 6 ; } #Significant wave height of at least 8 m 'Significant wave height of at least 8 m' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + scaledValueOfLowerLimit = 8 ; typeOfFirstFixedSurface = 101 ; productDefinitionTemplateNumber = 5 ; scaleFactorOfLowerLimit = 0 ; probabilityType = 3 ; - scaledValueOfLowerLimit = 8 ; } #Mean wave period of at least 8 s 'Mean wave period of at least 8 s' = { diff --git a/definitions/grib2/localConcepts/ecmf/paramId.def b/definitions/grib2/localConcepts/ecmf/paramId.def index 73615c8cd..80eca0d7a 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.def @@ -34,12 +34,12 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 52 ; - productDefinitionTemplateNumber = 9 ; typeOfStatisticalProcessing = 1 ; scaledValueOfLowerLimit = 100 ; probabilityType = 3 ; scaleFactorOfLowerLimit = 0 ; typeOfFirstFixedSurface = 1 ; + productDefinitionTemplateNumber = 9 ; } #Total precipitation of at least 100 mm '131085' = { @@ -316,12 +316,12 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; - scaleFactorOfFirstFixedSurface = 0 ; - typeOfStatisticalProcessing = 2 ; scaledValueOfFirstFixedSurface = 2 ; typeOfFirstFixedSurface = 103 ; - indicatorOfUnitForTimeRange = 1 ; lengthOfTimeRange = 24 ; + indicatorOfUnitForTimeRange = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; } #Minimum temperature at 2 metres in the last 24 hours '52' = { @@ -3281,6 +3281,24 @@ parameterCategory = 210 ; parameterNumber = 246 ; } +#Nitrate fine mode aerosol mass mixing ratio +'210247' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Nitrate coarse mode aerosol mass mixing ratio +'210248' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } #Aerosol type 13 mass mixing ratio '211013' = { discipline = 192 ; @@ -6659,6 +6677,180 @@ parameterCategory = 215 ; parameterNumber = 188 ; } +#Source/gain of fine-mode nitrate aerosol +'215189' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Source/gain of coarse-mode nitrate aerosol +'215190' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Dry deposition of fine-mode nitrate aerosol +'215191' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Dry deposition of coarse-mode nitrate aerosol +'215192' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Sedimentation of fine-mode nitrate aerosol +'215193' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Sedimentation of coarse-mode nitrate aerosol +'215194' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Wet deposition of fine-mode nitrate aerosol by large-scale precipitation +'215195' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Wet deposition of coarse-mode nitrate aerosol by large-scale precipitation +'215196' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Wet deposition of fine-mode nitrate aerosol by convective precipitation +'215197' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Wet deposition of coarse-mode nitrate aerosol by convective precipitation +'215198' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Negative fixer of fine-mode nitrate aerosol +'215199' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Negative fixer of coarse-mode nitrate aerosol +'215200' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of fine-mode nitrate aerosol +'215201' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of coarse-mode nitrate aerosol +'215202' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Fine-mode nitrate aerosol optical depth at 550 nm +'215203' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfSizeInterval = 255 ; + aerosolType = 65534 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + } +#Coarse-mode nitrate aerosol optical depth at 550 nm +'215204' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + aerosolType = 65533 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + } +#Source/gain of ammonium aerosol +'215205' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Negative fixer of ammonium aerosol +'215210' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } #Experimental product '216001' = { discipline = 192 ; @@ -13168,24 +13360,24 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; - typeOfFirstFixedSurface = 103 ; - scaleFactorOfFirstFixedSurface = 0 ; - indicatorOfUnitForTimeRange = 1 ; scaledValueOfFirstFixedSurface = 2 ; typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + indicatorOfUnitForTimeRange = 1 ; } #Minimum temperature at 2 metres in the last 3 hours '228027' = { discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; - typeOfFirstFixedSurface = 103 ; - scaleFactorOfFirstFixedSurface = 0 ; - indicatorOfUnitForTimeRange = 1 ; scaledValueOfFirstFixedSurface = 2 ; typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 3 ; + typeOfFirstFixedSurface = 103 ; + indicatorOfUnitForTimeRange = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; } #10 metre wind gust in the last 3 hours '228028' = { @@ -13265,8 +13457,8 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 2 ; - typeOfSecondFixedSurface = 8 ; typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Instantaneous cloud-to-ground lightning flash density '228052' = { @@ -13279,11 +13471,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 2 ; + indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; lengthOfTimeRange = 1 ; - indicatorOfUnitForTimeRange = 1 ; } #Averaged cloud-to-ground lightning flash density in the last hour '228053' = { @@ -13296,11 +13488,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 4 ; - indicatorOfUnitForTimeRange = 1 ; - typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; typeOfSecondFixedSurface = 8 ; lengthOfTimeRange = 3 ; + indicatorOfUnitForTimeRange = 1 ; + typeOfFirstFixedSurface = 1 ; } #Averaged total lightning flash density in the last 3 hours '228057' = { @@ -13313,11 +13505,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; lengthOfTimeRange = 6 ; typeOfFirstFixedSurface = 1 ; indicatorOfUnitForTimeRange = 1 ; typeOfSecondFixedSurface = 8 ; - typeOfStatisticalProcessing = 0 ; } #Averaged total lightning flash density in the last 6 hours '228058' = { @@ -13347,11 +13539,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 2 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; lengthOfTimeRange = 6 ; indicatorOfUnitForTimeRange = 1 ; - typeOfFirstFixedSurface = 1 ; - typeOfSecondFixedSurface = 8 ; } #Averaged cloud-to-ground lightning flash density in the last 6 hours '228060' = { @@ -15241,14 +15433,14 @@ discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; + probabilityType = 3 ; + scaleFactorOfLowerLimit = 0 ; typeOfFirstFixedSurface = 103 ; scaleFactorOfFirstFixedSurface = 0 ; scaledValueOfFirstFixedSurface = 10 ; productDefinitionTemplateNumber = 9 ; typeOfStatisticalProcessing = 2 ; scaledValueOfLowerLimit = 25 ; - scaleFactorOfLowerLimit = 0 ; - probabilityType = 3 ; } #2 metre temperature less than 273.15 K '131073' = { @@ -15283,11 +15475,11 @@ discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + scaledValueOfLowerLimit = 6 ; productDefinitionTemplateNumber = 5 ; typeOfFirstFixedSurface = 101 ; scaleFactorOfLowerLimit = 0 ; probabilityType = 3 ; - scaledValueOfLowerLimit = 6 ; } #Significant wave height of at least 8 m '131077' = { diff --git a/definitions/grib2/localConcepts/ecmf/shortName.def b/definitions/grib2/localConcepts/ecmf/shortName.def index 6817dff9f..5e5826475 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.def @@ -34,12 +34,12 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 52 ; - scaleFactorOfLowerLimit = 0 ; - typeOfFirstFixedSurface = 1 ; productDefinitionTemplateNumber = 9 ; typeOfStatisticalProcessing = 1 ; scaledValueOfLowerLimit = 100 ; probabilityType = 3 ; + scaleFactorOfLowerLimit = 0 ; + typeOfFirstFixedSurface = 1 ; } #Total precipitation of at least 100 mm 'tpg100' = { @@ -317,23 +317,23 @@ parameterCategory = 0 ; parameterNumber = 0 ; scaledValueOfFirstFixedSurface = 2 ; + indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 103 ; lengthOfTimeRange = 24 ; scaleFactorOfFirstFixedSurface = 0 ; typeOfStatisticalProcessing = 2 ; - indicatorOfUnitForTimeRange = 1 ; } #Minimum temperature at 2 metres in the last 24 hours 'mn2t24' = { discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; lengthOfTimeRange = 24 ; scaleFactorOfFirstFixedSurface = 0 ; typeOfStatisticalProcessing = 3 ; indicatorOfUnitForTimeRange = 1 ; scaledValueOfFirstFixedSurface = 2 ; - typeOfFirstFixedSurface = 103 ; } #Montgomery potential 'mont' = { @@ -3281,6 +3281,24 @@ parameterCategory = 210 ; parameterNumber = 246 ; } +#Nitrate fine mode aerosol mass mixing ratio +'aermr16' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Nitrate coarse mode aerosol mass mixing ratio +'aermr17' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } #Aerosol type 13 mass mixing ratio 'aermr13diff' = { discipline = 192 ; @@ -6659,6 +6677,180 @@ parameterCategory = 215 ; parameterNumber = 188 ; } +#Source/gain of fine-mode nitrate aerosol +'aersrcnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Source/gain of coarse-mode nitrate aerosol +'aersrcnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Dry deposition of fine-mode nitrate aerosol +'aerddpnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Dry deposition of coarse-mode nitrate aerosol +'aerddpnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Sedimentation of fine-mode nitrate aerosol +'aersdmnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Sedimentation of coarse-mode nitrate aerosol +'aersdmnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Wet deposition of fine-mode nitrate aerosol by large-scale precipitation +'aerwdlnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Wet deposition of coarse-mode nitrate aerosol by large-scale precipitation +'aerwdlnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Wet deposition of fine-mode nitrate aerosol by convective precipitation +'aerwdcnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Wet deposition of coarse-mode nitrate aerosol by convective precipitation +'aerwdcnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Negative fixer of fine-mode nitrate aerosol +'aerngtnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Negative fixer of coarse-mode nitrate aerosol +'aerngtnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of fine-mode nitrate aerosol +'aermssnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Vertically integrated mass of coarse-mode nitrate aerosol +'aermssnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Fine-mode nitrate aerosol optical depth at 550 nm +'aerodnif' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 65534 ; + } +#Coarse-mode nitrate aerosol optical depth at 550 nm +'aerodnic' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfSizeInterval = 255 ; + aerosolType = 65533 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + } +#Source/gain of ammonium aerosol +'aersrcam' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Negative fixer of ammonium aerosol +'aerngtam' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } #Experimental product '~' = { discipline = 192 ; @@ -13170,9 +13362,9 @@ parameterNumber = 0 ; typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; - indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 103 ; scaleFactorOfFirstFixedSurface = 0 ; + indicatorOfUnitForTimeRange = 1 ; scaledValueOfFirstFixedSurface = 2 ; } #Minimum temperature at 2 metres in the last 3 hours @@ -13180,12 +13372,12 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; - indicatorOfUnitForTimeRange = 1 ; - typeOfFirstFixedSurface = 103 ; scaleFactorOfFirstFixedSurface = 0 ; + indicatorOfUnitForTimeRange = 1 ; scaledValueOfFirstFixedSurface = 2 ; typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 3 ; + typeOfFirstFixedSurface = 103 ; } #10 metre wind gust in the last 3 hours '10fg3' = { @@ -13248,11 +13440,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 4 ; + typeOfStatisticalProcessing = 0 ; + lengthOfTimeRange = 1 ; indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; - typeOfStatisticalProcessing = 0 ; - lengthOfTimeRange = 1 ; } #Averaged total lightning flash density in the last hour 'litota1' = { @@ -13279,11 +13471,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 2 ; + lengthOfTimeRange = 1 ; + typeOfSecondFixedSurface = 8 ; indicatorOfUnitForTimeRange = 1 ; typeOfStatisticalProcessing = 0 ; typeOfFirstFixedSurface = 1 ; - lengthOfTimeRange = 1 ; - typeOfSecondFixedSurface = 8 ; } #Averaged cloud-to-ground lightning flash density in the last hour 'licga1' = { @@ -13296,11 +13488,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 4 ; - typeOfFirstFixedSurface = 1 ; - typeOfSecondFixedSurface = 8 ; - typeOfStatisticalProcessing = 0 ; - lengthOfTimeRange = 3 ; indicatorOfUnitForTimeRange = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + typeOfSecondFixedSurface = 8 ; + lengthOfTimeRange = 3 ; } #Averaged total lightning flash density in the last 3 hours 'litota3' = { @@ -13330,11 +13522,11 @@ discipline = 0 ; parameterCategory = 17 ; parameterNumber = 2 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 0 ; lengthOfTimeRange = 3 ; indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 1 ; - typeOfSecondFixedSurface = 8 ; } #Averaged cloud-to-ground lightning flash density in the last 3 hours 'licga3' = { @@ -15241,14 +15433,14 @@ discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; - scaledValueOfFirstFixedSurface = 10 ; - productDefinitionTemplateNumber = 9 ; - scaleFactorOfLowerLimit = 0 ; typeOfStatisticalProcessing = 2 ; scaledValueOfLowerLimit = 25 ; typeOfFirstFixedSurface = 103 ; probabilityType = 3 ; scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 10 ; + productDefinitionTemplateNumber = 9 ; + scaleFactorOfLowerLimit = 0 ; } #2 metre temperature less than 273.15 K '2tl273' = { @@ -15261,22 +15453,22 @@ discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; - scaledValueOfLowerLimit = 2 ; scaleFactorOfLowerLimit = 0 ; typeOfFirstFixedSurface = 101 ; productDefinitionTemplateNumber = 5 ; probabilityType = 3 ; + scaledValueOfLowerLimit = 2 ; } #Significant wave height of at least 4 m 'swhg4' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; - typeOfFirstFixedSurface = 101 ; - productDefinitionTemplateNumber = 5 ; scaleFactorOfLowerLimit = 0 ; probabilityType = 3 ; scaledValueOfLowerLimit = 4 ; + productDefinitionTemplateNumber = 5 ; + typeOfFirstFixedSurface = 101 ; } #Significant wave height of at least 6 m 'swhg6' = { diff --git a/definitions/grib2/localConcepts/ecmf/units.def b/definitions/grib2/localConcepts/ecmf/units.def index 384725899..f4181205b 100644 --- a/definitions/grib2/localConcepts/ecmf/units.def +++ b/definitions/grib2/localConcepts/ecmf/units.def @@ -316,24 +316,24 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + lengthOfTimeRange = 24 ; scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; + indicatorOfUnitForTimeRange = 1 ; typeOfFirstFixedSurface = 103 ; typeOfStatisticalProcessing = 2 ; - indicatorOfUnitForTimeRange = 1 ; - lengthOfTimeRange = 24 ; } #Minimum temperature at 2 metres in the last 24 hours 'K' = { discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + typeOfStatisticalProcessing = 3 ; + indicatorOfUnitForTimeRange = 1 ; lengthOfTimeRange = 24 ; scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; typeOfFirstFixedSurface = 103 ; - typeOfStatisticalProcessing = 3 ; - indicatorOfUnitForTimeRange = 1 ; } #Montgomery potential 'm**2 s**-2' = { @@ -1129,8 +1129,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 52 ; - typeOfStatisticalProcessing = 1 ; typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; unitsFactor = 1000 ; } #Instantaneous eastward turbulent surface stress @@ -3281,6 +3281,24 @@ parameterCategory = 210 ; parameterNumber = 246 ; } +#Nitrate fine mode aerosol mass mixing ratio +'kg kg**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Nitrate coarse mode aerosol mass mixing ratio +'kg kg**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } #Aerosol type 13 mass mixing ratio 'kg kg**-1' = { discipline = 192 ; @@ -6659,6 +6677,180 @@ parameterCategory = 215 ; parameterNumber = 188 ; } +#Source/gain of fine-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Source/gain of coarse-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Dry deposition of fine-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Dry deposition of coarse-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + } +#Sedimentation of fine-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Sedimentation of coarse-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Wet deposition of fine-mode nitrate aerosol by large-scale precipitation +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Wet deposition of coarse-mode nitrate aerosol by large-scale precipitation +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Wet deposition of fine-mode nitrate aerosol by convective precipitation +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + is_aerosol = 1 ; + aerosolType = 65534 ; + } +#Wet deposition of coarse-mode nitrate aerosol by convective precipitation +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Negative fixer of fine-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + aerosolType = 65534 ; + is_aerosol = 1 ; + } +#Negative fixer of coarse-mode nitrate aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + is_aerosol = 1 ; + aerosolType = 65533 ; + } +#Vertically integrated mass of fine-mode nitrate aerosol +'kg m**-2' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + is_aerosol = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + aerosolType = 65534 ; + } +#Vertically integrated mass of coarse-mode nitrate aerosol +'kg m**-2' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + aerosolType = 65533 ; + is_aerosol = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + } +#Fine-mode nitrate aerosol optical depth at 550 nm +'dimensionless' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + typeOfSizeInterval = 255 ; + scaledValueOfFirstWavelength = 55 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 65534 ; + } +#Coarse-mode nitrate aerosol optical depth at 550 nm +'dimensionless' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 65533 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + typeOfSizeInterval = 255 ; + scaledValueOfFirstWavelength = 55 ; + } +#Source/gain of ammonium aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 192 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Negative fixer of ammonium aerosol +'kg m**-2 s**-1' = { + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 193 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } #Experimental product '~' = { discipline = 192 ; @@ -13168,21 +13360,21 @@ discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; - lengthOfTimeRange = 3 ; - scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; - indicatorOfUnitForTimeRange = 1 ; typeOfStatisticalProcessing = 2 ; typeOfFirstFixedSurface = 103 ; + lengthOfTimeRange = 3 ; + scaledValueOfFirstFixedSurface = 2 ; + indicatorOfUnitForTimeRange = 1 ; } #Minimum temperature at 2 metres in the last 3 hours 'K' = { discipline = 0 ; parameterCategory = 0 ; parameterNumber = 0 ; + indicatorOfUnitForTimeRange = 1 ; typeOfStatisticalProcessing = 3 ; typeOfFirstFixedSurface = 103 ; - indicatorOfUnitForTimeRange = 1 ; lengthOfTimeRange = 3 ; scaledValueOfFirstFixedSurface = 2 ; scaleFactorOfFirstFixedSurface = 0 ; @@ -15241,14 +15433,14 @@ discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; - scaledValueOfLowerLimit = 25 ; - productDefinitionTemplateNumber = 9 ; - typeOfFirstFixedSurface = 103 ; - scaleFactorOfLowerLimit = 0 ; - probabilityType = 3 ; typeOfStatisticalProcessing = 2 ; scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfLowerLimit = 25 ; + productDefinitionTemplateNumber = 9 ; + scaleFactorOfLowerLimit = 0 ; + typeOfFirstFixedSurface = 103 ; + probabilityType = 3 ; } #2 metre temperature less than 273.15 K '%' = { @@ -15261,44 +15453,44 @@ discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; - typeOfFirstFixedSurface = 101 ; - probabilityType = 3 ; scaleFactorOfLowerLimit = 0 ; productDefinitionTemplateNumber = 5 ; scaledValueOfLowerLimit = 2 ; + typeOfFirstFixedSurface = 101 ; + probabilityType = 3 ; } #Significant wave height of at least 4 m '%' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + probabilityType = 3 ; typeOfFirstFixedSurface = 101 ; productDefinitionTemplateNumber = 5 ; scaleFactorOfLowerLimit = 0 ; scaledValueOfLowerLimit = 4 ; - probabilityType = 3 ; } #Significant wave height of at least 6 m '%' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + scaleFactorOfLowerLimit = 0 ; + scaledValueOfLowerLimit = 6 ; productDefinitionTemplateNumber = 5 ; typeOfFirstFixedSurface = 101 ; probabilityType = 3 ; - scaleFactorOfLowerLimit = 0 ; - scaledValueOfLowerLimit = 6 ; } #Significant wave height of at least 8 m '%' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 3 ; + scaledValueOfLowerLimit = 8 ; typeOfFirstFixedSurface = 101 ; productDefinitionTemplateNumber = 5 ; scaleFactorOfLowerLimit = 0 ; probabilityType = 3 ; - scaledValueOfLowerLimit = 8 ; } #Mean wave period of at least 8 s '%' = { diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 9f0c361b9..b4f8cfb91 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -305,6 +305,80 @@ scaledValueOfSecondFixedSurface = 300 ; scaleFactorOfSecondFixedSurface = 0 ; } +#Ammonium aerosol mass mixing ratio +'Ammonium aerosol mass mixing ratio' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Nitrate aerosol optical depth at 550 nm +'Nitrate aerosol optical depth at 550 nm' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 62004 ; + typeOfSizeInterval = 255 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + scaledValueOfFirstWavelength = 55 ; + } +#Ammonium aerosol optical depth at 550 nm +'Ammonium aerosol optical depth at 550 nm' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + scaledValueOfFirstWavelength = 55 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 62003 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + typeOfSizeInterval = 255 ; + } +#Dry deposition of ammonium aerosol +'Dry deposition of ammonium aerosol' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Sedimentation of ammonium aerosol +'Sedimentation of ammonium aerosol' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by large-scale precipitation +'Wet deposition of ammonium aerosol by large-scale precipitation' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Wet deposition of ammonium aerosol by convective precipitation +'Wet deposition of ammonium aerosol by convective precipitation' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of ammonium aerosol +'Vertically integrated mass of ammonium aerosol' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #10 metre wind gust in the last 3 hours '10 metre wind gust in the last 3 hours' = { discipline = 0 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index 5fdf89fa2..17221481e 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -305,6 +305,80 @@ scaledValueOfSecondFixedSurface = 300 ; scaleFactorOfSecondFixedSurface = 0 ; } +#Ammonium aerosol mass mixing ratio +'210249' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Nitrate aerosol optical depth at 550 nm +'210250' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfSizeInterval = 255 ; + aerosolType = 62004 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + } +#Ammonium aerosol optical depth at 550 nm +'210251' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 62003 ; + is_aerosol_optical = 1 ; + } +#Dry deposition of ammonium aerosol +'215206' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Sedimentation of ammonium aerosol +'215207' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by large-scale precipitation +'215208' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by convective precipitation +'215209' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of ammonium aerosol +'215211' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } #10 metre wind gust in the last 3 hours '228028' = { discipline = 0 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index 9d8fdc1cf..a12f3e5a3 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -305,6 +305,80 @@ scaledValueOfSecondFixedSurface = 300 ; scaleFactorOfSecondFixedSurface = 0 ; } +#Ammonium aerosol mass mixing ratio +'aermr18' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Nitrate aerosol optical depth at 550 nm +'niaod550' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + is_aerosol_optical = 1 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 62004 ; + } +#Ammonium aerosol optical depth at 550 nm +'amaod550' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + scaleFactorOfFirstWavelength = 8 ; + scaledValueOfFirstWavelength = 55 ; + typeOfSizeInterval = 255 ; + aerosolType = 62003 ; + is_aerosol_optical = 1 ; + } +#Dry deposition of ammonium aerosol +'aerddpam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Sedimentation of ammonium aerosol +'aersdmam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by large-scale precipitation +'aerwdlam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by convective precipitation +'aerwdcam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Vertically integrated mass of ammonium aerosol +'aermssam' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + is_aerosol = 1 ; + typeOfSecondFixedSurface = 8 ; + typeOfFirstFixedSurface = 1 ; + aerosolType = 62003 ; + } #10 metre wind gust in the last 3 hours '10fg3' = { discipline = 0 ; diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.0.20.table b/definitions/grib2/tables/local/ecmf/1/4.2.0.20.table new file mode 100644 index 000000000..30b94d7a7 --- /dev/null +++ b/definitions/grib2/tables/local/ecmf/1/4.2.0.20.table @@ -0,0 +1,3 @@ +# Code table 4.2 - discipline=0 category=20 for ECMWF +192 192 Source/gain (kg m-2 s-1) +193 193 Negative Fixer (kg m-2 s-1) diff --git a/definitions/grib2/tables/local/ecmf/1/4.233.table b/definitions/grib2/tables/local/ecmf/1/4.233.table new file mode 100644 index 000000000..9deeecdfa --- /dev/null +++ b/definitions/grib2/tables/local/ecmf/1/4.233.table @@ -0,0 +1,3 @@ +# Code table 4.233 - Aerosol type for ECMWF +65533 65533 Nitrate Coarse Mode +65534 65534 Nitrate Fine Mode diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 0c8e4fc7c..7e033df6a 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -305,6 +305,80 @@ scaledValueOfSecondFixedSurface = 300 ; scaleFactorOfSecondFixedSurface = 0 ; } +#Ammonium aerosol mass mixing ratio +'kg kg**-1' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Nitrate aerosol optical depth at 550 nm +'dimensionless' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 62004 ; + typeOfSizeInterval = 255 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + scaledValueOfFirstWavelength = 55 ; + } +#Ammonium aerosol optical depth at 550 nm +'dimensionless' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 102 ; + scaledValueOfFirstWavelength = 55 ; + typeOfWavelengthInterval = 11 ; + aerosolType = 62003 ; + scaleFactorOfFirstWavelength = 8 ; + is_aerosol_optical = 1 ; + typeOfSizeInterval = 255 ; + } +#Dry deposition of ammonium aerosol +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 6 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Sedimentation of ammonium aerosol +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 11 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Wet deposition of ammonium aerosol by large-scale precipitation +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 9 ; + is_aerosol = 1 ; + aerosolType = 62003 ; + } +#Wet deposition of ammonium aerosol by convective precipitation +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 10 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + } +#Vertically integrated mass of ammonium aerosol +'kg m**-2' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 1 ; + aerosolType = 62003 ; + is_aerosol = 1 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #10 metre wind gust in the last 3 hours 'm s**-1' = { discipline = 0 ; From 3492d922eaa1ac0f07931f85c3ca3cccc0593ef1 Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Tue, 26 Feb 2019 13:34:54 +0000 Subject: [PATCH 8/8] ECC-902: UERRA: wind speed fields match different paramIds --- definitions/grib2/cfVarName.def | 32 ++++++++++++++++++++++++++------ definitions/grib2/name.def | 32 ++++++++++++++++++++++++++------ definitions/grib2/paramId.def | 32 ++++++++++++++++++++++++++------ definitions/grib2/shortName.def | 32 ++++++++++++++++++++++++++------ definitions/grib2/units.def | 32 ++++++++++++++++++++++++++------ 5 files changed, 130 insertions(+), 30 deletions(-) diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index 0b8ce5d07..470be6fab 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -11,6 +11,32 @@ typeOfFirstFixedSurface = 1 ; productDefinitionTemplateNumber = 9 ; } +#Wind speed +'ws' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + } +#Wind speed +'ws' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + is_uerra = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + } +#Wind speed +'ws' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaledValueOfFirstFixedSurface = 200 ; + is_uerra = 1 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Unbalanced component of temperature 'uctp' = { discipline = 0 ; @@ -1299,12 +1325,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Wind speed -'ws' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 1 ; - } #Pressure 'pres' = { discipline = 0 ; diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index b4f8cfb91..fdae428a9 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -11,6 +11,32 @@ probabilityType = 3 ; typeOfStatisticalProcessing = 1 ; } +#Wind speed +'Wind speed' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + } +#Wind speed +'Wind speed' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + is_uerra = 1 ; + } +#Wind speed +'Wind speed' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + is_uerra = 1 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 200 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Unbalanced component of temperature 'Unbalanced component of temperature' = { discipline = 0 ; @@ -1299,12 +1325,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Wind speed -'Wind speed' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 1 ; - } #Pressure 'Pressure' = { discipline = 0 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index 17221481e..30e686c74 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -11,6 +11,32 @@ scaleFactorOfLowerLimit = 0 ; typeOfFirstFixedSurface = 1 ; } +#Wind speed +'10' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + } +#Wind speed +'10' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + is_uerra = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + } +#Wind speed +'10' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + is_uerra = 1 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 200 ; + } #Unbalanced component of temperature '21' = { discipline = 0 ; @@ -1299,12 +1325,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Wind speed -'10' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 1 ; - } #Pressure '54' = { discipline = 0 ; diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index a12f3e5a3..567bcfd3f 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -11,6 +11,32 @@ typeOfFirstFixedSurface = 1 ; productDefinitionTemplateNumber = 9 ; } +#Wind speed +'ws' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + } +#Wind speed +'ws' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + is_uerra = 1 ; + scaledValueOfFirstFixedSurface = 100 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfFirstFixedSurface = 103 ; + } +#Wind speed +'ws' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaledValueOfFirstFixedSurface = 200 ; + is_uerra = 1 ; + typeOfFirstFixedSurface = 103 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Unbalanced component of temperature 'uctp' = { discipline = 0 ; @@ -1299,12 +1325,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Wind speed -'ws' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 1 ; - } #Pressure 'pres' = { discipline = 0 ; diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 7e033df6a..53015d70e 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -11,6 +11,32 @@ probabilityType = 3 ; typeOfStatisticalProcessing = 1 ; } +#Wind speed +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + } +#Wind speed +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + scaleFactorOfFirstFixedSurface = 0 ; + scaledValueOfFirstFixedSurface = 100 ; + typeOfFirstFixedSurface = 103 ; + is_uerra = 1 ; + } +#Wind speed +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 1 ; + is_uerra = 1 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 200 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #Unbalanced component of temperature 'K' = { discipline = 0 ; @@ -1299,12 +1325,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Wind speed -'m s**-1' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 1 ; - } #Pressure 'Pa' = { discipline = 0 ;