Skip to content

Conversation

@swensosc
Copy link
Contributor

@swensosc swensosc commented Jan 8, 2026

Description of changes

Add a correction for oversaturated soil layers immediately after the soil water flux calculation in SoilWaterMovementMod.

Specific notes

Contributors other than yourself, if any:

CTSM Issues Fixed (include github issue #):

Are answers expected to change (and if so in what way)?

Any User Interface Changes (namelist or namelist defaults changes)?

Does this create a need to change or add documentation? Did you do so?

Testing performed, if any:
(List what testing you did to show your changes worked as expected)
(This can be manual testing or running of the different test suites)
(Documentation on system testing is here: https://github.com/ESCOMP/ctsm/wiki/System-Testing-Guide)
(aux_clm on derecho for intel/gnu and izumi for intel/gnu/nag/nvhpc is the standard for tags on master)

NOTE: Be sure to check your coding style against the standard
(https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines) and review
the list of common problems to watch out for
(https://github.com/ESCOMP/CTSM/wiki/List-of-common-problems).

@wwieder wwieder added next this should get some attention in the next week or two. Normally each Thursday SE meeting. priority: Immediate Highest priority, something that was unexpected labels Jan 8, 2026
@wwieder
Copy link
Contributor

wwieder commented Jan 8, 2026

Thanks for opening this PR, Sean. Have you done any scientific tests of the code or can you describe expected behavior / answer changes? Would a short SP run be enough to quantify differences? Are we safer doing a BGC run to see if there are C cycle changes?

Fixes part two listed in #3679

@samsrabin samsrabin requested review from wwieder and removed request for wwieder January 8, 2026 17:33
@samsrabin
Copy link
Member

CTSM SE meeting 2026-01-08: @wwieder will do some scientific testing.

over_saturation = max(h2osoi_liq(c,j)-(eff_porosity(c,j)*m_to_mm*dz(c,j)),0._r8)
h2osoi_liq(c,j) = min(eff_porosity(c,j)*m_to_mm*dz(c,j), h2osoi_liq(c,j))
h2osoi_liq(c,j-1) = h2osoi_liq(c,j-1) + over_saturation
end do
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wwieder says this is already happening somewhere else. Let's convert to a function that can be reused.

@samsrabin samsrabin removed the next this should get some attention in the next week or two. Normally each Thursday SE meeting. label Jan 8, 2026
@wwieder
Copy link
Contributor

wwieder commented Jan 9, 2026

I'm running a 30 year BCG-Crop case from my:

  • 5.4.004 sandbox; (~/CTSM/); on an
  • Oversaturation branch with these changes to SoilWaterMovement; that is
  • cloned from ctsm5.4.004_bgc_f09_131_HIST; and using
  • initial conditions from
    finidat = '/glade/derecho/scratch/wwieder/archive/ctsm5.4.004_bgc_f09_131_HIST/rest/1994-01-01-00000/ctsm5.4.004_bgc_f09_131_HIST.clm2.r.1994-01-01-00000.nc'.

The case directory is:
/glade/work/wwieder/ctsm5.4.0/ctsm5.4.004_bgc_f09_Oversaturation_131b_HIST

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: Immediate Highest priority, something that was unexpected

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants