remove the need to unalias mars.levelist (#254)

Co-authored-by: Sebastien Villaume <sebastien.villaume@ecmwf.int>
This commit is contained in:
shahramn 2024-10-16 14:18:44 +01:00 committed by GitHub
parent 041f521e37
commit 4fb9cea2e3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 5 additions and 8 deletions

View File

@ -64,11 +64,15 @@ if (extraDim) {
alias mars.levelist = dimension;
alias mars.levtype = dimensionType;
} else {
# ECC-1333: levtype should be read-only in GRIB2
concept mars.levtype(unknown,"marsLevtypeConcept.def",conceptsDir2,conceptsDir1):no_copy, read_only;
# GRIB-372: levelist alias does not pertain to surface parameters
transient tempLevtype = levtype; # Faster to copy the concept so we evaluate it once
# See GRIB-74 why we store the pressureUnits in a transient
transient tempPressureUnits=pressureUnits;
# Same as typeOfLevel != "surface" but much quicker to evaluate
# than via the concept
if ( ! (typeOfFirstFixedSurface == 1 && typeOfSecondFixedSurface == 255) ) {
if ( ! ((typeOfFirstFixedSurface == 1 && typeOfSecondFixedSurface == 255) || tempLevtype is "sfc" || tempLevtype is "o2d")) {
if (tempPressureUnits is "Pa") {
meta marsLevel scale(level,one,hundred) : read_only;
alias mars.levelist=marsLevel;
@ -76,13 +80,6 @@ if (extraDim) {
alias mars.levelist = level;
}
}
# ECC-1333: levtype should be read-only in GRIB2
concept mars.levtype(unknown,"marsLevtypeConcept.def",conceptsDir2,conceptsDir1):no_copy, read_only;
# GRIB-372: levelist alias does not pertain to surface parameters
transient tempLevtype = levtype; # Faster to copy the concept so we evaluate it once
if (tempLevtype is "sfc" || tempLevtype is "o2d") {
unalias mars.levelist;
}
}
# See ECC-854, ECC-1435, ECC-1451, ECC-1462