CABLE-LSM / CABLE

Home to the CABLE land surface model and its documentation
https://cable.readthedocs.io/en/latest/
Other
12 stars 6 forks source link

soil moisture conservation in very dry and sandy conditions #365

Open har917 opened 3 months ago

har917 commented 3 months ago

Following analysis in the coupled model we have an identified a source of moisture imbalance in the default soil_snow scheme.

At the moment

This combination allows evaporation from dry soils (when '0.02>%wb>%swilt/2and%swilt < 0.02) which then leads tosurfbvcreating water to maintain%wb` at the hard-wired lower limit. To prevent this we need link the two limits together.

My suggestion

This then allows a single point for modification of the relevant lines.

This change will only impact soils where %swilt < 0.02 which, effectively, means almost pure sand. Until recently soils with such low values %swilt were not encountered in our standard configurations but the latest UM soil ancillaries do comprise regions where this occurs.


We may also need to consider what happens with alternate formulations for %wetfac which can allow evaporation at very low values of %wb

ccarouge commented 3 months ago

I would define wilt_limitfactor in cable_other_constants which already contains other "arbitrary" limits. Ideally, I would rather define wilt_limitfactor = soil%swilt/2.0 but that would mean having a run-specific and location-specific "constant" and I'm guessing that wouldn't play well with JULES. That would mean defining it somewhere else, and I'm not certain about adding it to soil%, as a derived parameter.

Anecdotally, would the name wilt_limit be specific enough but shorter to type?

har917 commented 2 months ago

While the latest fix to the AM3 code see #127 should avoid the occurrence of this %swilt related water imbalance - the solution isn't robust in that the fundamentals still exist (we've just moved the problem to a part of parameter space that we're unlikely to encounter with soil_snow and the updated UM soil ancillaries). It could well be encountered with other combinations of parameterisation schemes (such as Mark Decker's implementation of the alpha-form for soil evaporation)

A better solution would be/may be to shuffle water around the soil column if the model determines it needs to - i.e. diagnose how much water would be needed to keep the surface soil layer at a certain level of water content and extract that amount from the deepest soil layer if needed.

In addition - for global conservation in the coupled model - we should probably be capture any water that we do need to add as part of the %wb_lake term so it can be used in the river outflow scaling code.