File: section.1.4.def

package info (click to toggle)
eccodes 2.45.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 154,404 kB
  • sloc: cpp: 162,953; ansic: 26,308; sh: 21,742; f90: 6,854; perl: 6,361; python: 5,172; java: 2,226; javascript: 1,427; yacc: 854; fortran: 543; lex: 359; makefile: 283; xml: 183; awk: 66
file content (48 lines) | stat: -rw-r--r-- 1,824 bytes parent folder | download | duplicates (2)
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;