MESH-Model / MESH-Dev

This repository contains the official MESH development code, which is the basis for the 'tags' listed under the MESH-Releases repository. The same tags are listed under this repository. Legacy branches and utilities have also been ported from the former SVN (Subversion) repository. Future developments must create 'forks' from this repository.
Other
2 stars 3 forks source link

Snow depth capping (at 10m) and blowing snow #5

Open mee067 opened 1 year ago

mee067 commented 1 year ago

I have been running with the CLASSW block that caps snow depth at 10m and hit some crashes (CLASSZ -2 Energy balance error) for high-elevation tiles around glaciers. Glaciers have a mechanism to get rid of excessive snow (via SWELIM and SNDENLIM which are now configurable) but other tiles do not have such a mechanism and thus capping ZSNOW at 10m may be the only solution for long simulations to prevent snow from piling up over the years - we do not have avalanching implemented. CLASSZ checks water and energy balance at the tile level and is called after the snow is blown (PBSM_within_tile) but before it is redistributed/deposited (PBSM_within_grid). PBSMrun is the routine responsible for the blowing and it does update the snow states for all sub-areas and at the tile level, therefore I am not sure why I got large discrepancies in the energy balance. However, I solved the issue by moving the snow depth capping block to RUNCLASS36_module after the call of PBSM_within_tile and before CLASSZ is called to do the checks for both cases (PBSM on or off). The CLASSW snow depth capping block is commented to remove the duplication.

This resolved the issue but I am wondering why CLASSZ is called before redistribution and not after it. Snow redistribution (by REDISTRIB_SNOW which is called by PBSM_within_grid) does update the snow states for all sub-areas and tile levels.

dprincz commented 1 month ago

This since ties to the conceptual needs for (a) preserving ice between time-steps and (b) extending the ability in ICEBAL to convert packed snow to ice, regardless of whether specified as a "glacier" by SAND. This is an issue among models, including SVS, with various workarounds already implemented. We should explore this further. @fuadyassin @mee067