This file is indexed.

/usr/share/eccodes/definitions/grib3/template.component.5.1.def is in libeccodes-data 2.6.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Vertical Coordinate Template Component 5.1 - Vertical layer

#  Type of first fixed surface
codetable[1] typeOfFirstFixedSurface ('5.1.table',masterDir,localDir) : dump,no_copy,edition_specific,string_type;
meta unitsOfFirstFixedSurface codetable_units(typeOfFirstFixedSurface) : dump;
meta nameOfFirstFixedSurface codetable_title(typeOfFirstFixedSurface) : dump;

#  Scale factor of first fixed surface
signed[1] scaleFactorOfFirstFixedSurface = missing()  : can_be_missing,dump,no_copy,edition_specific;

#  Scaled value of first fixed surface
unsigned[4] scaledValueOfFirstFixedSurface = missing()  : can_be_missing,dump,no_copy,edition_specific;

#  Type of second fixed surface
codetable[1] typeOfSecondFixedSurface ('5.1.table',masterDir,localDir) = 255 : dump,no_copy,edition_specific;
meta unitsOfSecondFixedSurface codetable_units(typeOfSecondFixedSurface) : dump;
meta nameOfSecondFixedSurface codetable_title(typeOfSecondFixedSurface) : dump;

#  Scale factor of second fixed surface
signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific;

#  Scaled value of second fixed surface
unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific;


#######
transient pressureUnits="hPa";

concept_nofail vertical.typeOfLevel (unknown) {
#set uses the last one
#get returns the first match
  'surface'       = { typeOfFirstFixedSurface=1;   typeOfSecondFixedSurface=255;   }
  'cloudBase'     = { typeOfFirstFixedSurface=2;   typeOfSecondFixedSurface=255;   }
  'cloudTop'      = { typeOfFirstFixedSurface=3;   typeOfSecondFixedSurface=255;   }
  'isothermZero'  = { typeOfFirstFixedSurface=4;   typeOfSecondFixedSurface=255;   }
  'adiabaticCondensation' = {typeOfFirstFixedSurface=5;   typeOfSecondFixedSurface=255;  }
  'maxWind' = {typeOfFirstFixedSurface=6; typeOfSecondFixedSurface=255;}
  'tropopause' = {typeOfFirstFixedSurface=7; typeOfSecondFixedSurface=255;}
  'nominalTop' = {typeOfFirstFixedSurface=8; typeOfSecondFixedSurface=255; }
  'seaBottom' = {typeOfFirstFixedSurface=9;    typeOfSecondFixedSurface=255;}
  'isothermal' = {typeOfFirstFixedSurface=20;   typeOfSecondFixedSurface=255;}
  'isobaricInPa' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=255; pressureUnits='Pa'; }
  'isobaricInhPa' = {typeOfFirstFixedSurface=100; pressureUnits='hPa'; typeOfSecondFixedSurface=255;}
  'isobaricLayer' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=100;}
  'meanSea' = { typeOfFirstFixedSurface=101; typeOfSecondFixedSurface=255; }
  'heightAboveSea' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;}
  'heightAboveSeaLayer' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=102;}
  'heightAboveGround' = {typeOfFirstFixedSurface=103; typeOfSecondFixedSurface=255;}
  'heightAboveGroundLayer' = {typeOfFirstFixedSurface=103;typeOfSecondFixedSurface=103;}
  'sigma' = {typeOfFirstFixedSurface=104; typeOfSecondFixedSurface=255;}
  'sigmaLayer' = {typeOfFirstFixedSurface=104; typeOfSecondFixedSurface=104;}
  'hybrid' = {typeOfFirstFixedSurface=105; typeOfSecondFixedSurface=255;}
  'hybridHeight' = {typeOfFirstFixedSurface=118; typeOfSecondFixedSurface=255;}
  'hybridLayer' = {typeOfFirstFixedSurface=105; typeOfSecondFixedSurface=105; }
  'depthBelowLand' = {typeOfFirstFixedSurface=106;  typeOfSecondFixedSurface=255;}
  'depthBelowLandLayer' = {typeOfFirstFixedSurface=106; typeOfSecondFixedSurface=106;}
  'theta' = {typeOfFirstFixedSurface=107; typeOfSecondFixedSurface=255;}
  'thetaLayer' = {typeOfFirstFixedSurface=107;typeOfSecondFixedSurface=107;}
  'pressureFromGround' = {typeOfFirstFixedSurface=108; typeOfSecondFixedSurface=255;}
  'pressureFromGroundLayer' = {typeOfFirstFixedSurface=108;typeOfSecondFixedSurface=108;}
  'potentialVorticity' = {typeOfFirstFixedSurface=109; typeOfSecondFixedSurface=255;}
  'eta' = {typeOfFirstFixedSurface=111;  typeOfSecondFixedSurface=255;}
# In the case of Generalized vertical height coordinates, NV must be 6
  'generalVertical' = {genVertHeightCoords=1; typeOfFirstFixedSurface=150; NV=6;}
  'generalVerticalLayer' = {genVertHeightCoords=1; typeOfFirstFixedSurface=150; typeOfSecondFixedSurface=150; NV=6;}
  'depthBelowSea' = {typeOfFirstFixedSurface=160; typeOfSecondFixedSurface=255;}
  'entireAtmosphere' = {typeOfFirstFixedSurface=1;typeOfSecondFixedSurface=8;}
  'entireOcean' = {typeOfFirstFixedSurface=1;typeOfSecondFixedSurface=9;}
  'snow' = {typeOfFirstFixedSurface=114;typeOfSecondFixedSurface=255;}
  'snowLayer' = {typeOfFirstFixedSurface=114; typeOfSecondFixedSurface=114;}
}

alias levelType=typeOfFirstFixedSurface;

if (typeOfSecondFixedSurface == 255) {
  # Only one surface
  meta level g2level(typeOfFirstFixedSurface,
    scaleFactorOfFirstFixedSurface,
    scaledValueOfFirstFixedSurface,
    pressureUnits)  :dump;
  transient bottomLevel=level; # Do not use alias (see GRIB-725)
  transient topLevel=level;
} else {
  # Two surfaces
  meta topLevel g2level(typeOfFirstFixedSurface,
    scaleFactorOfFirstFixedSurface,
    scaledValueOfFirstFixedSurface,
    pressureUnits)  :dump;
  meta bottomLevel g2level(typeOfSecondFixedSurface,
    scaleFactorOfSecondFixedSurface,
    scaledValueOfSecondFixedSurface,
    pressureUnits)  :dump;
    alias level=topLevel;  # (see GRIB-725)
}
alias ls.level=level;
alias vertical.level=level;
alias vertical.bottomLevel=bottomLevel;
alias vertical.topLevel=topLevel;


# See GRIB-74 why we store the pressureUnits in a transient
transient tempPressureUnits=pressureUnits;
if (!(typeOfLevel is "surface")) {
    if (tempPressureUnits is "Pa") {
        meta marsLevel scale(level,one,hundred) : read_only;
        alias mars.levelist=marsLevel;
    } else {
        alias mars.levelist = level;
    }
}
alias mars.levtype  = typeOfFirstFixedSurface;
# GRIB-372: levelist alias does not pertain to surface parameters
if (levtype is "sfc") {
    unalias mars.levelist;
}

alias ls.typeOfLevel=typeOfLevel;