Skip to content

Phase 1 of rk_stratiform CCPPization; CCPPize cldfrc; RK interstitials #219

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

Merged
merged 43 commits into from
Apr 11, 2025

Conversation

jimmielin
Copy link
Member

@jimmielin jimmielin commented Mar 10, 2025

Originator(s): @jimmielin

Description (include issue title and the keyword ['closes', 'fixes', 'resolves'] and issue number):

  • Partial CCPPization work of rk_stratiform (CAM4 microphysics and macrophysics) - Convert rk_stratiform_tend (CAM4) to CCPP #190, including:
  • Cloud sedimentation cloud_particle_sedimentation (from src/physics/cam/pkg_cld_sediment.F90)
  • Prognostic cloud water prognostic_cloud_water (pcond from src/physics/cam/cldwat.F90)
  • Most interstitial code in rk_stratiform_tend moved to rk_stratiform_* interstitial schemes
  • CCPPization of compute_cloud_fraction (cldfrc in src/physics/cam/cloud_fraction.F90); separating out shallowcu and deepcu and concld computation to convective_cloud_cover CCPPized scheme. This is used in CAM4 and CAM5
  • Dechunkize and move to to_be_ccppized/cloud_optical_properties.F90 several cloud optical property functions to src/physics/cam/pkg_cldoptics.F90: this is used in several cloud diagnostics in CAM.
  • Fixes MUSICA GitHub actions test failing #225

This code is not fully ready for use in SIMA in the current state. This is a first stage cleanup to move as much of rk_stratiform_tend code to atmospheric_physics as possible, before completing CCPPization. Thus the following changes are not in the scope of this PR (although reasonable effort has been made to complete these as much as possible):

  • Completing metadata for use in CAM-SIMA
  • Finalize standard names
  • Create diagnostic schemes that correspond to existing diagnostics provided in CAM4
  • Create test cases for FPHYStest with rasch_kristjansson SDF

Companion PR in ESCOMP/CAM: ESCOMP/CAM#1271

List all namelist files that were added or changed:

A       schemes/cloud_fraction/compute_cloud_fraction_namelist.xml
A       schemes/cloud_fraction/convective_cloud_cover_namelist.xml
A       schemes/rasch_kristjansson/cloud_particle_sedimentation_namelist.xml
A       schemes/rasch_kristjansson/prognostic_cloud_water_namelist.xml
  - CCPPize cldfrc; cldwat; rk_stratiform_tend;

M       schemes/zhang_mcfarlane/zm_conv_options_namelist.xml
  - Remove cam6 phys_suite namelist defaults from SIMA

List all files eliminated and why: N/A

List all files added and what they do:

A       schemes/cloud_fraction/compute_cloud_fraction.F90
A       schemes/cloud_fraction/compute_cloud_fraction.meta
A       schemes/cloud_fraction/convective_cloud_cover.F90
A       schemes/cloud_fraction/convective_cloud_cover.meta
 - CCPPize cldfrc

A       schemes/rasch_kristjansson/cloud_particle_sedimentation.F90
A       schemes/rasch_kristjansson/cloud_particle_sedimentation.meta
 - CCPPize former `pkg_cld_sediment`

A       schemes/rasch_kristjansson/prognostic_cloud_water.F90
A       schemes/rasch_kristjansson/prognostic_cloud_water.meta
 - CCPPize former `cldwat`

A       schemes/rasch_kristjansson/rk_stratiform.F90
A       schemes/rasch_kristjansson/rk_stratiform.meta
 - Move most interstitial code in rk_stratiform_tend to individual CCPPized schemes

A       test/test_suites/suite_rasch_kristjansson.xml
 - Draft rk_stratiform_tend SDF

A       to_be_ccppized/cloud_optical_properties.F90
 - Dechunkized and moved from `pkg_cldoptics.F90`

List all existing files that have been modified, and describe the changes:
(Helpful git command: git diff --name-status development...<your_branch_name>)

M       schemes/zhang_mcfarlane/zm_conv_options_namelist.xml
  - Remove cam6 phys_suite namelist defaults from SIMA

