mirror of https://github.com/ecmwf/eccodes.git
74 lines
3.0 KiB
Modula-2
74 lines
3.0 KiB
Modula-2
# Copyright 2005-2018 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.
|
|
#
|
|
|
|
# GRIB-530: This template is to be used by template.4.44.def ONLY
|
|
|
|
# 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;
|
|
|
|
# Atmospheric chemical or physical constitutent type
|
|
codetable[2] aerosolType ('4.233.table',masterDir,localDir) : dump;
|
|
|
|
codetable[1] typeOfSizeInterval ('4.91.table',masterDir,localDir) : dump;
|
|
alias typeOfIntervalForFirstAndSecondSize=typeOfSizeInterval;
|
|
|
|
signed[1] scaleFactorOfFirstSize : dump;
|
|
signed[4] scaledValueOfFirstSize :dump;
|
|
signed[1] scaleFactorOfSecondSize = missing() : can_be_missing,dump;
|
|
signed[4] scaledValueOfSecondSize = missing() : 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)
|
|
unsigned[1] backgroundProcess = 255 : edition_specific;
|
|
alias backgroundGeneratingProcessIdentifier=backgroundProcess;
|
|
|
|
|
|
# Analysis or forecast generating processes identifier
|
|
# (defined by originating centre)
|
|
unsigned[1] generatingProcessIdentifier : dump;
|
|
|
|
# Hours of observational data cut-off after reference time
|
|
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
|
|
# See GRIB-530: We have to make a special case for the error in WMO spec
|
|
if ( new() || (section4Length - 4*NV == 45) )
|
|
{
|
|
# Use the WMO standard 2 octets for the following cases:
|
|
# Newly created messages
|
|
# Existing gribs which have 45 bytes before the pv array
|
|
# The 45 bytes = length of product def template 4.44
|
|
unsigned[2] forecastTime : dump;
|
|
}
|
|
else
|
|
{
|
|
# This is for existing gribs which were written with 4 octets (GRIB-29: supports negative forecast time)
|
|
signed[4] forecastTime : dump;
|
|
}
|
|
|