Skip to content

Add new snow interception modules from Alex's PhD thesis#471

Open
acebulsk wants to merge 20 commits intosrlabUsask:masterfrom
acebulsk:alex-ceb-thesis-changes
Open

Add new snow interception modules from Alex's PhD thesis#471
acebulsk wants to merge 20 commits intosrlabUsask:masterfrom
acebulsk:alex-ceb-thesis-changes

Conversation

@acebulsk
Copy link
Collaborator

Implemented new canopy snow energy and mass budgets as new CRHM modules. The main changes are the addition of two new modules to represent the initial loading of snow in the canopy:

CanopyVectorBased which follows developments from:

Cebulski, A. C., & Pomeroy, J. W. (2025). Snow Interception Relationships With Meteorology and
Canopy Density. Hydrological Processes, 39(4), e70135. https://doi.org/10.1002/hyp.70135

the second module CanopySnowBalance follows developments from:

Cebulski, A. C., & Pomeroy, J. W. (under review). Processes Governing the Ablation of Intercepted
Snow. Water Resources Research.

Together these new modules replace the canopy snow routines previously incorporated in CanopyClearingGap. The original radiation routines in CanopyClearingGap were copied over to the CanopyVectorBased module which feeds into the surface snowpack routines so CanopyClearingGap is no longer needed.

See individual commits for additional details.

…lculations. This calculates the initial accumulation/interception of snow in the canopy following:

Cebulski, A. C., & Pomeroy, J. W. (2025). Snow Interception Relationships With Meteorology and
Canopy Density. Hydrological Processes, 39(4), e70135. https://doi.org/10.1002/hyp.70135

Interception efficiency is calculated as a function of atmospheric snowfall and canopy density. Canopy density is defined using the snow-leaf contact area which is approximated as function of nadir canopy coverage and the hydrometeor trajectory angle. Applicable for a range of forest densities that do not have large clearings/clear cuts.
…es.h` so they can be shared with the new `CanopySnowBalance` module. Snobal functionality remains the same.

A comment was also added in ref to issue https://github.com/issues/created?issue=srlabUsask%7Ccrhmcode%7C465
… which provide physically-based methods to handle the mass and energy balance of snow intercepted in the canopy following:

Cebulski, A. C., & Pomeroy, J. W. (under review). Processes Governing the Ablation of Intercepted
Snow. Water Resources Research.

This module is designed to be paired with the `CanopyVectorBased` module and together replace the typically used `CanopyClearingGap` module.
… the Harder method typically returns non zero even for warm/cold temps.
@loganxingfang loganxingfang self-requested a review March 23, 2026 17:36
loganxingfang and others added 6 commits March 23, 2026 11:44
Removed unused parameters “Surrounding_Ht”, "Gap_diameter", "CanopyClearing".
Edited description for parameter “CanopyWindSwitchIP”.
Removed unused parameters “Surrounding_Ht”, "Gap_diameter", "CanopyClearing".
This is the same discussion for srlabUsask#465
It is in the original Snobal's _precip.c file. The h2o can come from existing h2o stored in snowcover, melt, or rain. I leave this code as it is, because removing it could impact others' models that are built in warmer and more temperate climates.
The code m_snow[hh] = 0.0 on original line 298 is within else statement when snowcover is false, giving value of 0. It is not for condition if(m_snow_X[hh] > 0.0) is false.
Edited description for parameters “CanopyWindSwitchCanSno” and "MassUnloadingSwitch".
Added parameters "unld_to_melt_ratio_m" and "unld_to_melt_ratio_b" for for unloading to melt ratio.
Added parameters "unld_to_melt_ratio_m" and "unld_to_melt_ratio_b" for for unloading to melt ratio.
Included "unld_to_melt_ratio_m" and "unld_to_melt_ratio_b" as parameters for unloading to melt ratio.
Also included ClassCanopySnowBalanceBase and ClassCanopySnowBalanceCRHM in Makefile in case they are called.
Edited comments of switch cases for MassUnloadingSwitch.
This small change could impact others' model. For this time, not merge this.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants