eccodes/definitions/grib3/section.01.def

97 lines
3.8 KiB
Modula-2
Raw Permalink Normal View History

2020-01-28 14:32:34 +00:00
# (C) Copyright 2005- ECMWF.
# Section 1 - Originator Section
2016-08-16 16:53:11 +00:00
position offsetSection1;
section_length[4] section1Length ;
meta section1Pointer section_pointer(offsetSection1,section1Length,1);
unsigned[1] numberOfSection = 1 :read_only;
2017-05-08 16:27:41 +00:00
codetable[2] centre 'common/c-11.table' : dump,string_type;
2016-08-16 16:53:11 +00:00
alias identificationOfOriginatingGeneratingCentre=centre;
meta centreDescription codetable_title(centre);
alias parameter.centre=centre;
alias ls.centre=centre;
alias originatingCentre=centre;
unsigned[2] subCentre : dump;
_if (subCentre==98 ) {
2016-08-17 17:44:44 +00:00
alias centreForLocal=subCentre;
2016-08-16 16:53:11 +00:00
} else {
2016-08-17 17:44:44 +00:00
alias centreForLocal=centre;
2016-08-16 16:53:11 +00:00
}
2017-05-08 16:27:41 +00:00
#codetable[1] tablesVersion 'grib3/tables/1.0.table' = 1 : edition_specific;
#alias gribMasterTablesVersionNumber=tablesVersion;
codetable[1] localTablesVersion 'grib3/tables/[tablesVersion]/1.0.table' ;
alias versionNumberOfGribLocalTables=localTablesVersion;
transient localDir="";
if (localTablesVersion != 0) {
transient localDir="grib3/tables/local/[centre]/[localTablesVersion]";
}
2016-08-16 16:53:11 +00:00
transient masterDir="grib3/tables/[tablesVersion]";
when (tablesVersion!=255) {
set masterDir="grib3/tables/[tablesVersion]";
} else {
2016-08-17 17:44:44 +00:00
set masterDir="grib3/tables/1";
2016-08-16 16:53:11 +00:00
}
2017-05-16 13:42:32 +00:00
codetable[1] identificationOfProject 'grib3/tables/[tablesVersion]/1.1.table' = 255 : dump;
2016-08-16 16:53:11 +00:00
2016-08-17 17:44:44 +00:00
# Production status of processed data in this GRIB message
codetable[1] productionStatusOfProcessedData ('1.2.table',masterDir,localDir) : dump;
concept is_uerra(zero) {
'1' = {productionStatusOfProcessedData=9;}
'1' = {productionStatusOfProcessedData=8;}
'0' = {dummy=1;}
}
2016-08-16 16:53:11 +00:00
2016-08-17 17:44:44 +00:00
unsigned[2] originatorLocalTemplateNumber = missing() : dump,edition_specific,can_be_missing;
unsigned[2] lengthOfOriginatorLocalTemplate = 0: dump,edition_specific;
template_nofail originatorLocalTemplate "grib3/template.1.originator.[originatorLocalTemplateNumber:i].def";
2016-08-16 16:53:11 +00:00
2016-08-17 17:44:44 +00:00
unsigned[2] projectLocalTemplateNumber = missing() : dump,edition_specific,can_be_missing;
unsigned[2] lengthOfProjectLocalTemplate = 0: dump,edition_specific;
template_nofail projectLocalTemplate "grib3/template.1.project.[projectLocalTemplateNumber:i].def";
2016-08-16 16:53:11 +00:00
# Type of processed data in this GRIB message
2016-08-17 17:44:44 +00:00
#codetable[1] typeOfProcessedData ('1.4.table',masterDir,localDir) = 255 : dump,string_type,no_fail;
#alias ls.dataType=typeOfProcessedData;
2016-08-16 16:53:11 +00:00
meta md5Section1 md5(offsetSection1,section1Length);
2017-05-08 16:27:41 +00:00
#meta selectStepTemplateInterval select_step_template(productDefinitionTemplateNumber,0); # 0 -> not instant
#meta selectStepTemplateInstant select_step_template(productDefinitionTemplateNumber,1); # 1 -> instant
#transient stepTypeInternal="instant" : hidden,no_copy;
#concept stepType {
# "instant" = {selectStepTemplateInstant=1; stepTypeInternal="instant";}
# "avg" = {selectStepTemplateInterval=1; stepTypeInternal="avg";}
# "avgd" = {selectStepTemplateInterval=1; stepTypeInternal="avgd";}
# "accum" = {selectStepTemplateInterval=1; stepTypeInternal="accum";}
# "max" = {selectStepTemplateInterval=1; stepTypeInternal="max";}
# "min" = {selectStepTemplateInterval=1; stepTypeInternal="min";}
# "diff" = {selectStepTemplateInterval=1; stepTypeInternal="diff";}
# "rms" = {selectStepTemplateInterval=1; stepTypeInternal="rms";}
# "sd" = {selectStepTemplateInterval=1; stepTypeInternal="sd";}
# "cov" = {selectStepTemplateInterval=1; stepTypeInternal="cov";}
# "ratio" = {selectStepTemplateInterval=1; stepTypeInternal="ratio";}
#}
2016-08-16 16:53:11 +00:00
2016-08-17 17:44:44 +00:00
#transient setCalendarId = 0 ;
#transient deleteCalendarId = 0 ;
#alias calendarIdPresent = zero;
#if ( ((section1Length > 21) or setCalendarId > 0) and deleteCalendarId == 0) {
# alias calendarIdPresent = present;
# codetable[2] calendarIdentificationTemplateNumber ('1.5.table',masterDir,localDir) : dump,string_type,no_fail;
2017-05-08 16:27:41 +00:00
# template calendarIdentification "grib3/template.1.[calendarIdentificationTemplateNumber:i].def";
2016-08-17 17:44:44 +00:00
#}