M       schemes/cloud_fraction/set_cloud_fraction_top.F90
M       schemes/dry_adiabatic_adjust/dadadj_namelist.xml
M       schemes/hack_shallow/convect_shallow_sum_to_deep.F90
M       schemes/hack_shallow/hack_convect_shallow.F90
M       schemes/hack_shallow/set_general_conv_fluxes_to_shallow.F90
M       schemes/hack_shallow/set_shallow_conv_fluxes_to_general.F90
  - Remove license headers in favor of LICENSE file in repo

List all automated tests that failed, as well as an explanation for why they weren't fixed: N/A

Is this an answer-changing PR? If so, is it a new physics package, algorithm change, tuning change, etc?

B4B for non-CAM4 regression tests and most CAM4 tests.

If all CAM4 diagnostics are enabled, there are two history fields (HPROGCLD and HREPART) that have roundoff level differences in the order of 1e-17 ~ 1e-16 due to rearranging of terms to compute diagnostics.

The change in heat flux computation and the subsequent roundoff difference will lead to some CAM4 tests to fail due to chaos. See detailed analysis in ESCOMP/CAM#1271 (comment)

Not fully complete for use in SIMA in current state

If yes to the above question, describe how this code was validated with the new/modified features:

Validation is made as part of ESCOMP/CAM PR - ESCOMP/CAM#1271

@jimmielin jimmielin self-assigned this Mar 10, 2025
@jimmielin jimmielin changed the title Batch 1 of rk_stratiform CCPPization; CCPPize cldfrc Phase 1 of rk_stratiform CCPPization; CCPPize cldfrc Mar 11, 2025
@nusbaume nusbaume self-requested a review March 16, 2025 21:52
Copy link
Collaborator

@nusbaume nusbaume left a comment

Choose a reason for hiding this comment

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

Super close! Just a few last change requests.

@jimmielin jimmielin requested a review from nusbaume March 26, 2025 19:48
Copy link
Collaborator

@nusbaume nusbaume 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 to me now. Thanks again @jimmielin!

@nusbaume nusbaume requested a review from cacraigucar March 26, 2025 21:02
@jimmielin jimmielin changed the title Phase 1 of rk_stratiform CCPPization; CCPPize cldfrc Phase 1 of rk_stratiform CCPPization; CCPPize cldfrc; RK interstitials; fix MUSICA test Mar 26, 2025
Copy link
Collaborator

@cacraigucar cacraigucar left a comment

Choose a reason for hiding this comment

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

While there a good number of requests, I don't think there is anything too time consuming and nothing fundamentally wrong.

@jimmielin jimmielin requested a review from cacraigucar April 10, 2025 03:41
@jimmielin jimmielin requested a review from cacraigucar April 10, 2025 23:13
@jimmielin jimmielin changed the title Phase 1 of rk_stratiform CCPPization; CCPPize cldfrc; RK interstitials; fix MUSICA test Phase 1 of rk_stratiform CCPPization; CCPPize cldfrc; RK interstitials Apr 11, 2025
@cacraigucar cacraigucar requested review from peverwhee and removed request for peverwhee April 11, 2025 17:29
@jimmielin
Copy link
Member Author

Thanks all! Will run regression tests once a CAM tag is assigned. I plan to run two sets of regression tests, one with the repartht "restored" to prior version to ensure all other changes are B4B; and another one with the rearranged, cleaned-up repartht which will have known answer changes for some of the CAM4 compsets. Will update back with regression tests results.

@jimmielin jimmielin merged commit acb760e into ESCOMP:development Apr 11, 2025
3 checks passed
jimmielin added a commit that referenced this pull request Apr 11, 2025
Tag name (The PR title should also include the tag name):
atmos_phys0_12_000
Originator(s): @jimmielin 

List all `development` PR numbers included in this PR and the title of
each:
- #229 by @peverwhee 
- #219 by @jimmielin 

List all automated tests that failed, as well as an explanation for why
they weren't fixed: None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Tag
Development

Successfully merging this pull request may close these issues.

5 participants