MARS Testing: Combined changes for ECC-572/ECC-570/ECC-562/ECC-563

This commit is contained in:
Shahram Najm 2018-01-05 18:18:18 +00:00
parent 33640c6961
commit fa5809652e
27 changed files with 346 additions and 66 deletions

View File

@ -1 +1 @@
set( ${PROJECT_NAME}_VERSION_STR "2.6.0" )
set( ${PROJECT_NAME}_VERSION_STR "2.6.1" )

View File

@ -9990,6 +9990,8 @@ dist_definitionsbufr_tables_0_wmo_latest_codetables_DATA = \
bufr/tables/0/wmo/latest/codetables/2158.table\
bufr/tables/0/wmo/latest/codetables/2159.table\
bufr/tables/0/wmo/latest/codetables/2160.table\
bufr/tables/0/wmo/latest/codetables/2161.table\
bufr/tables/0/wmo/latest/codetables/2162.table\
bufr/tables/0/wmo/latest/codetables/2163.table\
bufr/tables/0/wmo/latest/codetables/2164.table\
bufr/tables/0/wmo/latest/codetables/2165.table\
@ -10110,6 +10112,7 @@ dist_definitionsbufr_tables_0_wmo_latest_codetables_DATA = \
bufr/tables/0/wmo/latest/codetables/3021.table\
bufr/tables/0/wmo/latest/codetables/3022.table\
bufr/tables/0/wmo/latest/codetables/3023.table\
bufr/tables/0/wmo/latest/codetables/3027.table\
bufr/tables/0/wmo/latest/codetables/31021.table\
bufr/tables/0/wmo/latest/codetables/31031.table\
bufr/tables/0/wmo/latest/codetables/33002.table\
@ -10143,6 +10146,7 @@ dist_definitionsbufr_tables_0_wmo_latest_codetables_DATA = \
bufr/tables/0/wmo/latest/codetables/33049.table\
bufr/tables/0/wmo/latest/codetables/33050.table\
bufr/tables/0/wmo/latest/codetables/33060.table\
bufr/tables/0/wmo/latest/codetables/33066.table\
bufr/tables/0/wmo/latest/codetables/33070.table\
bufr/tables/0/wmo/latest/codetables/33071.table\
bufr/tables/0/wmo/latest/codetables/33072.table\
@ -10213,6 +10217,8 @@ dist_definitionsbufr_tables_0_wmo_latest_codetables_DATA = \
bufr/tables/0/wmo/latest/codetables/8034.table\
bufr/tables/0/wmo/latest/codetables/8035.table\
bufr/tables/0/wmo/latest/codetables/8036.table\
bufr/tables/0/wmo/latest/codetables/8037.table\
bufr/tables/0/wmo/latest/codetables/8038.table\
bufr/tables/0/wmo/latest/codetables/8039.table\
bufr/tables/0/wmo/latest/codetables/8040.table\
bufr/tables/0/wmo/latest/codetables/8041.table\
@ -10241,7 +10247,9 @@ dist_definitionsbufr_tables_0_wmo_latest_codetables_DATA = \
bufr/tables/0/wmo/latest/codetables/8086.table\
bufr/tables/0/wmo/latest/codetables/8087.table\
bufr/tables/0/wmo/latest/codetables/8088.table\
bufr/tables/0/wmo/latest/codetables/8091.table
bufr/tables/0/wmo/latest/codetables/8091.table\
bufr/tables/0/wmo/latest/codetables/8092.table\
bufr/tables/0/wmo/latest/codetables/8093.table
definitionsbufr_tables_3_local_1_98_0dir = @ECCODES_DEFINITION_PATH@/bufr/tables/3/local/1/98/0
dist_definitionsbufr_tables_3_local_1_98_0_DATA = \
@ -10660,6 +10668,7 @@ dist_definitionsgrib2_DATA = \
grib2/grib2LocalSectionNumber.82.table\
grib2/grib2LocalSectionNumber.85.table\
grib2/grib2LocalSectionNumber.98.table\
grib2/lcwfv_suiteName.table\
grib2/local.82.0.def\
grib2/local.82.82.def\
grib2/local.82.83.def\
@ -10687,6 +10696,8 @@ dist_definitionsgrib2_DATA = \
grib2/local.98.36.def\
grib2/local.98.38.def\
grib2/local.98.39.def\
grib2/local.98.41.def\
grib2/local.98.42.def\
grib2/local.98.5.def\
grib2/local.98.500.def\
grib2/local.98.7.def\
@ -15564,6 +15575,11 @@ dist_definitionsmars_DATA = \
mars/grib.edmo.cl.def\
mars/grib.edmo.fc.def\
mars/grib.edmo.ssd.def\
mars/grib.efas.an.def\
mars/grib.efas.cf.def\
mars/grib.efas.fc.def\
mars/grib.efas.fu.def\
mars/grib.efas.pf.def\
mars/grib.efhc.cf.def\
mars/grib.efhc.icp.def\
mars/grib.efhc.pf.def\

