eccodes/definitions/grib3/section.01.def

97 lines
3.8 KiB
Modula-2

# (C) Copyright 2005- ECMWF.
# Section 1 - Originator Section
position offsetSection1;
section_length[4] section1Length ;
meta section1Pointer section_pointer(offsetSection1,section1Length,1);
unsigned[1] numberOfSection = 1 :read_only;
codetable[2] centre 'common/c-11.table' : dump,string_type;
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 ) {
alias centreForLocal=subCentre;
} else {
alias centreForLocal=centre;
}
#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]";
}
transient masterDir="grib3/tables/[tablesVersion]";
when (tablesVersion!=255) {
set masterDir="grib3/tables/[tablesVersion]";
} else {
set masterDir="grib3/tables/1";
}
codetable[1] identificationOfProject 'grib3/tables/[tablesVersion]/1.1.table' = 255 : dump;
# 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;}
}
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";
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";
# Type of processed data in this GRIB message
#codetable[1] typeOfProcessedData ('1.4.table',masterDir,localDir) = 255 : dump,string_type,no_fail;
#alias ls.dataType=typeOfProcessedData;
meta md5Section1 md5(offsetSection1,section1Length);
#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";}
#}
#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;
# template calendarIdentification "grib3/template.1.[calendarIdentificationTemplateNumber:i].def";
#}