Skip to content

Conversation

@ClaraDraper-NOAA
Copy link
Collaborator

Description of Changes:

Increased the lower bound allowed for soil moisture from 1 mm/layer to 0.1 mm/layer.
Also changed logic to allow soil moisture to be below the lower bound, but to prevent the DA increments themselves from reducing soil moisture below the lower bound.
The latter required moving the check into the code block where the increment is applied (and out of the do_stcsmc_adjustment conditional. This should really always be set to true, so I think this is OK.

Additional tidy up:
-removed old code monitoring the different types of updates, since the print statements for the results have been removed
-removed some excessive comments

Tests Conducted:

Compile and ran in global_workflow/ufs_model on URSA. results are as expected. The blocks of reduced sfc temps in very arid regions are now gone.

Dependencies:

N/A

Documentation:

N/A

Issue (optional):

Resolves issue #

Deleted code associated with already removed print statements
Deleted excess comments.
@ClaraDraper-NOAA
Copy link
Collaborator Author

@barlage Here's the PR for the STC check we were discussing yesterday.

* Change tfreeze to match that in NoahMP
* Only set SLC to SMC if temp newly > tfreez
@ClaraDraper-NOAA ClaraDraper-NOAA changed the title Increase lower bound for SLC in post-LIAU checks Bugfixes to SLC checks, post-LIAU Jan 12, 2026
@ClaraDraper-NOAA
Copy link
Collaborator Author

Updated PR to also update the value used to determine freezing soils.

Some figures showing impact on model output here

@barlage
Copy link
Collaborator

barlage commented Jan 13, 2026

Some figures showing impact on model output here

Access to the figures is not open

@ClaraDraper-NOAA
Copy link
Collaborator Author

Some figures showing impact on model output here

Access to the figures is not open

Thanks Mike - I just made them visible / commentable to anyone from NOAA.

@grantfirl
Copy link
Collaborator

@ClaraDraper-NOAA Is this PR ready for review and the UFS merge queue? I'm not seeing any supermodule PRs or regression testing that has been done, although I see that you tested in the global workflow on Ursa. Do you plan to open supermodule PRs and run the regression tests yourself?

integer :: nother, nsnowupd
integer :: nstcupd, nslcupd, nfrozen, nfrozen_upd
logical :: print_update_stats = .False.
real(kind=kind_phys), parameter :: tfreez_noahmp=273.16 ! tfreez used in NoahMP to determine frozen ground
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is there a reason why noahmp needs to redefine this constant? The host provides this value as a physical constant and it should be used to maintain consistency with the rest of physics.

Copy link
Collaborator

Choose a reason for hiding this comment

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

It looks like con_t0c (temperature_at_zero_celsius) is set to 273.15 and con_ttp (triple_point_temperature_of_water) is set to 273.16.

@grantfirl
Copy link
Collaborator

Most of the code changes look fine. I'll approve once the question about the freezing point constant is addressed and regression testing has been done.

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.

3 participants