# (C) Copyright 2005- 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. # include "parameters_version.def"; constant definitionFilesVersion="2.0.0.0" : hidden; constant internalVersion=30 : hidden; meta checkInternalVersion check_internal_version(internalVersion) : hidden; # ECC-806: Local concepts precedence order preferLocalConceptsEnvVar = getenv("ECCODES_GRIB_PREFER_LOCAL_CONCEPTS","0") : hidden; transient preferLocalConcepts = preferLocalConceptsEnvVar : hidden; constant defaultTypeOfLevel="unknown" : hidden; gribDataQualityChecks = getenv("ECCODES_GRIB_DATA_QUALITY_CHECKS","0") : hidden; if (gribDataQualityChecks) { template LIMITS "param_limits.def"; } # GRIBEX special boustrophedonic mode. See GRIB-472 # If the environment variable is not defined, the key will be 0 GRIBEX_boustrophedonic = getenv("ECCODES_GRIBEX_BOUSTROPHEDONIC","0") :hidden; constant zero=0 : hidden; constant one=1 : hidden; constant hundred=100 : hidden; transient truncateLaplacian=0 : hidden; constant marsDir="mars" : no_copy,hidden; constant present=1 : hidden; # alias epsStatistics=zero : hidden; constant defaultParameter = 0 : hidden; constant defaultName="unknown" :hidden; constant defaultShortName="unknown" : hidden; transient truncateDegrees=0 : hidden; transient dummy = 1 :hidden; constant unknown="unknown" : hidden; constant oneConstant=1 : hidden; constant thousand=1000 :hidden; constant oneMillionConstant=1000000 : hidden; constant grib1divider = 1000 : hidden; meta offset offset_file() : hidden; meta count count_file() : hidden; meta countTotal count_total() : hidden; transient file="unknown" : hidden; transient changingPrecision=0 : hidden; transient unitsFactor=1 : hidden; transient unitsBias=0 : hidden; constant globalDomain = "g"; transient timeRangeIndicatorFromStepRange=-1 : hidden; # Format specifiers for converting a number (float or int) into a string transient formatForDoubles = "%g" : no_copy,hidden; transient formatForLongs = "%ld" : no_copy,hidden; # ECC-868 transient produceLargeConstantFields = 0 : hidden; meta libraryVersion library_version() : hidden; lookup[4] kindOfProduct (0,identifier) : hidden; # grib templates # `ABCD` is a number, each letter being a byte if(kindOfProduct == `GRIB`){ lookup[1] GRIBEditionNumber (7,editionNumber) : edition_specific; template GRIB "grib[GRIBEditionNumber:l]/boot.def" ; } if(kindOfProduct == `BUDG` ){ template BUDG "budg/boot.def" ; } if(kindOfProduct == `DIAG`){ template DIAG "diag/boot.def" ; } if(kindOfProduct == `TIDE`){ template TIDE "tide/boot.def" ; } if(kindOfProduct == `BUFR`){ template BUFR "bufr/boot.def" ; #constant BUFRstr="BUFR"; #ECC-742 #alias identifier=BUFRstr; } if(kindOfProduct == `CDFX`){ template CDF "cdf/boot.def" ; constant CDFstr="netCDF"; alias ls.identifier=CDFstr; } if(kindOfProduct == 17632522 ){ template GTS "gts/boot.def" ; constant GTSstr="GTS"; alias ls.identifier=GTSstr; } if(kindOfProduct == `META` ){ template METAR "metar/boot.def" ; constant METARstr="METAR"; alias identifier=METARstr; } if(kindOfProduct == `TAF ` ){ template TAF "taf/boot.def" ; constant TAFstr="TAF"; alias ls.identifier=TAFstr; } if(kindOfProduct == 2303214662){ template HDF5 "hdf5/boot.def" ; constant HDF5str="HDF5"; alias ls.identifier=HDF5str; } if(kindOfProduct == `WRAP`){ template WRAP "wrap/boot.def" ; constant WRAPstr="WRAP"; alias ls.identifier=WRAPstr; } meta isMessageValid message_is_valid(kindOfProduct) : hidden;