Draft
Conversation
This was
linked to
issues
Feb 9, 2026
kmdeck
commented
Feb 10, 2026
bcf4e50 to
1ce9a71
Compare
kmdeck
commented
Feb 18, 2026
kmdeck
commented
Feb 18, 2026
kmdeck
commented
Feb 18, 2026
| T_canopy = ClimaLand.Canopy.canopy_temperature(canopy.energy, canopy, Y, p) | ||
|
|
||
| ϵ_soil = land.soil.parameters.emissivity | ||
| T_soil = ClimaLand.Domains.top_center_to_surface(p.soil.T) |
Member
Author
There was a problem hiding this comment.
This is technically T_soil at the next step
kmdeck
commented
Feb 18, 2026
| ϵ_canopy * LW_u_snow * p.snow.snow_cover_fraction | ||
| ) # area weighted by snow cover fraction, OK | ||
|
|
||
| @. LW_u = |
Member
Author
There was a problem hiding this comment.
As long as this is defined this way, I think we should have conservation with atmos
a793d82 to
581bd24
Compare
3a4c0ce to
a4309b8
Compare
8fb40fc to
cab64e6
Compare
cab64e6 to
1ddd118
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
A previous PR made it possible to compute certain fluxes using the values of the state at the current step (explicit) and others with fluxes computed using the state (of implicit variables) at the next step.
The soil boundary fluxes should be explicit
The snow boundary fluxes should be explicit
All interaction fluxes should be explicit (root extraction, eg)
Canopy SHF, LHF, LW_n needs to be implicit (evaluated with T_canopy at next step).
Note that soil prognostic vars are implicit, so the implicit state also includes T_soil computed from rhoe_int.
Our goal is to make it so the fluxes stored in the cache are consistent with the fluxes being used as boundary conditions for soil/canopy/snow. This should enable enforcing conservation.
Purpose
(1) Split radiation updates into LW and SW pieces. This is because LW pieces require being part of the implicit tendency for the canopy, and require knowledge about other components in the land model, while SW can be explicit for all components.
(2) Split radiation updates into explicit and implicit updates
(3) Unify sign convention for radiation: LW_n and SW_n are positive if upwards. This required a change in the canopy and in the canopy.soil model
If we want to change the sign convention later on, we can, but for now this makes all land components consistent
To-do
Content