1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
# (C) Copyright 2005- ECMWF.
position offsetSection1;
section_length[3] section1Length ;
unsigned[1] masterTableNumber : dump ;
codetable[2] bufrHeaderCentre 'common/c-11.table' : dump;
unsigned[2] bufrHeaderSubCentre : dump;
alias ls.centre=bufrHeaderCentre;
unsigned[1] updateSequenceNumber : dump;
flags[1] section1Flags 'bufr/section1_flags.table' = 128 : hidden ; # = section 2 present
unsigned[1] dataCategory : dump;
unsigned[1] internationalDataSubCategory = 255 : dump;
unsigned[1] dataSubCategory : dump;
unsigned[1] masterTablesVersionNumber : dump;
unsigned[1] localTablesVersionNumber : dump;
unsigned[2] typicalYear : dump;
transient typicalYearOfCentury = typicalYear % 100;
#transient typicalCentury = ( typicalYear2 - typicalYearOfCentury ) / 100 + 1 ;
unsigned[1] typicalMonth : dump;
unsigned[1] typicalDay : dump;
unsigned[1] typicalHour : dump;
unsigned[1] typicalMinute : dump;
unsigned[1] typicalSecond : dump;
if (typicalYear < 100) {
# ECC-556: invalid year corrected. Assume 21st century!
# Also see ECC-2037
transient typicalYear2 = (2000 + typicalYear) : hidden;
meta ls.typicalDate sprintf("%.4d%.2d%.2d",typicalYear2,typicalMonth,typicalDay) : dump,no_copy;
meta typicalDateTime julian_date(typicalYear2,typicalMonth,typicalDay,typicalHour,typicalMinute,typicalSecond) : no_copy;
} else {
meta ls.typicalDate sprintf("%.4d%.2d%.2d",typicalYear,typicalMonth,typicalDay) : dump,no_copy;
meta typicalDateTime julian_date(typicalYear,typicalMonth,typicalDay,typicalHour,typicalMinute,typicalSecond) : no_copy;
}
meta ls.typicalTime sprintf("%.2d%.2d%.2d",typicalHour,typicalMinute,typicalSecond) :dump,no_copy;
alias ls.masterTablesVersionNumber=masterTablesVersionNumber;
alias ls.localTablesVersionNumber=localTablesVersionNumber;
section_padding section1Padding;
|