-
Notifications
You must be signed in to change notification settings - Fork 341
Fix for RRTMGP errors caused by high surface temperatures. #3643
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
slevis-lmwg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving. I will start aux_clm to confirm nothing's broken. Also I will try rebasing to the post-5.4 branch to get this in more efficiently.
|
Rebasing didn't work, as it ended up with 44 files changed, so I reverted to master. I thought rebasing would apply the same changes but starting from post-5.4 instead of starting from master. Clearly there's something about rebasing that I don't get, because sometimes it does what I expect and sometimes not. Maybe if I update the post_5.4 branch to ctsm5.3.085? I will think about it. I will hold off on aux_clm for now. |
ekluzek
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@olyson thanks so much for figuring this out.
I had some simple suggestions. But, then when I looked closer I saw some other things that I think need to be done. And I then saw a way to make the code both clearer to humans and more maintainable so that the contents of the if blocks didn't need to be matched if something changed. So I think it's all worth doing.
|
I think keith has it correct. In some cases he found, stem area was
sufficiently large, but leaf area was too small. The boundary layer
conductances are calculated separately, so the model doesn't know that the
tiny leaf is part of a larger structure that would presumably alter the
conductance in this case. So the fix modifies the sa_leaf term for the
purpose of increasing the conductance.
…On Wed, Dec 3, 2025 at 1:48 PM Keith Oleson ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In src/biogeophys/CanopyFluxesMod.F90
<#3643 (comment)>:
> @@ -754,6 +754,19 @@ subroutine CanopyFluxes(bounds, num_exposedvegp, filter_exposedvegp,
frac_rad_abs_by_stem(p) = 0.0_r8
sa_stem(p) = 0.0_r8
sa_leaf(p) = sa_leaf(p) + esai(p)
+ else
+ ! Add esai to sa_leaf if elai is less than threshold.
+ ! Intended to avoid small sa_leaf which leads to small leaf conductance
+ ! and high leaf temperature. This in turn can lead to unrealistically
+ ! high surface temperatures passed to the atmospheric model (The RRTMGP
+ ! component in particular, which returns an error and stops the model
+ ! if the surface temperature is greater than 355K).
+ ! See #3589 for more info.
+ ! The 0.1_r8 value is fairly arbitrary but has been effective in
+ ! avoiding RRTMGP errors in CESM3 development simulations.
+ if(elai(p) .lt. 0.1_r8) then
+ sa_leaf(p) = sa_leaf(p) + esai(p)
From conversations with @swensosc <https://github.com/swensosc> I don't
think sa_stem should be set to zero, but pinging @swensosc
<https://github.com/swensosc> here to double-check. We still have stems,
we are just adding stems to very small leaf area to increase leaf
conductance and sensible heat.
I don't have a problem with the idea of creating a new function to handle
the existing code, allow for unit testing, etc. But this is out of scope
for this PR.
—
Reply to this email directly, view it on GitHub
<#3643 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGRN57EBN7VJY25AXXUVQO3375EC5AVCNFSM6AAAAACN3GZKY2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTKMZWHA3TAOBVGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
src/biogeophys/CanopyFluxesMod.F90
Outdated
| ! component in particular, which returns an error and stops the model | ||
| ! if the surface temperature is greater than 355K). | ||
| ! See https://github.com/ESCOMP/CTSM/issues/3589 for more info. | ||
| ! The 0.1_r8 value is arbitrary but has been effective in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this part of the comment is above, you could remove these two lines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, thanks. Done.
Description of changes
Specific notes
Contributors other than yourself, if any: @swensosc , @slevis-lmwg
CTSM Issues Fixed (include github issue #): #3589
Are answers expected to change (and if so in what way)? Yes (similar climate though)
Any User Interface Changes (namelist or namelist defaults changes)? No
Does this create a need to change or add documentation? Did you do so? Yes. No.
Testing performed, if any:
See #3589 for testing description. I have not run any CTSM system testing.