Skip to content
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

Revisions to repair iovr=5 cloud overlap option #830

Merged
merged 5 commits into from
Jan 31, 2022

Conversation

grantfirl
Copy link
Collaborator

@grantfirl grantfirl commented Jan 20, 2022

All credit to @mjiacono for this PR. All descriptions that follow are his. This replacement PR for #829 is for convenience only.

This PR addresses part 2 of issue #748 to activate the exponential-random cloud overlap method (iovr=5) in RRTMG.

@grantfirl grantfirl changed the title iovr=5 repair Revisions to repair iovr=5 cloud overlap option Jan 20, 2022
@grantfirl grantfirl marked this pull request as ready for review January 20, 2022 18:44
Copy link
Collaborator

@mzhangw mzhangw left a comment

Choose a reason for hiding this comment

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

The addition of iovr== 4/5 codes is straightforward.
To facilitate the future development and exercise this capability regularly , new RTs should be considered

@grantfirl
Copy link
Collaborator Author

Thanks @mzhangw . Both you and @mjiacono agree on a need to make sure iovr==4/5 are exercised in UFS RTs. I see that iovr==1 is in default_vars.sh and iovr==3 is exercised in several RTs, but I don't see any iovr==4/5 yet. I'll inquire about adding some. Maybe we can switch an existing RT to use these to save on the number of RTs.

@grantfirl
Copy link
Collaborator Author

@Qingfu-Liu As codeowner of some of these files, would you please review these changes from @mjiacono ?

Copy link
Collaborator

@SamuelTrahanNOAA SamuelTrahanNOAA left a comment

Choose a reason for hiding this comment

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

The changes appear to match what is described in #748. However, I'd like a review by another expert on the matter before I approve. Grant asked @Qingfu-Liu to review and I just asked @dustinswales since he commented a lot on #748.

Copy link
Collaborator

@SamuelTrahanNOAA SamuelTrahanNOAA left a comment

Choose a reason for hiding this comment

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

I'm approving now that the code owner @Qingfu-Liu has approved, but I'm still hoping @dustinswales can review the changes since he commented on them a lot in the other issue.

@grantfirl
Copy link
Collaborator Author

All, thanks for the reviews. @mzhangw @mjiacono The new RTs that exercise iovr=4 and iovr=5 are OK with EMC code managers (see ufs-community/ufs-weather-model#1025). I'm rerunning RTs after addressing some reviewer comments in the ufs-weather-model PR, but this should be good to merge and is tentatively on the merge schedule for tomorrow.

@@ -876,6 +876,19 @@ subroutine progcld1 &
alpha(:,:) = 0.
endif

! Revise alpha for exponential-random cloud overlap
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is exactly the same block of code, nine times, in the same file. In a future cleanup of the code, one could make this a separate subroutine to call from the various places.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Now that Dom has opened this door, a word of explanation. My original vision for "get_alpha" was that it should define alpha for either iovr=4 (EXP) and iovr=5 (ER), and this was how I originally provided that subroutine. For some reason, get_alpha was later changed by someone to get_alpha_exp and simplified so that it only defined alpha for iovr=4. In the process the definition of alpha for iovr=5 was inadvertently dropped for RRTMG, which is the reason for the change provided by this PR. In the meantime, Dustin accounted for this discrepancy in RRTMGP by adding this code block after that model's call to get_alpha_exp. For this PR, I decided to apply Dustin's solution to RRTMG, which allowed this upgrade without also having to modify RRTMGP. I think it best at some point to revert to my original vision for get_alpha and build this block of code into that subroutine, which will have the advantage of providing the simplification that Dom mentions. However, it will mean passing iovr and cldfrac into get_alpha and then revising calls to it it accordingly.

@Qingfu-Liu
Copy link
Collaborator

Qingfu-Liu commented Jan 27, 2022 via email

@grantfirl
Copy link
Collaborator Author

I'll chime in and add that I've been saying for years that all of the "interstitials" surrounding radiation need a thorough reorganization/cleanup, especially in light of RRTMG and RRTMGP both being in the CCPP now. The current organization of interstitials was flawed from the beginning, IMO.

@dustinswales
Copy link
Collaborator

I'll chime in and add that I've been saying for years that all of the "interstitials" surrounding radiation need a thorough reorganization/cleanup, especially in light of RRTMG and RRTMGP both being in the CCPP now. The current organization of interstitials was flawed from the beginning, IMO.

^This

@dustinswales
Copy link
Collaborator

I am working to clear up the code (finished the old version), and moving all the calls to the subroutine "progcld*" to this module, and will move this section of the code to the outside of those calls. Qingfu

@Qingfu-Liu
This is great to hear!

When implementing GP I generalized much of the code in proglcd, which may be useful to you.
In RRTMG, "progcld" is called from GFS_rrtmg_pre.F90.
In RRTMGP this is broken down into 4 pieces:

  • Prepare atmospheric state for radiation: GFS_rrtmgp_pre
  • Apply MP assumptions for GFDL MP: GFS_rrtmgp_gfdlmp_pre *There are analogous scheme files for other GP-MP couplings)
  • Cloud overlap parameters: GFS_rrtmgp_cloud_overlap_pre
  • Cloud diagnostics: GFS_cloud_diagnostics

I'm happy to work with you to "mash this together" into some shared radiation infrastructure in the CCPP.

@yangfanglin
Copy link
Collaborator

I have asked Qingfu to write down his plan and share with relevant parties to discuss and come up with a better approach.

@Qingfu-Liu
Copy link
Collaborator

Qingfu-Liu commented Jan 28, 2022 via email

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.

8 participants