Skip to content

Conversation

@grantfirl
Copy link
Collaborator

@grantfirl grantfirl commented Jul 14, 2025

Description of Changes:

See https://docs.google.com/presentation/d/1LJbCrCVGYDvm0UPo8SR4KP6fT1VFocg-xLG399qGQ1w/edit?slide=id.g371ddcb3c06_0_238#slide=id.g371ddcb3c06_0_238 for a complete description.

Main points:

  • Converts all primary schemes to return tendencies rather than modify the physics state
  • Adds code to interstitial schemes to apply tendencies based on control from the host
  • Other minor changes (including lots of metadata changes) to implement the above
  • Obsolete schemes removed:
    • GFS_MP_generic_pre.F90
    • GFS_DCNV_generic_pre.F90
    • GFS_SCNV_generic_pre.F90
    • GFS_suite_stateout_reset.F90
    • GFS_suite_stateout_update.F90
    • mp_tempo_pre.F90
    • mp_thompson_pre.F90
  • New schemes:
    • GFS_photochemistry_post.F90 (because there was no generic interstitial scheme for this to apply tendencies)
    • mynnedmf_wrapper_post.F90 (because it doesn't use GFS_PBL_generic_post.F90)

Tests Conducted:

See the linked slides. This was tested in the following ways:

  • standard UFS regression tests (should change baseline results for most/all tests that actually run physics, although changes SHOULD be similar to a compiler change; scientific results should NOT change)
  • SCM tests comparing selected suites before/after differences to compiler/debug mode differences
  • UFS tests comparing selected suites before/after differences to compiler/debug mode differences

Dependencies:

None

Documentation:

TODO

Issue (optional):

None

Contributors (optional):

@grantfirl @VanderleiVargas-NOAA

grantfirl and others added 30 commits December 12, 2024 12:07
…emove *_of_new_state (default name refers to 'current' value)
…medmfvdifq return new tendencies and new tendency application block in GFS_PBL_generic_post
- Added tendency variables (`ten_t`, `ten_u`, `ten_v`) for temperature and wind tendencies in SAMF deep and shallow convection schemes.
- Updated relevant `.meta` files to reflect changes in variable intent (`inout` -> `in` where appropriate) and added tendencies.
- Modified Interstitials (`GFS_DCNV_generic_post`, `GFS_DCNV_generic_pre`, `GFS_SCNV_generic_post`, `GFS_SCNV_generic_pre`) to directly use tendencies instead of saved state variables.
- Removed redundant saved variables (`save_u`, `save_v`, `save_t`).
- Added `delt` to post interstitials.
…endency paradigm; cleanup saving of states no longer needed
real(kind_phys), intent( out) :: ten_chw(:,:)
real(kind_phys), intent( out), optional :: ten_chl(:,:)
real(kind_phys), intent( out) :: ten_vh(:,:)
real(kind_phys), intent( out) :: ten_vhl(:,:)
Copy link
Collaborator

Choose a reason for hiding this comment

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

ten_vhl would also be optional like qhl, chl (all are hail variables)

if ( nssl_3moment ) then
ten_zrw = 0.0
ten_zhw = 0.0
ten_zhl = 0.0
Copy link
Collaborator

Choose a reason for hiding this comment

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

Need another if test for the hail reflectivity (zhl):
if (nssl_hail_on) then
ten_zhl = 0.0
endif

Copy link
Collaborator

@mdtoyNOAA mdtoyNOAA left a comment

Choose a reason for hiding this comment

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

Everything looks good from a UGWP standpoint.

Copy link
Collaborator

@AnningCheng-NOAA AnningCheng-NOAA left a comment

Choose a reason for hiding this comment

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

looks good

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.

9 participants