@@ -277,6 +277,16 @@ void setSoilLayerTypeOfLevel(GribEncoder& g, const std::string& typeOfLevel, lon
277
277
g.setValue (" scaledValueOfSecondFixedSurface" , level);
278
278
}
279
279
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
+
280
290
using TypeOfLevelSetter = std::function<void (GribEncoder&, const std::string&, long )>;
281
291
282
292
const std::map<std::string, TypeOfLevelSetter> typeOfLevelSetters{
@@ -287,9 +297,9 @@ const std::map<std::string, TypeOfLevelSetter> typeOfLevelSetters{
287
297
{" lowCloudLayer" , &setLevelUnrelatedTypeOfLevel},
288
298
{" highCloudLayer" , &setLevelUnrelatedTypeOfLevel},
289
299
{" meanSea" , &setLevelUnrelatedTypeOfLevel},
300
+ {" iceLayerOnWater" , &setMissingFixedSurface},
290
301
};
291
302
292
-
293
303
template <typename Dict>
294
304
QueriedMarsKeys setMarsKeys (GribEncoder& g, const Dict& md) {
295
305
QueriedMarsKeys ret;
@@ -849,6 +859,7 @@ void GribEncoder::setOceanMetadata(message::Metadata& md) {
849
859
setValue (" scaleFactorOfFirstFixedSurface" , 0l );
850
860
}
851
861
862
+
852
863
std::string gridType;
853
864
const auto searchGridType = md.find (glossary ().gridType );
854
865
if (searchGridType != md.end () && searchGridType->second .get <std::string>() == " unstructured_grid" ) {
0 commit comments