# Copyright 2005-2013 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.
#

label "Tile information";

#  Parameter category
codetable[1] parameterCategory ('4.1.[discipline:l].table',masterDir,localDir) : dump;

#  Parameter number
codetable[1] parameterNumber ('4.2.[discipline:l].[parameterCategory:l].table',masterDir,localDir)  : dump;
meta parameterUnits codetable_units(parameterNumber) : dump;
meta parameterName  codetable_title(parameterNumber) : dump;

# Tile specifications
codetable[1] tileClassification ('4.242.table',masterDir,localDir) : dump;
unsigned[1] numberOfTiles=1 : dump;
unsigned[1] identificationNumberOfTile : dump;
unsigned[1] numberOfAttributes=1 : dump;
unsigned[1] identificationNumberOfAttribute : dump;
codetable[1] attribute ('4.241.table',masterDir,localDir) : can_be_missing,dump;

#  Type of generating process
codetable[1] typeOfGeneratingProcess ('4.3.table',masterDir,localDir) : dump;

#  Background generating process identifier
# (defined by originating centre)
#DWD +4
if (centre == 78)  {
#codetable[1] backgroundProcess 'grib2/backgroundProcess.table' : dump ;
codetable[1] backgroundProcess ('backgroundProcess.table',masterDir,localDir) : dump ;
} else {
unsigned[1] backgroundProcess = 255 : edition_specific;
}
alias backgroundGeneratingProcessIdentifier=backgroundProcess;


#  Analysis or forecast generating processes identifier
# (defined by originating centre)
#DWD +4
if (centre == 78)  {
codetable[1] generatingProcessIdentifier ('generatingProcessIdentifier.table',masterDir,localDir) : dump ;
} else {
unsigned[1] generatingProcessIdentifier  : dump;
}

#  Hours of observational data cut-off after reference time
# NOTE 1 NOT FOUND
unsigned[2] hoursAfterDataCutoff =missing() : edition_specific,can_be_missing;
alias hoursAfterReferenceTimeOfDataCutoff=hoursAfterDataCutoff;

#  Minutes of observational data cut-off after reference time
unsigned[1]  minutesAfterDataCutoff = missing() : edition_specific,can_be_missing;
alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;

#  Indicator of unit of time range
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir)  : dump;
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;


#  Forecast time in units defined by octet 18
unsigned[4] forecastTime  : dump;


