Skip to content

Commit a3a6e75

Browse files
Add missing to Encoding of Levtype iceLayerOnWater (#44)
1 parent 2c04b5d commit a3a6e75

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

Diff for: src/multio/action/encode/GribEncoder.cc

+12-1
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,16 @@ void setSoilLayerTypeOfLevel(GribEncoder& g, const std::string& typeOfLevel, lon
277277
g.setValue("scaledValueOfSecondFixedSurface", level);
278278
}
279279

280+
void setMissingFixedSurface(GribEncoder& g, const std::string& typeOfLevel, long level) {
281+
g.setValue("typeOfLevel", typeOfLevel);
282+
283+
g.setMissing(glossary().scaleFactorOfFirstFixedSurface);
284+
g.setMissing(glossary().scaledValueOfFirstFixedSurface);
285+
g.setMissing(glossary().scaleFactorOfSecondFixedSurface);
286+
g.setMissing(glossary().scaledValueOfSecondFixedSurface);
287+
288+
}
289+
280290
using TypeOfLevelSetter = std::function<void(GribEncoder&, const std::string&, long)>;
281291

282292
const std::map<std::string, TypeOfLevelSetter> typeOfLevelSetters{
@@ -287,9 +297,9 @@ const std::map<std::string, TypeOfLevelSetter> typeOfLevelSetters{
287297
{"lowCloudLayer", &setLevelUnrelatedTypeOfLevel},
288298
{"highCloudLayer", &setLevelUnrelatedTypeOfLevel},
289299
{"meanSea", &setLevelUnrelatedTypeOfLevel},
300+
{"iceLayerOnWater", &setMissingFixedSurface},
290301
};
291302

292-
293303
template <typename Dict>
294304
QueriedMarsKeys setMarsKeys(GribEncoder& g, const Dict& md) {
295305
QueriedMarsKeys ret;
@@ -849,6 +859,7 @@ void GribEncoder::setOceanMetadata(message::Metadata& md) {
849859
setValue("scaleFactorOfFirstFixedSurface", 0l);
850860
}
851861

862+
852863
std::string gridType;
853864
const auto searchGridType = md.find(glossary().gridType);
854865
if (searchGridType != md.end() && searchGridType->second.get<std::string>() == "unstructured_grid") {

0 commit comments

Comments
 (0)