View File

@ -631,6 +631,28 @@
lengthOfTimeRange = 24 ;
is_uerra = 0 ;
}
#Total precipitation in the last 6 hours
'tp06' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
is_efas = 1 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 6 ;
indicatorOfUnitForTimeRange = 1 ;
}
#Total precipitation in the last 24 hours
'tp24' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
lengthOfTimeRange = 24 ;
indicatorOfUnitForTimeRange = 1 ;
is_efas = 1 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Fraction of snow cover
'fscov' = {
discipline = 0 ;

View File

@ -18,5 +18,7 @@
36 36 MARS labelling for long window 4DVar system
38 38 4D variational increments for long window 4DVar system
39 39 4DVar model errors for long window 4Dvar system
41 41 The European Flood Awareness System
42 42 Lead Centre for Wave Forecast Verification
192 192 Multiple ECMWF local definitions
300 300 Multi-dimensional parameters

View File

@ -0,0 +1,3 @@
1 ecmf-wam-glob Global Wave Model run on HRES-WAM domain by ECMWF
2 fnmo-wavewatch-glob Global Wave Watch model run by FNMOC
3 edzw-wam-glob Global WAM model run by DWD

View File

@ -0,0 +1,69 @@
# Copyright 2005-2017 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
# Definition 41 - The European Flood Awareness System
# isFillup can be 0, 1 or missing
# When it is 0, it means "Water Balance"
unsigned[1] isFillup = missing() : dump, can_be_missing;
alias local.isFillup = isFillup;
# Forecase Reference Date and Time
unsigned[2] yearOfForecast = year : dump;
unsigned[1] monthOfForecast = month : dump;
unsigned[1] dayOfForecast = day : dump;
unsigned[1] hourOfForecast = hour : dump;
unsigned[1] minuteOfForecast = minute : dump;
constant secondsOfForecast = 0;
meta dateOfForecast g2date(yearOfForecast,monthOfForecast, dayOfForecast) : dump;
meta timeOfForecast time (hourOfForecast,minuteOfForecast,secondsOfForecast) : dump;
# Calculate the Julian number for the forecast date and time.
# This will be a floating point number with units of 'day'
meta julianForecastDay julian_day(dateOfForecast,hourOfForecast,minuteOfForecast,secondsOfForecast): hidden;
# Calculate the difference between the forecast date and reference date
transient diffInDays = (julianForecastDay - julianDay) : hidden; # float
# Now convert this to hours. First convert to minutes then round up
transient diffInHours = (diffInDays * 1440 + 0.5)/60 : hidden;
meta anoffset round(diffInHours, 10): dump;
alias local.anoffset = anoffset;
# Boolean
transient is_efas = 1;
# Note: the key typeOfPostProcessing is in the PDTNs 70, 71, 72 and 73
concept efas_post_proc {
"unknown" = { typeOfPostProcessing=0 ; }
"lisflood" = { typeOfPostProcessing=1 ; }
"lisflood_eric" = { typeOfPostProcessing=2 ; }
"lisflood_season" = { typeOfPostProcessing=3 ; }
"lisflood_merged" = { typeOfPostProcessing=4 ; }
"ericha" = { typeOfPostProcessing=51 ; }
"htessel_lisflood" = { typeOfPostProcessing=101; }
"htessel_eric" = { typeOfPostProcessing=102; }
"htessel_camaflood" = { typeOfPostProcessing=103; }
"epic" = { typeOfPostProcessing=152; }
"unknown" = { dummy = 1; }
} : hidden;
# Note: the key inputOriginatingCentre is in the PDTNs 70, 71, 72 and 73
concept efas_forecast {
"griddedobs" = { inputOriginatingCentre=98; marsType = "an"; }
# "reanalysis" = { inputOriginatingCentre=98; marsType = "an"; }
"hres" = { inputOriginatingCentre=98; marsType = "fc"; } # deterministic
"ens" = { inputOriginatingCentre=98; marsType = "pf"; } # ensemble
"ens" = { inputOriginatingCentre=98; marsType = "cf"; } # ensemble
"global" = { inputOriginatingCentre=78; inputProcessIdentifier = 1; }
"lam" = { inputOriginatingCentre=78; inputProcessIdentifier = 2; }
"unknown" = { dummy = 1; }
} : hidden;

View File

@ -0,0 +1,13 @@
# Copyright 2005-2017 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
# Definition 42 - WMO Lead Centre for Wave Forecast Verification (LC-WFV)
codetable[2] lcwfvSuiteName "grib2/lcwfv_suiteName.table" : dump;
alias mars.origin = lcwfvSuiteName;

View File

@ -631,6 +631,28 @@
typeOfFirstFixedSurface = 1 ;
lengthOfTimeRange = 24 ;
}
#Total precipitation in the last 6 hours
'Total precipitation in the last 6 hours' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
is_efas = 1 ;
lengthOfTimeRange = 6 ;
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
typeOfFirstFixedSurface = 1 ;
}
#Total precipitation in the last 24 hours
'Total precipitation in the last 24 hours' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
typeOfFirstFixedSurface = 1 ;
is_efas = 1 ;
lengthOfTimeRange = 24 ;
}
#Fraction of snow cover
'Fraction of snow cover' = {
discipline = 0 ;

View File

@ -631,6 +631,28 @@
typeOfFirstFixedSurface = 1 ;
is_uerra = 0 ;
}
#Total precipitation in the last 6 hours
'260267' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 6 ;
indicatorOfUnitForTimeRange = 1 ;
is_efas = 1 ;
}
#Total precipitation in the last 24 hours
'260268' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 24 ;
indicatorOfUnitForTimeRange = 1 ;
is_efas = 1 ;
}
#Fraction of snow cover
'260289' = {
discipline = 0 ;

View File

@ -631,6 +631,28 @@
lengthOfTimeRange = 24 ;
is_uerra = 0 ;
}
#Total precipitation in the last 6 hours
'tp06' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
is_efas = 1 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
lengthOfTimeRange = 6 ;
indicatorOfUnitForTimeRange = 1 ;
}
#Total precipitation in the last 24 hours
'tp24' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
lengthOfTimeRange = 24 ;
indicatorOfUnitForTimeRange = 1 ;
is_efas = 1 ;
typeOfFirstFixedSurface = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Fraction of snow cover
'fscov' = {
discipline = 0 ;

View File

@ -631,6 +631,28 @@
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
}
#Total precipitation in the last 6 hours
'kg m**-2' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
is_efas = 1 ;
lengthOfTimeRange = 6 ;
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
typeOfFirstFixedSurface = 1 ;
}
#Total precipitation in the last 24 hours
'kg m**-2' = {
discipline = 0 ;
parameterCategory = 1 ;
parameterNumber = 52 ;
indicatorOfUnitForTimeRange = 1 ;
typeOfStatisticalProcessing = 1 ;
typeOfFirstFixedSurface = 1 ;
is_efas = 1 ;
lengthOfTimeRange = 24 ;
}
#Fraction of snow cover
'Proportion' = {
discipline = 0 ;

View File

@ -8,21 +8,5 @@ meta monthlyVerificationYear evaluate(monthlyVerificationDate/10000);
meta verificationMonth evaluate( (verificationDate/100)%100 );
meta monthlyVerificationMonth evaluate( (monthlyVerificationDate/100)%100 );
# class e4
# constant six = 6;
# There was some forecast data produced incorrectly for stream=edmm with class=em
# An exception is required for backward compatibility for the wrongly encoded data
# See GRIB-422, GRIB-497, GRIB-833
#
if (class is "em" || class is "e2" || class is "ea" || class is "ep" ||
class is "rd" || class is "mc" || class is "et" || class is "l5")
{
alias mars.step = endStep;
}
else
{
alias mars.step = startStep;
}
alias mars.step = endStep;
alias mars.number=perturbationNumber;

View File

@ -0,0 +1,6 @@
alias mars.step = startStep;
# Water Balance
meta efas_suite_name sprintf("%s_%s_%s", inputOriginatingCentre, efas_forecast, efas_post_proc) : no_copy;
alias mars.origin = efas_suite_name;

View File

@ -0,0 +1,4 @@
alias mars.step = startStep;
meta efas_suite_name sprintf("%s_%s_%s", inputOriginatingCentre, efas_forecast, efas_post_proc) : no_copy;
alias mars.origin = efas_suite_name;

View File

@ -0,0 +1,4 @@
alias mars.step = startStep;
meta efas_suite_name sprintf("%s_%s_%s", inputOriginatingCentre, efas_forecast, efas_post_proc) : no_copy;
alias mars.origin = efas_suite_name;

View File

@ -0,0 +1,6 @@
alias mars.step = startStep;
# Fillup
meta efas_suite_name sprintf("%s_%s", inputOriginatingCentre, efas_post_proc) : no_copy;
alias mars.origin = efas_suite_name;

View File

@ -0,0 +1,4 @@
alias mars.step = startStep;
meta efas_suite_name sprintf("%s_%s_%s", inputOriginatingCentre, efas_forecast, efas_post_proc) : no_copy;
alias mars.origin = efas_suite_name;

View File

@ -8,17 +8,5 @@ meta monthlyVerificationYear evaluate(monthlyVerificationDate/10000);
meta verificationMonth evaluate( (verificationDate/100)%100 );
meta monthlyVerificationMonth evaluate( (monthlyVerificationDate/100)%100 );
#
# See GRIB-422, GRIB-497, GRIB-766, GRIB-833
#
if (class is "em" || class is "e2" || class is "ea" || class is "ep" ||
class is "rd" || class is "mc" || class is "et" || class is "l5")
{
alias mars.step = endStep;
}
else
{
alias mars.step = startStep;
}
alias mars.step = endStep;
alias mars.number=perturbationNumber;

View File

@ -7,15 +7,5 @@ meta verificationYear evaluate(verificationDate/10000);
meta monthlyVerificationYear evaluate(monthlyVerificationDate/10000);
meta verificationMonth evaluate( (verificationDate/100)%100 );
meta monthlyVerificationMonth evaluate( (monthlyVerificationDate/100)%100 );
#
# See GRIB-497, GRIB-766, GRIB-833
#
if (class is "em" || class is "e2" || class is "ea" || class is "ep" ||
class is "rd" || class is "mc" || class is "et" || class is "l5")
{
alias mars.step = endStep;
}
else
{
alias mars.step = startStep;
}
alias mars.step = endStep;

View File

@ -8,15 +8,4 @@ meta monthlyVerificationYear evaluate(monthlyVerificationDate/10000);
meta verificationMonth evaluate( (verificationDate/100)%100 );
meta monthlyVerificationMonth evaluate( (monthlyVerificationDate/100)%100 );
#
# See GRIB-497, GRIB-766, GRIB-833
#
if (class is "em" || class is "e2" || class is "ea" || class is "ep" ||
class is "rd" || class is "mc" || class is "et" || class is "l5")
{
alias mars.step = endStep;
}
else
{
alias mars.step = startStep;
}
alias mars.step = endStep;

View File

@ -55,6 +55,7 @@
65 cv Calibration/Validation forecast
70 or Ocean reanalysis
71 fx Flux forcing
72 fu EFAS Fillup
80 fcmean Forecast mean
81 fcmax Forecast maximum
82 fcmin Forecast minimum

View File

@ -367,15 +367,16 @@ static int extra_set(grib_accessor* a,long val)
typeOfProcessedData=5;
typeOfGeneratingProcess=4;
break;
case 70: /* Ocean reanalysis (or) */
case 71: /* Flux forcing (fx) */
case 80: /* Forecast mean (fcmean) */
case 81: /* Forecast maximum (fcmax) */
case 82: /* Forecast minimum (fcmin) */
case 83: /* Forecast standard deviation (fcstdev) */
case 87: /* Simulated satellite data */
case 88: /* Gridded satellite data */
case 89: /* GFAS analysis */
case 70: /* Ocean reanalysis (or) */
case 71: /* Flux forcing (fx) */
case 72: /* EFAS Fillup (fu) */
case 80: /* Forecast mean (fcmean) */
case 81: /* Forecast maximum (fcmax) */
case 82: /* Forecast minimum (fcmin) */
case 83: /* Forecast standard deviation (fcstdev) */
case 87: /* Simulated satellite data */
case 88: /* Gridded satellite data */
case 89: /* GFAS analysis */
typeOfProcessedData=255;
typeOfGeneratingProcess=255;
break;

View File

@ -226,6 +226,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t *len)
case 1: /* MARS labelling */
case 36: /* MARS labelling for long window 4Dvar system */
case 40: /* MARS labeling with domain and model (for LAM) */
case 42: /* LC-WFV: Wave forecast verification */
if (isInstant) {
/* type=em || type=es */
if (type==17) {
@ -256,6 +257,16 @@ static int pack_long(grib_accessor* a, const long* val, size_t *len)
}
}
break;
case 41: /* EFAS: uses post-processing templates */
if (isInstant) {
if (eps==1) productDefinitionTemplateNumberNew=71;
else productDefinitionTemplateNumberNew=70;
} else {
/* non-instantaneous: accum etc */
if (eps==1) productDefinitionTemplateNumberNew=73;
else productDefinitionTemplateNumberNew=72;
}
break;
case 15: /* Seasonal forecast data */
case 16: /* Seasonal forecast monthly mean data */

