Merge branch 'develop' into convertion-inherit

This commit is contained in:
Shahram Najm 2024-01-20 13:18:56 +00:00
commit 67be77071b
249 changed files with 6313 additions and 1943 deletions

View File

@ -1,5 +1,6 @@
Enrico Fucile
Shahram Najm
Eugen Betke
Sandor Kertesz
Sebastien Villaume
Florian Rathgeber

View File

@ -90,3 +90,5 @@ gfs.complex.mvmu.grib2
mercator.grib2
run_length_packing.grib2
boustrophedonic.grib1
reduced_gaussian_sub_area.legacy.grib1

View File

@ -1,6 +1,5 @@
constant ECMWF = 98 : hidden;
constant ECMWF_s = "ecmf" : hidden;
constant WMO= 0;
constant WMO = 0;
constant conceptsMasterDir="grib1" : hidden;
constant conceptsLocalDirECMF="grib1/localConcepts/ecmf" : hidden;
constant conceptsLocalDirAll="grib1/localConcepts/[centre:s]" : hidden;
@ -181,6 +180,8 @@ meta dataTime time(hour,minute,second) : dump;
meta julianDay julian_day(dataDate,hour,minute,second) : edition_specific;
codetable[1] stepUnits 'stepUnits.table' = 1 : transient,dump,no_copy;
# The lowercase version is to unify it with the helper key in the MARS language
alias stepunits = stepUnits;
concept_nofail stepType (timeRangeIndicator, "stepType.def", conceptsDir2, conceptsDir1);
@ -267,7 +268,6 @@ if(((section1Length > 40) or new() or setLocalDefinition> 0) and deleteLocalDefi
}
template_nofail marsKeywords "mars/grib.[stream:s].[type:s].def";
}
else
{
@ -314,12 +314,12 @@ alias time.stepType=stepType;
# ECC-457: GRIB1 to GRIB2 conversion
concept_nofail stepTypeForConversion (unknown, "stepTypeForConversion.def", conceptsDir2, conceptsDir1);
if (stepTypeForConversion is "accum" ) {
if (productDefinitionTemplateNumber == 1) {
alias productDefinitionTemplateNumber=eleven;
}
else {
alias productDefinitionTemplateNumber=eight;
}
if (productDefinitionTemplateNumber == 1) {
alias productDefinitionTemplateNumber=eleven;
}
else {
alias productDefinitionTemplateNumber=eight;
}
}
meta md5Section1 md5(offsetSection1,section1Length);

View File

@ -19,6 +19,7 @@ constant million = 1000000 : hidden;
constant grib2divider = 1000000;
alias extraDimensionPresent=zero;
transient angleSubdivisions=grib2divider; # micro degrees
transient forceStepUnits = 255 : hidden;
meta gts_header gts_header() : no_copy,hidden,read_only;
meta gts_TTAAii gts_header(20,6) : no_copy,hidden,read_only;
@ -29,7 +30,7 @@ transient missingValue = 9999;
constant ieeeFloats = 1 : edition_specific;
constant isHindcast = 0;
include "grib2/section.0.def";
include "grib2/section.0.def"
template core "grib2/sections.def";

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
#Envelope-maximum individual wave height
'envhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'tdcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'tdhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'stcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'sthmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness
'wss' = {
discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
#Lake depth
'lakdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'rivdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'rivout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'fldout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'pthflw' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude
'lat' = {
discipline = 0 ;

View File

@ -1,5 +1,6 @@
# Concept combinationOfAttributesOfTile
'UNDEF' = {attributeOfTile = [0];}
'UNMOD' = {attributeOfTile = [1];}
'SNOW' = {attributeOfTile = [2];}
'FLOOD' = {attributeOfTile = [3];}

View File

@ -1,3 +1 @@
label "_local 98.1";
label "_x";

View File

@ -1,7 +1,7 @@
# DestinE MARS layout
# Base keywords for all datasets
include "grib2/local.destine.base.def";
include "grib2/local.destine.base.def"
# Keywords based on dataset
template_nofail datasetTemplate "grib2/local.destine.[dataset:s].def";

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 1
'covar_t2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'covar_rh2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'covar_ssm_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'covar_t2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'covar_rh2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'covar_ssm_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'covar_t2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'covar_rh2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'covar_ssm_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'covar_t2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'covar_rh2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'covar_t2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'covar_rh2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'covar_t2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'covar_rh2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'covar_t2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'covar_rh2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'covar_t2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'covar_rh2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'covar_t2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'covar_rh2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat
'srlh' = {
localTablesVersion = 1 ;

View File

@ -6,3 +6,4 @@
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=5;}
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=6;}
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=7;}
'sfc' = {typeOfFirstFixedSurface=254;}

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 1
'Covariance between 2-metre temperature and volumetric soil water layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'Covariance between 2-metre relative humidity and volumetric soil water layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'Covariance between surface soil moisture and volumetric soil water layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'Covariance between 2-metre temperature and volumetric soil water layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'Covariance between 2-metre relative humidity and volumetric soil water layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'Covariance between surface soil moisture and volumetric soil water layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'Covariance between 2-metre temperature and volumetric soil water layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'Covariance between 2-metre relative humidity and volumetric soil water layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'Covariance between surface soil moisture and volumetric soil water layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'Covariance between 2-metre temperature and soil temperature layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'Covariance between 2-metre relative humidity and soil temperature layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'Covariance between 2-metre temperature and soil temperature layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'Covariance between 2-metre relative humidity and soil temperature layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'Covariance between 2-metre temperature and soil temperature layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'Covariance between 2-metre relative humidity and soil temperature layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'Covariance between 2-metre temperature and temperature of snow layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'Covariance between 2-metre relative humidity and temperature of snow layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'Covariance between 2-metre temperature and temperature of snow layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'Covariance between 2-metre relative humidity and temperature of snow layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'Covariance between 2-metre temperature and temperature of snow layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'Covariance between 2-metre relative humidity and temperature of snow layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat
'Surface roughness length for heat' = {
localTablesVersion = 1 ;

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 1
'254001' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'254002' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'254003' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'254004' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'254005' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'254006' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'254007' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'254008' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'254009' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'254010' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'254011' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'254012' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'254013' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'254014' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'254015' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'254016' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'254017' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'254018' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'254019' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'254020' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'254021' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat
'260651' = {
localTablesVersion = 1 ;

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 1
'covar_t2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'covar_rh2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'covar_ssm_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'covar_t2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'covar_rh2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'covar_ssm_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'covar_t2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'covar_rh2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'covar_ssm_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'covar_t2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'covar_rh2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'covar_t2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'covar_rh2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'covar_t2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'covar_rh2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'covar_t2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'covar_rh2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'covar_t2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'covar_rh2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'covar_t2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'covar_rh2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat
'srlh' = {
localTablesVersion = 1 ;

View File

@ -0,0 +1,2 @@
# Concept typeOfLevel
'abstractLevel' = {typeOfFirstFixedSurface=254;}

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 1
'K m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'% m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'm**3 m**-3 m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'K m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'% m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'm**3 m**-3 m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'K m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'% m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'm**3 m**-3 m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat
'm' = {
localTablesVersion = 1 ;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
#Envelope-maximum individual wave height
'Envelope-maximum individual wave height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'Time domain maximum individual crest height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'Time domain maximum individual wave height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'Space time maximum individual crest height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'Space time maximum individual wave height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness
'Wave Spectral Skewness' = {
discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
#Lake depth
'Lake depth' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'River depth' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'River outflow of water' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'Floodplain outflow of water' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'Floodpath outflow of water' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude
'Latitude' = {
discipline = 0 ;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
#Envelope-maximum individual wave height
'140130' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'140131' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'140132' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'140133' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'140134' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness
'140207' = {
discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
#Lake depth
'240030' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'240031' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'240032' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'240033' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'240034' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude
'250001' = {
discipline = 0 ;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
#Envelope-maximum individual wave height
'envhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'tdcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'tdhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'stcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'sthmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness
'wss' = {
discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
#Lake depth
'lakdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'rivdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'rivout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'fldout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'pthflw' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude
'lat' = {
discipline = 0 ;

View File

@ -0,0 +1,11 @@
# (C) Copyright 2005- ECMWF.
# alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
# template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
# codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
meta stepUnits optimal_step_units(forecastTime,indicatorOfUnitOfTimeRange,lengthOfTimeRange,indicatorOfUnitForTimeRange) : transient,dump;
transient startStepUnit = 255 : hidden; # 255 means MISSING. See code table 4.4
transient endStepUnit = 255 : hidden;
# The lowercase version is to unify it with the helper key in the MARS language
alias stepunits = stepUnits;

View File

@ -0,0 +1,2 @@
# Code table 0.0 for ECMWF - Discipline of processed data in the GRIB message, number of GRIB Master table
254 254 Model internal fields

View File

@ -0,0 +1,2 @@
# Product discipline 254 for ECMWF - Model internal fields
254 254 Covariances

View File

@ -0,0 +1,22 @@
# Code table 4.2 - discipline=254 category=254 for ECMWF
192 192 Covariance between 2-metre temperature and volumetric soil water layer 1 [K m**3 m**-3]
193 193 Covariance between 2-metre relative humidity and volumetric soil water layer 1 [% m**3 m**-3]
194 194 Covariance between surface soil moisture and volumetric soil water layer 1 [m**3 m**-3 m**3 m**-3]
195 195 Covariance between 2-metre temperature and volumetric soil water layer 2 [K m**3 m**-3]
196 196 Covariance between 2-metre relative humidity and volumetric soil water layer 2 [% m**3 m**-3]
197 197 Covariance between surface soil moisture and volumetric soil water layer 2 [m**3 m**-3 m**3 m**-3]
198 198 Covariance between 2-metre temperature and volumetric soil water layer 3 [K m**3 m**-3]
199 199 Covariance between 2-metre relative humidity and volumetric soil water layer 3 [% m**3 m**-3]
200 200 Covariance between surface soil moisture and volumetric soil water layer 3 [m**3 m**-3 m**3 m**-3]
201 201 Covariance between 2-metre temperature and soil temperature layer 1 [K K]
202 202 Covariance between 2-metre relative humidity and soil temperature layer 1 [% K]
203 203 Covariance between 2-metre temperature and soil temperature layer 2 [K K]
204 204 Covariance between 2-metre relative humidity and soil temperature layer 2 [% K]
205 205 Covariance between 2-metre temperature and soil temperature layer 3 [K K]
206 206 Covariance between 2-metre relative humidity and soil temperature layer 3 [% K]
207 207 Covariance between 2-metre temperature and temperature of snow layer 1 [K K]
208 208 Covariance between 2-metre relative humidity and temperature of snow layer 1 [% K]
209 209 Covariance between 2-metre temperature and temperature of snow layer 2 [K K]
210 210 Covariance between 2-metre relative humidity and temperature of snow layer 2 [% K]
211 211 Covariance between 2-metre temperature and temperature of snow layer 3 [K K]
212 212 Covariance between 2-metre relative humidity and temperature of snow layer 3 [% K]

View File

@ -1 +1,2 @@
173 173 Top surface of snow, over ice, on sea, lake or river
254 254 Abstract level with no vertical localization or meaning

View File

@ -2,4 +2,4 @@
# TEMPLATE 1.0, Calendar Definition
include "grib2/template.1.calendar.def";
include "grib2/template.1.calendar.def"

View File

@ -2,4 +2,4 @@
# TEMPLATE 1.1, Paleontological Offset
include "grib2/template.1.offset.def";
include "grib2/template.1.offset.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 1.2, Calendar Definition and Paleontological Offset
include "grib2/template.1.calendar.def";
include "grib2/template.1.offset.def";
include "grib2/template.1.calendar.def"
include "grib2/template.1.offset.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.0, Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.latlon.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.1, Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.latlon.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"
include "grib2/template.3.rotation.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.10, Mercator
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -27,7 +27,7 @@ signed[4] longitudeOfFirstGridPoint : edition_specific,no_copy;
alias Lo1 = longitudeOfFirstGridPoint;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.resolution_flags.def";
include "grib2/template.3.resolution_flags.def"
# LaD - Latitude(s) at which the Mercator projection intersects the Earth
# (Latitude(s) where Di and Dj are specified)
@ -44,7 +44,7 @@ signed[4] longitudeOfLastGridPoint: edition_specific,no_copy ;
alias Lo2 = longitudeOfLastGridPoint;
meta geography.longitudeOfLastGridPointInDegrees scale(longitudeOfLastGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# Orientation of the grid, angle between i direction on the map and the equator
# NOTE 1: Limited to the range of 0 to 90 degrees; if the angle of orientation of the grid is neither 0 nor 90 degrees,

View File

@ -3,16 +3,16 @@
# TEMPLATE 3.100, Triangular grid based on an icosahedron (see Attachment I.2-GRIB-Att.)
constant isGridded = true;
# n2 - exponent of 2 for the number of intervals on main triangle sides
# Exponent of 2 for the number of intervals on main triangle sides
unsigned[1] n2 : dump ;
# n3 - exponent of 3 for the number of intervals on main triangle sides
# Exponent of 3 for the number of intervals on main triangle sides
unsigned[1] n3 : dump ;
# Ni - number of intervals on main triangle sides of the icosahedron
# Number of intervals on main triangle sides of the icosahedron
unsigned[2] Ni : dump ;
# nd - Number of diamonds
# Number of diamonds
unsigned[1] nd : dump ;
alias numberOfDiamonds=nd;
@ -28,17 +28,12 @@ meta geography.longitudeOfThePolePointInDegrees g2lon(longitudeOfThePolePoint);
unsigned[4] longitudeOfFirstDiamondCentreLine : dump ;
meta geography.longitudeOfFirstDiamondCentreLineInDegrees g2lon(longitudeOfFirstDiamondCentreLine);
# Grid point position
codetable[1] gridPointPosition ('3.8.table',masterDir,localDir);
# Numbering order of diamonds
flags[1] numberingOrderOfDiamonds 'grib2/tables/[tablesVersion]/3.9.table';
# Scanning mode for one diamond
flags[1] scanningModeForOneDiamond 'grib2/tables/[tablesVersion]/3.10.table';
# nt - total number of grid points
unsigned[4] totalNumberOfGridPoints : dump ;
alias nt = totalNumberOfGridPoints;
unsigned[4] totalNumberOfGridPoints : dump ;
alias nt = totalNumberOfGridPoints;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1000, Cross-section grid, with points equally spaced on the horizontal
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -12,27 +12,26 @@ unsigned[4] numberOfHorizontalPoints : dump ;
unsigned[4] basicAngleOfTheInitialProductionDomain = 0;
# Subdivisions of basic angle used to define extreme longitudes and latitudes
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;;
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;
# La1 - latitude of first grid point
# Latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ;
alias La1 = latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
# Longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
alias Lo1 = longitudeOfFirstGridPoint;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# La2 - latitude of last grid point
# Latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific;
alias La2 = latitudeOfLastGridPoint;
# Lo2 - longitude of last grid point
unsigned[4] longitudeOfLastGridPoint: edition_specific ;
# Longitude of last grid point
unsigned[4] longitudeOfLastGridPoint: edition_specific ;
alias Lo2 = longitudeOfLastGridPoint;
# Type of horizontal line
codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump ;
@ -45,10 +44,8 @@ codetable[1] meaningOfVerticalCoordinate ('3.15.table',masterDir,localDir) : dum
# Vertical dimension coordinate values definition
codetable[1] verticalCoordinate ('3.21.table',masterDir,localDir) : dump ;
# NC - Number of coefficients or values used to specify vertical coordinates
# Number of coefficients or values used to specify vertical coordinates
unsigned[2] NC : dump ;
# Octets 67-(66+NC*4) : Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values
# Octets 67-(66+NC*4): Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values
# (IEEE 32-bit floating-point values)
# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values

View File

@ -1,41 +1,40 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.110, Equatorial azimuthal equidistant projection
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
# Nx - number of points along X-axis
# Number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump;
alias Nx = numberOfPointsAlongXAxis;
alias numberOfPointsAlongAParallel = Nx;
alias Ni = Nx;
# Ny - number of points along Y-axis
# Number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump;
alias Ny = numberOfPointsAlongYAxis;
alias numberOfPointsAlongAMeridian = Ny;
alias Nj = Ny;
# La1 - latitude of tangency point (centre of grid)
# Latitude of tangency point (centre of grid)
signed[4] latitudeOfTangencyPoint : dump;
alias La1 = latitudeOfTangencyPoint;
# Lo1 - longitude of tangency point
unsigned[4] longitudeOfTangencyPoint : dump;
# Longitude of tangency point
unsigned[4] longitudeOfTangencyPoint : dump;
alias Lo1 = longitudeOfTangencyPoint;
# Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis
# X-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dx : dump;
# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis
# Y-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dy : dump;
# Projection centre flag
unsigned[1] projectionCentreFlag : dump;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1100, Hovmoller diagram grid with points equally spaced on the horizontal
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -23,7 +23,7 @@ unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 =longitudeOfFirstGridPoint;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# La2 - latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific,dump;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.12, Transverse Mercator
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -27,7 +27,7 @@ signed[4] longitudeOfReferencePoint : edition_specific,no_copy;
alias LoR = longitudeOfReferencePoint;
meta geography.longitudeOfReferencePointInDegrees scale(longitudeOfReferencePoint,oneConstant,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.resolution_flags.def";
include "grib2/template.3.resolution_flags.def"
# m - scale factor at reference point ratio of distance on map to distance on spheroid
# (IEEE 32-bit floating-point values)
@ -45,7 +45,7 @@ signed[4] YR : edition_specific,no_copy ;
alias falseNorthing = YR;
meta geography.YRInMetres scale(YR,one,hundred) : dump;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# Di - i-direction increment length in units of 10-2 m
unsigned[4] Di : edition_specific,no_copy;

View File

@ -34,7 +34,7 @@ alias Dx = spacingOfBinsAlongRadials;
unsigned[4] offsetFromOriginToInnerBound;
alias Dstart = offsetFromOriginToInnerBound;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# Octets 40-(39+4Nr) : For each of Nr radials:
radials list(numberOfRadials){

View File

@ -6,7 +6,7 @@ constant isGridded = true;
# Note: This template is deprecated.
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
points list(numberOfDataPoints) {
signed[4] latitude;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.140, Lambert azimuthal equal area projection
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -52,7 +52,7 @@ alias Dy = yDirectionGridLengthInMillimetres ;
meta geography.yDirectionGridLengthInMetres scale(yDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump;
alias DyInMetres = yDirectionGridLengthInMetres;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
iterator lambert_azimuthal_equal_area(
numberOfPoints,missingValue,values,

View File

@ -1,7 +1,7 @@
# TEMPLATE 3.150 - The HEALPix grid
# See https://healpix.jpl.nasa.gov/pdf/intro.pdf
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.resolution_flags.def";
include "grib2/template.3.healpix.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.resolution_flags.def"
include "grib2/template.3.healpix.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.2, Stretched Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.latlon.def";
include "grib2/template.3.stretching.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"
include "grib2/template.3.stretching.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.20, Polar stereographic projection
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -63,7 +63,7 @@ flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
# If bit 1 is 1, then the South Pole is on the projection plane
flagbit southPoleOnProjectionPlane(projectionCentreFlag,7) : dump; # WMO bit 1
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
iterator polar_stereographic(numberOfPoints,missingValue,values,
radius,Nx,Ny,

View File

@ -2,8 +2,8 @@
# TEMPLATE 3.3, Stretched and Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.latlon.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.stretching.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"
include "grib2/template.3.rotation.def"
include "grib2/template.3.stretching.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.30, Lambert conformal
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -32,7 +32,7 @@ meta geography.longitudeOfFirstGridPointInDegrees
alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees;
#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,oneConstant) : no_copy;
include "grib2/template.3.resolution_flags.def";
include "grib2/template.3.resolution_flags.def"
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific;
@ -58,7 +58,7 @@ meta geography.DyInMetres scale(Dy,one,thousand) : dump;
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 : edition_specific;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.31, Albers equal area
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -23,7 +23,7 @@ alias La1 = latitudeOfFirstGridPoint;
unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 = longitudeOfFirstGridPoint;
include "grib2/template.3.resolution_flags.def";
include "grib2/template.3.resolution_flags.def"
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : dump;
@ -42,7 +42,7 @@ alias Dy = yDirectionGridLength;
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 :edition_specific;

View File

@ -1,5 +1,5 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.4, Variable resolution latitude/longitude
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.latlon_vares.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon_vares.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.40, Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.gaussian.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.41, Rotated Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.gaussian.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"
include "grib2/template.3.rotation.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.42, Stretched Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.gaussian.def";
include "grib2/template.3.stretching.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"
include "grib2/template.3.stretching.def"

View File

@ -2,7 +2,7 @@
# TEMPLATE 3.43, Stretched and rotated Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.gaussian.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.stretching.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"
include "grib2/template.3.rotation.def"
include "grib2/template.3.stretching.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.5, Variable resolution rotated latitude/longitude
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.latlon_vares.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon_vares.def"
include "grib2/template.3.rotation.def"

View File

@ -2,4 +2,4 @@
# TEMPLATE 3.50, Spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def";
include "grib2/template.3.spherical_harmonics.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.51, Rotated spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.spherical_harmonics.def"
include "grib2/template.3.rotation.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.52, Stretched spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def";
include "grib2/template.3.stretching.def";
include "grib2/template.3.spherical_harmonics.def"
include "grib2/template.3.stretching.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.53, Stretched and rotated spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def";
include "grib2/template.3.rotation.def";
include "grib2/template.3.stretching.def";
include "grib2/template.3.spherical_harmonics.def"
include "grib2/template.3.rotation.def"
include "grib2/template.3.stretching.def"

View File

@ -7,7 +7,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def"
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint: edition_specific,no_copy ;

View File

@ -7,7 +7,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def"
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ;
@ -23,7 +23,7 @@ alias Lo1 = longitudeOfFirstGridPoint;
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific;
signed[4] LaD : edition_specific;
alias latitudeWhereDxAndDyAreSpecified=LaD;
meta geography.LaDInDegrees scale(LaD,oneConstant,grib2divider,truncateDegrees) : dump;
alias latitudeWhereDxAndDyAreSpecifiedInDegrees=LaDInDegrees;
@ -31,7 +31,7 @@ alias latitudeWhereDxAndDyAreSpecifiedInDegrees=LaDInDegrees;
# LoV - orientation of the grid
# LoV is the longitude value of the meridian which is parallel to the y-axis (or columns of the grid)
# along which latitude increases as the y-coordinate increases
signed[4] orientationOfTheGrid : edition_specific;
signed[4] orientationOfTheGrid : edition_specific;
alias LoV = orientationOfTheGrid ;
meta geography.orientationOfTheGridInDegrees scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump;

View File

@ -6,7 +6,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def"
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific;
@ -30,19 +30,19 @@ alias latitudeWhereDxAndDyAreSpecified=LaD;
meta geography.LaDInDegrees scale(LaD,one,grib2divider,truncateDegrees) : dump;
# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases
unsigned[4] LoV : edition_specific;
unsigned[4] LoV : edition_specific;
meta geography.LoVInDegrees scale(LoV,one,grib2divider,truncateDegrees) : dump;
# Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 : edition_specific;
signed[4] Latin1 : edition_specific;
alias FirstLatitude=Latin1;
meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump;
# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin2 : dump;
signed[4] Latin2 : dump;
alias SecondLatitude=Latin2;
meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 3.90, Space view perspective or orthographic
include "grib2/template.3.shape_of_the_earth.def";
include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true;
@ -25,7 +25,7 @@ signed[4] longitudeOfSubSatellitePoint;
meta geography.latitudeOfSubSatellitePointInDegrees scale(latitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
meta geography.longitudeOfSubSatellitePointInDegrees scale(longitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.resolution_flags.def";
include "grib2/template.3.resolution_flags.def"
# dx - apparent diameter of Earth in grid lengths, in X-direction
unsigned[4] dx : dump;
@ -47,7 +47,7 @@ unsigned[4] Yp : no_copy;
meta geography.YpInGridLengths scale(Yp,one,thousand) : dump;
alias yCoordinateOfSubSatellitePoint=YpInGridLengths;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
# Orientation of the grid; i.e. the angle between the increasing Y-axis and the meridian
# of the sub-satellite point in the direction of increasing latitude

View File

@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
include "grib2/template.3.grid.def";
include "grib2/template.3.grid.def"
# Di - i direction increment
unsigned[4] iDirectionIncrement : can_be_missing;
@ -11,7 +11,7 @@ unsigned[4] N : dump;
alias numberOfParallelsBetweenAPoleAndTheEquator=N ;
alias geography.N=N;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
modify Ni : can_be_missing,dump;

View File

@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF.
include "grib2/template.3.grid.def";
include "grib2/template.3.grid.def"
# Di - i direction increment
unsigned[4] iDirectionIncrement : can_be_missing,edition_specific;
@ -12,7 +12,7 @@ unsigned[4] jDirectionIncrement : can_be_missing,edition_specific;
alias Dj = jDirectionIncrement;
alias Dy = jDirectionIncrement;
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
meta g2grid g2grid(
latitudeOfFirstGridPoint,

View File

@ -1,4 +1,5 @@
# (C) Copyright 2005- ECMWF.
# Variable resolution latitude/longitude
unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel=Ni;
@ -7,11 +8,10 @@ alias Nx = Ni;
unsigned[4] Nj : dump;
alias numberOfPointsAlongAMeridian=Nj;
alias Ny = Nj;
alias geography.Ni=Ni;
alias geography.Nj=Nj;
# Basic angle of the initial production domain
# Basic angle of the initial production domain
unsigned[4] basicAngleOfTheInitialProductionDomain = 0;
transient mBasicAngle=basicAngleOfTheInitialProductionDomain*oneMillionConstant;
transient angleMultiplier = 1;
@ -24,7 +24,7 @@ when (basicAngleOfTheInitialProductionDomain == 0) {
set mAngleMultiplier = mBasicAngle;
}
# Subdivisions of basic angle used to define extreme longitudes and latitudes, and direction increments
# Subdivisions of basic angle used to define extreme longitudes and latitudes, and direction increments
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;
transient angleDivisor = 1000000;
@ -36,12 +36,12 @@ when (missing(subdivisionsOfBasicAngle) || subdivisionsOfBasicAngle == 0) {
include "grib2/template.3.resolution_flags.def"
include "grib2/template.3.scanning_mode.def";
include "grib2/template.3.scanning_mode.def"
longitudesList list(Ni) {
unsigned[4] longitude;
unsigned[4] longitude;
}
latitudesList list(Nj) {
signed[4] latitude;
signed[4] latitude;
}

View File

@ -3,23 +3,23 @@
constant sphericalHarmonics=1;
# constant dataRepresentationType = 50;
# J - pentagonal resolution parameter
unsigned[4] J : dump;
alias pentagonalResolutionParameterJ=J ;
# Pentagonal resolution parameter
unsigned[4] J : dump;
alias pentagonalResolutionParameterJ=J;
alias geography.J=J;
# K - pentagonal resolution parameter
unsigned[4] K : dump;
# Pentagonal resolution parameter
unsigned[4] K : dump;
alias pentagonalResolutionParameterK=K;
alias geography.K=K;
# M - pentagonal resolution parameter
unsigned[4] M : dump;
alias pentagonalResolutionParameterM = M ;
# Pentagonal resolution parameter
unsigned[4] M : dump;
alias pentagonalResolutionParameterM = M;
alias geography.M=M;
# Representation type indicating the method used to define the norm
codetable[1] spectralType ('3.6.table',masterDir,localDir) = 1 : no_copy;
codetable[1] spectralType ('3.6.table',masterDir,localDir) = 1 : no_copy;
alias spectralDataRepresentationType=spectralType;
# Representation mode indicating the order of the coefficients

View File

@ -15,9 +15,7 @@ unsigned[1] numberOfRadarSitesUsed : dump;
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
include "grib2/stepUnits.def"
# Site latitude (in microdegrees)
unsigned[4] siteLatitude : dump;

View File

@ -5,7 +5,6 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
include "grib2/template.4.forecast_time.def"
include "grib2/template.4.point_in_time.def"
include "grib2/template.4.satellite.def"
include "grib2/template.4.eps.def"
include "grib2/template.4.statistical.def"

View File

@ -12,9 +12,7 @@ alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
include "grib2/stepUnits.def"
# Forecast time in units defined by previous octet (GRIB-29: supports negative forecast time)
signed[4] forecastTime : dump;
signed[4] forecastTime : dump;

View File

@ -14,9 +14,7 @@ alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
include "grib2/stepUnits.def"
# Forecast time in units defined by previous octet
# See GRIB-530: We have to make a special case for the error in WMO spec
@ -25,9 +23,9 @@ if ( new() || (section4Length - 4*NV == 45) ) {
# Newly created messages
# Existing GRIBs which have 45 bytes before the pv array
# The 45 bytes = length of product def template 4.44
unsigned[2] forecastTime : dump;
unsigned[2] forecastTime : dump;
}
else {
# This is for existing gribs which were written with 4 octets (GRIB-29: supports negative forecast time)
signed[4] forecastTime : dump;
signed[4] forecastTime : dump;
}

View File

@ -3,9 +3,8 @@
remove is_localtime;
transient is_localtime=1;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
include "grib2/stepUnits.def"
alias time.stepUnits = stepUnits;
# Method used to calculate the field value at the local time specified in section 1
@ -82,7 +81,6 @@ if (numberOfForecastsUsedInLocalTime == 1) {
alias mars.date = dateOfForecastUsedInLocalTime : dump;
alias mars.time = timeOfForecastUsedInLocalTime : dump;
alias mars.step = endStep;
alias time.dataDate = dateOfForecastUsedInLocalTime;
alias time.dataTime = timeOfForecastUsedInLocalTime;
alias time.endStep = endStep;

View File

@ -2,6 +2,6 @@
# TEMPLATE 5.0, Grid point data - simple packing
include "grib2/template.5.packing.def";
include "grib2/template.5.original_values.def";
include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"

View File

@ -4,7 +4,7 @@
# Preliminary note:
# This template was not validated at the time of publication and should be used with caution
include "grib2/template.5.packing.def";
include "grib2/template.5.packing.def"
unsigned[1] matrixBitmapsPresent;
# same as in edition 1

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.2, Grid point data - complex packing
include "grib2/template.5.packing.def";
include "grib2/template.5.original_values.def";
include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"
# Group splitting method used
codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir);

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.3, Grid point data - complex packing and spatial differencing
include "grib2/template.5.packing.def";
include "grib2/template.5.original_values.def";
include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"
# Group splitting method used
codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir);

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.40, Grid point data - JPEG 2000 Code Stream Format
include "grib2/template.5.packing.def";
include "grib2/template.5.original_values.def";
include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"
codetable[1] typeOfCompressionUsed ('5.40.table',masterDir,localDir) ;

View File

@ -2,5 +2,5 @@
# TEMPLATE 5.41, Grid point data - PNG Code Stream Format
include "grib2/template.5.packing.def";
include "grib2/template.5.original_values.def";
include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.42, Grid point data - CCSDS recommended lossless compression
include "grib2/template.5.packing.def";
include "grib2/template.5.original_values.def";
include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"
unsigned[1] ccsdsFlags : dump;
alias ccsdsCompressionOptionsMask=ccsdsFlags;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 5.50, Spectral data - simple packing
include "grib2/template.5.packing.def";
include "grib2/template.5.packing.def"
# Real part of (0,0)
ieeefloat realPartOf00 ;
ieeefloat realPartOf00;

View File

@ -1,8 +1,8 @@
# (C) Copyright 2005- ECMWF.
# TEMPLATE 5.50000, Spherical harmonics data - complex packing ( IEEE )
# TEMPLATE 5.50000, Spherical harmonics data - complex packing (IEEE)
include "grib2/template.5.packing.def";
include "grib2/template.5.packing.def"
if (gribex_mode_on()) {
transient computeLaplacianOperator=0 : hidden;

View File

@ -2,7 +2,7 @@
# TEMPLATE 5.51, Spherical harmonics data - complex packing
include "grib2/template.5.packing.def";
include "grib2/template.5.packing.def"
if (gribex_mode_on()) {
transient computeLaplacianOperator=0 : hidden;

View File

@ -3,7 +3,7 @@
# TEMPLATE 5.53, BiFourier coefficients data - complex packing
# Spectral data for limited area models - complex packing
include "grib2/template.5.packing.def";
include "grib2/template.5.packing.def"
transient computeLaplacianOperator=1 : hidden;

View File

@ -6,6 +6,6 @@
# This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests
constant typeOfPreProcessing = 1;
include "grib2/template.5.packing.def";
include "grib2/template.5.packing.def"
ieeefloat preProcessingParameter : read_only;
ieeefloat preProcessingParameter : read_only;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ;
parameterNumber = 52 ;
}
#Envelope-maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness
'Numeric' = {
discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ;
parameterNumber = 9 ;
}
#Lake depth
'm' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'm' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'm**3 s**-1' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'm**3 s**-1' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'm**3 s**-1' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude
'Degree N' = {
discipline = 0 ;

View File

@ -39,14 +39,13 @@ alias ls.CCCC=CCCC;
alias ls.YY=YY;
alias ls.GG=GG;
alias ls.gg=gg;
position endOfHeadersMarker;
position endOfHeadersMarker;
message[4] theMessage;
meta lengthOfHeaders evaluate( endOfHeadersMarker-startOfHeaders);
meta md5Headers md5(startOfHeaders,lengthOfHeaders);
meta lengthOfHeaders evaluate(endOfHeadersMarker-startOfHeaders);
meta md5Headers md5(startOfHeaders, lengthOfHeaders);
ascii[4] endMark;
ascii[4] endMark;
position totalLength;
alias ls.totalLength=totalLength;

View File

@ -73,3 +73,4 @@
92 pfc Point values
93 ppm Point value metrics
94 gwt Weather types
95 est Ensemble statistics

View File

@ -77,10 +77,12 @@ if( HAVE_BUILD_TOOLS )
grib_clone
grib_copy_message
grib_ensemble_index
grib_index
grib_set_pv
grib_set_bitmap
grib_list
grib_get_data
grib_mars_param
grib_nearest
grib_nearest_multiple
grib_multi

View File

@ -32,7 +32,7 @@ int main(int argc, char* argv[])
size_t stringLen;
char stringVal[100] = {0,};
int i, err = 0;
int cnt = 0;
int cnt = 0, ktype = 0;
const char* infile = "../../data/bufr/synop_multi_subset.bufr";
in = fopen(infile, "rb");
@ -62,6 +62,9 @@ int main(int argc, char* argv[])
for (i = 1; i <= numberOfSubsets; i++) {
snprintf(key, sizeof(key), "/subsetNumber=%d/blockNumber", i);
CODES_CHECK(codes_get_native_type(h, key, &ktype), 0);
//printf("Type = %d\n", ktype);
printf(" subsetNumber=%d", i);
/* read and print some data values */
CODES_CHECK(codes_get_long(h, key, &longVal), 0);

View File

@ -19,7 +19,7 @@
static void usage(const char* prog)
{
printf("usage: %s infile\n", prog);
printf("usage: %s gribfile indexfile\n", prog);
exit(1);
}
@ -27,7 +27,8 @@ int main(int argc, char* argv[])
{
codes_index* index = NULL;
codes_handle* h = NULL;
char* infile = NULL;
char* inputfile = NULL;
char* indexfile = NULL;
long *steps, *levels, *numbers; /* arrays */
char** shortName = NULL;
int i, j, k, l;
@ -37,8 +38,9 @@ int main(int argc, char* argv[])
size_t lenshortName = sizeof(oshortName);
int ret = 0, count = 0;
if (argc != 2) usage(argv[0]);
infile = argv[1];
if (argc != 3) usage(argv[0]);
inputfile = argv[1];
indexfile = argv[2];
printf("indexing...\n");
@ -50,7 +52,7 @@ int main(int argc, char* argv[])
}
/* indexes a file */
ret = codes_index_add_file(index, infile);
ret = codes_index_add_file(index, inputfile);
if (ret) {
fprintf(stderr, "Error: %s\n", codes_get_error_message(ret));
exit(ret);
@ -152,7 +154,7 @@ int main(int argc, char* argv[])
}
printf(" %d messages selected\n", count);
codes_index_write(index, "out.gribidx");
codes_index_write(index, indexfile);
codes_index_delete(index);
return 0;

23
examples/C/grib_index.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
label="grib_index_c"
tempIndex=temp.$label.idx
tempText=temp.$label.txt
input=$data_dir/tigge_cf_ecmwf.grib2
${examples_dir}/c_grib_index $input $tempIndex > $tempText
grep -q "43 messages selected" $tempText
${tools_dir}/grib_dump $tempIndex
rm -f $tempIndex $tempText

20
examples/C/grib_mars_param.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
label="grib_mars_param_c"
fTmp=${label}.tmp
fOut=${label}.tmp.out
fRef=${label}.tmp.ref
${examples_dir}/c_mars_param
rm -f ${fTmp} ${fRef} ${fOut}

View File

@ -10,7 +10,7 @@
. ./include.ctest.sh
label="grib_nearest_multiple"
label="grib_nearest_multiple_c"
temp1=$label.temp1.$$
temp2=$label.temp2.$$
tempRef=$label.ref.$$

View File

@ -22,6 +22,8 @@ if( HAVE_BUILD_TOOLS )
list( APPEND tests_extra
grib_index
codes_dump
codes_scan_file
codes_load_file
grib_copy_message
bufr_copy_message
grib_get_keys
@ -36,6 +38,7 @@ if( HAVE_BUILD_TOOLS )
grib_elements
grib_nearest
grib_nearest_single
grib_nearest_four_single
grib_precision
grib_print_data
grib_set_keys
@ -47,6 +50,7 @@ if( HAVE_BUILD_TOOLS )
grib_copy_namespace
grib_read_message
grib_read_from_file
grib_read_bytes
grib_get_set_uuid
grib_clone
grib_ecc-1316
@ -89,6 +93,7 @@ else()
grib_nearest
grib_elements
grib_nearest_single
grib_nearest_four_single
grib_precision
grib_print_data
grib_set_missing

View File

@ -10,7 +10,7 @@
! Description: How to copy a BUFR message in memory
!
!
program copy
program bufr_copy_message
use eccodes
implicit none
integer :: err, sub_centre
@ -50,4 +50,4 @@ program copy
call codes_close_file(outfile)
deallocate (message)
end program copy
end program

View File

@ -11,6 +11,7 @@ program operator_3_test
implicit none
integer :: iret, outfile, ibufr
integer(kind=4), dimension(:), allocatable :: ivalues
integer(kind=8), dimension(:), allocatable :: lvalues
character(len=100) :: outfile_name
call getarg(1, outfile_name)
@ -21,10 +22,10 @@ program operator_3_test
stop 1
endif
allocate(ivalues(1))
ivalues=(/ -16383 /)
call codes_set(ibufr,'inputOverriddenReferenceValues',ivalues)
deallocate(ivalues)
allocate(lvalues(1))
lvalues=(/ -16383 /)
call codes_set(ibufr,'inputOverriddenReferenceValues',lvalues)
deallocate(lvalues)
allocate(ivalues(3))
ivalues=(/ 2,2,2 /)

View File

@ -0,0 +1,43 @@
! (C) Copyright 2005- 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.
!
!
program codes_load_file
use eccodes
implicit none
integer :: ifile, cnt, level, step
integer :: i, igrib, iret
character(len=32) :: infile_name = '../../data/index.grib'
call codes_open_file(ifile, infile_name, 'r')
call codes_any_load_all_from_file(ifile, cnt)
i = 45
call codes_any_new_from_loaded(i, igrib)
call codes_get(igrib, 'level', level)
call codes_get(igrib, 'stepRange', step)
print *, 'Num messages=', cnt
print *, 'Msg ',i,' level=',level, ' step=', step
call codes_release(igrib)
! Invalid msg number
i = 450
call codes_any_new_from_loaded(i, igrib, iret)
if (iret /= GRIB_INVALID_ARGUMENT) then
call codes_check(iret, 'Error', 'codes_any_new_from_loaded should have failed')
else
print *,'Invalid message index returned error (as expected)'
end if
call codes_close_file(ifile)
end program

21
examples/F90/codes_load_file.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
label='eccodes_f_codes_load_file'
temp=temp.$label.txt
# The input file is hard coded => data/index.grib
${examples_dir}/eccodes_f_codes_load_file > $temp
grep -q "Num messages= *384" $temp
grep -q "level= *700 step= *60" $temp
rm -f $temp

View File

@ -0,0 +1,43 @@
! (C) Copyright 2005- 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.
!
!
program codes_scan_file
use eccodes
implicit none
integer :: ifile, cnt, level, step
integer :: i, igrib, iret
character(len=32) :: infile_name = '../../data/index.grib'
call codes_open_file(ifile, infile_name, 'r')
call codes_any_scan_file(ifile,cnt)
i = 45
call codes_any_new_from_scanned_file(ifile, i, igrib)
call codes_get(igrib, 'level', level)
call codes_get(igrib, 'stepRange', step)
print *, 'Num messages=', cnt
print *, 'Msg ',i,' level=',level, ' step=', step
call codes_release(igrib)
! Invalid msg number
i = 450
call codes_any_new_from_scanned_file(ifile, i, igrib, iret)
if (iret /= GRIB_INVALID_ARGUMENT) then
call codes_check(iret, 'Error', 'codes_any_new_from_scanned_file should have failed')
else
print *,'Invalid message index returned error (as expected)'
end if
call codes_close_file(ifile)
end program

21
examples/F90/codes_scan_file.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
label='eccodes_f_codes_scan_file'
temp=temp.$label.txt
# The input file is hard coded => data/index.grib
${examples_dir}/eccodes_f_codes_scan_file > $temp
grep -q "Num messages= *384" $temp
grep -q "level= *700 step= *60" $temp
rm -f $temp

View File

@ -9,7 +9,7 @@
! Description: Count messages before processing
!
!
program get
program grib_count_messages
use eccodes
implicit none
@ -17,7 +17,7 @@ program get
integer :: iret
integer :: n
integer :: i
integer, dimension(:), allocatable :: igrib
integer, dimension(:), allocatable :: igrib
real :: latitudeOfFirstPointInDegrees
real :: longitudeOfFirstPointInDegrees
real :: latitudeOfLastPointInDegrees
@ -25,11 +25,10 @@ program get
integer :: numberOfPointsAlongAParallel
integer :: numberOfPointsAlongAMeridian
real, dimension(:), allocatable :: values
integer :: numberOfValues
integer(8) :: numberOfValues
real :: average, min_val, max_val
call codes_open_file(ifile, &
'../../data/tigge_pf_ecmwf.grib2', 'r')
call codes_open_file(ifile, '../../data/tigge_pf_ecmwf.grib2', 'r')
! count the messages in the file
call codes_count_in_file(ifile, n)
@ -106,4 +105,4 @@ program get
deallocate (igrib)
end program get
end program

View File

@ -12,6 +12,9 @@ program grib_ecc_1316
implicit none
integer :: iret, ostep, olevel, onumber
! Test both interfaces: 4 byte and 8 byte integers
integer(4) :: step_int = 96, level_int = 0, number_int = 0
integer(8) :: step_long = 96, level_long = 0, number_long = 0
character(len=80) :: parameterName
integer :: idx, igrib, count1 = 0
@ -19,9 +22,12 @@ program grib_ecc_1316
call codes_index_create(idx, '../../data/tigge_cf_ecmwf.grib2', &
'parameterName,number,level,step')
call codes_index_select(idx, 'step', 96)
call codes_index_select(idx, 'level', 0)
call codes_index_select(idx, 'number', 0)
call codes_index_select(idx, 'step', step_int)
call codes_index_select(idx, 'level', level_int)
call codes_index_select(idx, 'number', number_int)
call codes_index_select(idx, 'step', step_long)
call codes_index_select(idx, 'level', level_long)
call codes_index_select(idx, 'number', number_long)
call codes_index_select(idx, 'parameterName', 'Soil moisture')
do while (.true.)

View File

@ -21,8 +21,8 @@ program grib_get_keys
real :: longitudeOfFirstPointInDegrees
real :: latitudeOfLastPointInDegrees
real :: longitudeOfLastPointInDegrees
integer :: numberOfPointsAlongAParallel
integer :: numberOfPointsAlongAMeridian
integer(4) :: numberOfPointsAlongAParallel
integer(8) :: numberOfPointsAlongAMeridian
real, dimension(:), allocatable :: values
integer :: numberOfValues
real :: average, min_val, max_val

View File

@ -23,7 +23,7 @@ program index
character(len=20) :: oshortName
integer :: shortNameSize, numberSize, levelSize, stepSize
integer :: i, j, k, l
integer :: idx, igrib, count1
integer :: idx, idx1, igrib, count1
character(len=10) :: index_file = 'index.idx'
! uncomment following line to load index from file
@ -107,7 +107,10 @@ program index
! save the index to a file for later reuse
call codes_index_write(idx, index_file)
call codes_index_read(idx1, index_file)
call codes_index_release(idx)
call codes_index_release(idx1)
deallocate (level)
deallocate (shortName)

View File

@ -0,0 +1,31 @@
! (C) Copyright 2005- 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.
!
program find_nearest_4single
use eccodes
implicit none
integer :: infile, i
integer :: igrib
real(8) :: inlat = 5, inlon = 10
real(8) :: outlats(4), outlons(4)
real(8) :: values(4), distances(4)
integer(kind=kindOfInt) :: indexes(4)
call codes_open_file(infile, '../../data/reduced_gaussian_lsm.grib1', 'r')
call codes_grib_new_from_file(infile, igrib)
call codes_grib_find_nearest_four_single(igrib, .true., inlat, inlon, outlats, outlons, values, distances, indexes)
call codes_release(igrib)
call codes_close_file(infile)
print *, ' outlats outlons values distances indexes'
do i = 1, 4
write (*, '(F10.3, F10.3, F10.5, F10.3, I8)') outlats(i), outlons(i), values(i), distances(i), indexes(i)
end do
end program

View File

@ -0,0 +1,12 @@
#!/bin/sh
# (C) Copyright 2005- 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.ctest.sh
${examples_dir}/eccodes_f_grib_nearest_four_single

Some files were not shown because too many files have changed in this diff Show More