[Liwg-core] Follow-up from today's chat: resetting snow

Kampenhout, L. van (Leo) L.vanKampenhout at uu.nl
Wed Mar 29 00:03:51 MDT 2017


Hi Bill,

Sorry again about joining so late, even after asking that the call be rescheduled to accommodate my schedule….

Don’t worry about that, as I can imagine it wasn’t your fault at all.


Here are some thoughts from after the call.

Thanks for writing down these thoughts. Just for completeness, let me add here a few notes I took during the meeting.

Jan suggested three agenda items, or decisions to make.
1) value of Nmelt
2) spinup procedure, specifically which grid cells have there snow nudged / reset / removed (in this context, these all means the same thing)
3) snow height of resetted cells

Regarding 1), Raymonds work shows there is some indication that Nmelt = 0.5 sustains total ablation area extent better than Nmelt = 1.0. Further work is needed to prove that this isn’t just a transient phenomenon. Bill L indicates that he doesn’t like the general shape of the depletion curve for Nmelt = 0.5, specifically the sharp drop at the rightmost part of the curve, which corresponds to the onset of melt. However, he also acknowledged that because this parameter is not well constrained, we may use it as a tuning parameter and he could live with either value that we choose. We decided that the value of Nmelt = 0.5 should become the standard now.

Regarding 2), this specifically applies to the transition going from IG (with reanalysis forcing) to BG for the first time. We feel that any snow mass on tundra may be safely removed, and is probably the right thing to do. Furthermore, we may want to do something over glaciated columns, too. Two procedures are proposed by Jan and Miren:

- we may define a mask over glaciated grid cells, that indicates which columns (MEC columns) have there snow height reset and which not. This mask must be created once, for every resolution and code version, and may then be applied as often as needed, for any BG run that is initialised with the IG restart file. The application of the mask can be a namelist parameter. The way the mask is created is by erasing snow over ALL columns, and then look at snow trends over a certain climatological period. Columns with persistent positive snow trends have no resetting (mask = 0), columns that sustain seasonal snow are erased (mask = 1).

- alternatively, all snow is removed from the ice sheet, and then gradually built up again using a combination of IG / BG runs, where the IG runs are forced with BG output. Due to time constraints, and because the spinup procedure has already been decided on, this approach is deemed unfeasible at this late stage.

Regarding 3) we did not talk about this.

@Bill S, what would be the best time to incorporate the Nmelt = 0.5 change?


On the other hand, if a column initialized near h2osno_max shows snow is gradually decreasing, then that suggests that it may eventually reach a seasonally-snow-covered state on its own (with enough years of coupled spinup), so we may not need to do this re-initialization procedure. (However, I'm not sure if there's the possibility that the snow pack could shrink to, say, 5m, but then get stuck there, due to very dense snow layers.)\

In my head, refreezing only stops when either A) the snowpack turns to 0 degrees, or B) there is no more pore space left. I believe there is currently no code that “blocks” meltwater from penetrating a layer when its density is above a certain threshold. The only effect that dense layers have on refreezing is mechanism B) , as dense layers have less pore space. Hypothetically, a layer could have 0% pore space , but in the model, this has no effect on the drainage (all water that comes in is immediately ‘drained’ to the next layer below). So I agree with the claim that in a steady-state climate, there should be only two types of columns: those with 10m of snow in winter, and those with seasonal snow.


A possible implementation for handling this temporary capping came to mind right after the call, so I wrote it out. It's not 100% complete (and is UNTESTED!), but it did make me see that this wasn't as hard as I imagined it might be.

Thanks Bill, this looks good to me. However, I could see how this code will produce a mass imbalance in BalanceCheckMod. As a solution to that, some variable can be added that represents the ‘missing mass’, which may then be used in BalanceCheckMod.

Finally, a thought about the mask: I think we should have the mask dataset give something like the topographic height of the equilibrium line – rather than having column-by-column values of true vs. false. This will work a lot better if we want to run with a different number or definition of elevation classes: this mask dataset will be independent of the elevation class division. This could be built by taking the mean topographic height in between the lowest accumulation and highest ablation column in each grid cell (or something like that).

I like this idea .

Cheers,
Leo


On 28 Mar 2017, at 20:04, Bill Sacks <sacks at ucar.edu<mailto:sacks at ucar.edu>> wrote:

Hi all,

Sorry again about joining so late, even after asking that the call be rescheduled to accommodate my schedule....

Here are some thoughts from after the call.

We thought Raymond should continue his run for at least 30 years total.

The key question I'd like to know is: Are there many points where:

(1) If we start with snow at or near h2osno_max, then we stay at or near h2osno_max (10m) for the whole run

(2) If we start with snow near 0, then we remain only seasonally-snow-covered for the whole run.

If so, that suggests that there truly are multiple equilibria, and initialization is important.

On the other hand, if a column initialized near h2osno_max shows snow is gradually decreasing, then that suggests that it may eventually reach a seasonally-snow-covered state on its own (with enough years of coupled spinup), so we may not need to do this re-initialization procedure. (However, I'm not sure if there's the possibility that the snow pack could shrink to, say, 5m, but then get stuck there, due to very dense snow layers.)


A possible implementation for handling this temporary capping came to mind right after the call, so I wrote it out. It's not 100% complete (and is UNTESTED!), but it did make me see that this wasn't as hard as I imagined it might be... though this still neglects the handling of the mask, which I think is the hardest part (well, building the mask & getting it into CLM at all resolutions is really the hardest part). See attached files – the modified SnowHydrology, and a patch file that can be applied to clm4_5_14_r227. If we decide to just do the snow resetting for tundra points – not glacier points – then the attached implementation is nearly all we need, I think.

Finally, a thought about the mask: I think we should have the mask dataset give something like the topographic height of the equilibrium line – rather than having column-by-column values of true vs. false. This will work a lot better if we want to run with a different number or definition of elevation classes: this mask dataset will be independent of the elevation class division. This could be built by taking the mean topographic height in between the lowest accumulation and highest ablation column in each grid cell (or something like that).

Bill S


_______________________________________________
Liwg-core mailing list
Liwg-core at cgd.ucar.edu<mailto:Liwg-core at cgd.ucar.edu>
http://mailman.cgd.ucar.edu/mailman/listinfo/liwg-core
<SnowHydrologyMod.patch><SnowHydrologyMod.F90>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cgd.ucar.edu/pipermail/liwg-core/attachments/20170329/9a6c074e/attachment.html>


More information about the Liwg-core mailing list