View File

@ -52,6 +52,7 @@ list( APPEND tests_no_data_reqd
grib_2nd_order_numValues
julian
ecc-517
grib_efas
)
# These tests do require data downloads
list( APPEND tests_data_reqd

74
tests/grib_efas.sh Executable file
View File

@ -0,0 +1,74 @@
#!/bin/sh
# Copyright 2005-2017 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
. ./include.sh
label="grib_efas"
sample=temp.sample.$label.grib
temp1=temp1.$label.grib
temp2=temp2.$label.grib
temp3=temp3.$label.grib
# Create a starting GRIB with a basic local definition for MARS
${tools_dir}/grib_set -s tablesVersion=19,setLocalDefinition=1,stream=efas $ECCODES_SAMPLES_PATH/GRIB2.tmpl $sample
# Check is_efas key
grib_check_key_equals $sample is_efas 0
# Test a non-ensemble, instantaneous field
${tools_dir}/grib_set -s productDefinitionTemplateNumber=0 $sample $temp1
${tools_dir}/grib_set -s setLocalDefinition=1,localDefinitionNumber=41 $temp1 $temp2
grib_check_key_equals $temp2 is_efas,productDefinitionTemplateNumber '1 70'
grib_check_key_exists $temp2 isFillup,dateOfForecast,timeOfForecast,anoffset
# Test an ensemble, instantaneous field
${tools_dir}/grib_set -s productDefinitionTemplateNumber=1,number=13 $sample $temp1
${tools_dir}/grib_set -s setLocalDefinition=1,localDefinitionNumber=41 $temp1 $temp2
grib_check_key_equals $temp2 is_efas,number,productDefinitionTemplateNumber '1 13 71'
# Test a non-ensemble, non-instantaneous field
${tools_dir}/grib_set -s productDefinitionTemplateNumber=8,stepType=accum $sample $temp1
${tools_dir}/grib_set -s setLocalDefinition=1,localDefinitionNumber=41 $temp1 $temp2
grib_check_key_equals $temp2 is_efas,productDefinitionTemplateNumber,typeOfStatisticalProcessing '1 72 1'
# Test an ensemble, non-instantaneous field (plus mars.origin tests)
${tools_dir}/grib_set -s productDefinitionTemplateNumber=11,stepType=accum $sample $temp1
${tools_dir}/grib_set -s \
setLocalDefinition=1,localDefinitionNumber=41,type=pf,inputOriginatingCentre=ecmf,typeOfPostProcessing=1 \
$temp1 $temp2
grib_check_key_equals $temp2 is_efas,productDefinitionTemplateNumber,typeOfStatisticalProcessing '1 73 1'
#${tools_dir}/grib_ls -m $temp2
grib_check_key_equals $temp2 mars.origin 'ecmf_ens_lisflood'
${tools_dir}/grib_set -s type=fc $temp2 $temp3
grib_check_key_equals $temp3 mars.origin 'ecmf_hres_lisflood'
${tools_dir}/grib_set -s type=fu $temp2 $temp3
grib_check_key_equals $temp3 mars.origin 'ecmf_lisflood'
# Parameter tests
${tools_dir}/grib_set -s paramId=260267 $temp2 $temp3
grib_check_key_equals $temp3 paramId,is_efas,lengthOfTimeRange '260267 1 6'
${tools_dir}/grib_set -s paramId=260268 $temp2 $temp3
grib_check_key_equals $temp3 paramId,is_efas,lengthOfTimeRange '260268 1 24'
# Use stepType
${tools_dir}/grib_set -s localDefinitionNumber=41,stepType=accum $sample $temp1
${tools_dir}/grib_set -s paramId=260267 $temp1 $temp2
# Test anoffset calculation
${tools_dir}/grib_set -s setLocalDefinition=1,localDefinitionNumber=41,yearOfForecast=2007,monthOfForecast=3,dayOfForecast=24,hourOfForecast=13 \
$sample $temp1
grib_check_key_equals $temp1 anoffset 25
# Clean up
rm -f $sample $temp1 $temp2 $temp3

View File

@ -106,4 +106,8 @@ grib_check_key_equals $temp.3 edition,productDefinitionTemplateNumber "2 5"
grib_check_key_equals $temp.3 forecastProbabilityNumber,totalNumberOfForecastProbabilities "2 25"
grib_check_key_equals $temp.3 probabilityType,scaledValueOfLowerLimit,scaledValueOfUpperLimit "2 54 56"
# Local Definition 42 for GRIB2 (LC-WFV)
${tools_dir}/grib_set -s setLocalDefinition=1,localDefinitionNumber=42,lcwfvSuiteName=1 $sample_g2 $temp
grib_check_key_equals $temp 'mars.origin:s' 'ecmf-wam-glob'
rm -f $temp $temp.1 $temp.2 $temp.3

View File

@ -15,7 +15,7 @@ PACKAGE_NAME='eccodes'
# Package version
ECCODES_MAJOR_VERSION=2
ECCODES_MINOR_VERSION=6
ECCODES_REVISION_VERSION=0
ECCODES_REVISION_VERSION=1
ECCODES_CURRENT=1
ECCODES_REVISION=0