Skip to content

UFS-dev PR#254#1142

Merged
grantfirl merged 46 commits into
NCAR:mainfrom
grantfirl:ufs-dev-PR254
Jun 20, 2025
Merged

UFS-dev PR#254#1142
grantfirl merged 46 commits into
NCAR:mainfrom
grantfirl:ufs-dev-PR254

Conversation

@grantfirl
Copy link
Copy Markdown
Collaborator

@grantfirl grantfirl commented Jun 17, 2025

Description of Changes:

This PR is mainly the work of @MicroTed and @mzhangw and @hertneky who did most of the merging work. This brings over the changes from ufs-community#254 to the NCAR/main fork/branch, which are NSSL MP changes and scientific documentation changes for the SRW App v3 release.

@MicroTed's description:
This NSSL-MP update makes some improvements under the hood. No changes to the public subroutine calls.

More accurate saturation mixing ratio calculation (iqvsopt=1)
Changed default droplet renucleation to irenuc=5, which allows extra nucleation at high supersaturation
A default explicit rain breakup for 3-moment rain (irainbreak=2) has been added to reduce excessive median drop diameters in rain cores, which in turn increases evaporation and cool pool temperature deficits (were too warm).
Imposed reflectivity conservation in graupel->hail conversion (ihlcnh=3) and Bigg freezing (both 2- and 3-moment)

Note: Additional changes were required to the namelist reading code changes in the NSSL MP scheme for the following reasons (see 53d32fa and e27736c):
the actual name of the namelist needed to be passed in to the scheme rather than rely on input.nml because the CCPP SCM expects the name of the actual namelist, the filename needed to be trimmed of whitespace, the dummy argument for the filename had too many characters, and the physics namelist for suites using NSSL MP needs to at least have an empty namelist to read to avoid an error.

This has been tested in the UFS and the NSSL MP RTs are B4B, although the tests don't actually include the NSSL MP namelist section anywhere, which leads to a warning written out by NSSL MP. The SCM PR includes and empty NSSL MP namelist section.

Updated Scidoc output: https://dtcenter.ucar.edu/GMTB/UFS_SRW_App_v3.0.0/sci_doc/index.html

Tests Conducted:

See ufs-community/ufs-weather-model

Dependencies:

NCAR/ccpp-scm#593

Documentation:

This PR includes doc updates for previous PRs (associated with SRW App v3)

Contributors:

@MicroTed @mzhangw @hertneky @dustinswales @grantfirl

dustinswales and others added 30 commits November 18, 2024 23:02
  - More accurate saturation mixing ratio calculation (iqvsopt=1)
  - Changed default droplet renucleation to irenuc=5, which allows extra nucleation at high supersaturation
  - A default explicit rain breakup for 3-moment rain (irainbreak=2) has been added to reduce excessive median drop diameters in rain cores, which in turn increases evaporation and cool pool temperature deficits (were too warm).
  - Imposed reflectivity conservation in graupel->hail conversion (ihlcnh=2) and Bigg freezing (both 2- and 3-moment)
@grantfirl
Copy link
Copy Markdown
Collaborator Author

grantfirl commented Jun 17, 2025

@MicroTed Please see the last 3 commits in this PR that contain some changes for the namelist reading code in the NSSL MP scheme. A problem was originally noted when the SCM tried to use the updated NSSL MP scheme code because it doesn't rely on the physics namelist being called "input.nml" in the run directory. So, the first commit passes in the name of the physics namelist file to read. This fixed the SCM, but testing this change back in the UFS lead to an error because it (at least the regression tests) use the #ifdef INTERNAL_FILE_NML preprocessor directive code to pass around the contents of the namelist (not just the filename to be read in). This is fixed in the second commit. The last commit reads iostat so that the actual NSSL MP namelist can be absent and not error out the model.

@grantfirl grantfirl requested review from hertneky and scrasmussen and removed request for AndersJensen-NOAA, haiqinli, mdtoyNOAA and tanyasmirnova June 17, 2025 21:00
@MicroTed
Copy link
Copy Markdown
Contributor

Thanks, @grantfirl . The namelist file name issue has been a lurking problem/kludge, so I will look at this when I'm back in the office.

This was referenced Jun 17, 2025
@grantfirl grantfirl requested a review from climbfuji June 18, 2025 19:23
Comment thread physics/docs/_doxygen/header.html
@grantfirl
Copy link
Copy Markdown
Collaborator Author

@MicroTed I'm going to merge this for now because we need to get this branch and the CCPP SCM caught up, but I will be submitting a PR back to ufs/dev that includes the NSSL MP namelist changes here. That would be another opportunity to review and change things if necessary.

@grantfirl grantfirl merged commit d2c4e0f into NCAR:main Jun 20, 2025
3 checks passed
@MicroTed
Copy link
Copy Markdown
Contributor

@grantfirl Sounds good and I'll add the changes for the main module into my code, as well. Is the "INTERNAL_FILE_NML" section intended for a specific model (SCM or UFS)? Not that it matters because I'll include it for CCPP generally -- just curious.

@grantfirl
Copy link
Copy Markdown
Collaborator Author

@grantfirl Sounds good and I'll add the changes for the main module into my code, as well. Is the "INTERNAL_FILE_NML" section intended for a specific model (SCM or UFS)? Not that it matters because I'll include it for CCPP generally -- just curious.

@MicroTed Yes, the internal_file_nml thing is only a UFS thing, which I guess is why it is protected by the preprocessor directive. Other schemes that need the namelist themselves (rather than letting the host model handle it) do the same thing (see e.g. GFDL microphysics, unified GWD).

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.

6 participants