remove Zhao-Carr cloud schemes and combine Xu-Randall cloud fraction calculation#337
remove Zhao-Carr cloud schemes and combine Xu-Randall cloud fraction calculation#337Qingfu-Liu wants to merge 12 commits intoufs-community:ufs/devfrom
Conversation
|
@Qingfu-Liu Thanks for making these changes.
Could we create a new module, say physics/Radiation/radiation_cloud_fraction.F90, which contains a single Xu-Randall cloud fraction routine that both RRTMG (physics/Radiation/radiation_clouds.f) and RRTMGP (physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90) uses? |
|
@dustinswales OK. I will make the changes. Thanks. |
|
@dustinswales I cross-checked the code between cld_frac_XuRandall (RRTMGP) and cloud_fraction_XuRandall (RRTMG), there is small differences between the two: |
physics/Radiation/radiation_clouds.f
Outdated
| cldtot(i,k) = 1. | ||
| else | ||
| onemrh= max( 1.e-10, 1.0-rhly(i,k) ) | ||
| clwm = clwmin / max( 0.01, plyr(i,k)*0.001 ) |
There was a problem hiding this comment.
@Qingfu-Liu I don't understand the need for this line? (clwmin =0 above)
There was a problem hiding this comment.
Yes. we can remove this line here. Should we change the line 806 in GFS_rrtmgp_cloud_mp.F90 as:
tem2 = max(min(tem1*(cld_mr-clwm), 50.0 ), 0.0 ), where clwm=0. in RRTMG
My guess is that clwm=clwt when you change the code for RRTMGP
physics/Radiation/radiation_clouds.f
Outdated
| endif | ||
| tem1 = xrc3 / tem1 | ||
|
|
||
| value = max( min( tem1*(clwf(i,k)-clwm), 50.0 ), 0.0 ) |
There was a problem hiding this comment.
@Qingfu-Liu If clwm = 0, then why subtract it from here.
|
@Qingfu-Liu I don't want to make the call here, but I "think" the GP formulation is correct, and the G formulation is not. At least when looking back at https://journals.ametsoc.org/view/journals/atsc/53/21/1520-0469_1996_053_3084_ascpfu_2_0_co_2.xml?tab_body=pdf. |
|
@dustinswales I will do some more research. From the code, the two cloud fraction calculations for RRTMG and RRTMGP are different. |
|
@Qingfu-Liu As you pointed out, the algorithms are nearly the same, with small differences in the exponent. So whatever way is "correct", it will impact the other and cause answer changes. But they should be the same. |
|
@dustinswales I have modified the RRTMG code to make the Xu-Randall subroutine elemental and can be used for RRTMGP ( slightly modify the input variables). I will upload the code after the regression tests |
|
@dustinswales I uploaded the new code and change the RRTMG Xu-Randall subroutine to be a function and elemental, and can be called in the RRTMGP scheme with extra input control variable "factor". |
|
@Qingfu-Liu Thanks for doing this.
Ultimately, I think FactorG=FactorGP, but this will not give us B4B reproducibility for the RRTMGP test if we adopt this here. |
|
@dustinswales I have removed the cld_frac_XuRandall function from RRTMGP scheme, and replaced the function from module_radiation_clouds. The regression tests from RRTMGP (two suites in the default rt.conf) produce binary identical results. |
dustinswales
left a comment
There was a problem hiding this comment.
@Qingfu-Liu Thanks for addressing all my concerns.
This is a great contribution! and it gets us closer to unifying our interfaces to RRTMG/RRTMGP.
|
@Qingfu-Liu Should we remove the entire Zhao-Carr scheme from the repo? @ligiabernardet I can't remember if we have an official process for retiring schemes, do you? |
|
@grantfirl Yes, we should remove the entire Zhao-Carr scheme from the repository. I do not see any suites will use it in the future |
|
@grantfirl I think we may still have a RT in the SCM that uses ZC? If so, we should remove it. |
|
@Qingfu-Liu Ligia is going to ask representatives of the ccpp-physics stakeholders at the CCPP Physics Management meeting whether they have any reason to keep the ZC scheme in the repo. If not, we'll need to more completely remove all of the ZC "hooks" within other schemes and the files themselves. |
|
@grantfirl I have removed the Zhao-Carr schemes in this PR, only left a message if someone calls the Zhao-Carr schemes. |
I don't understand. The ZC microphysics scheme files are still in the repository (ccpp/physics/physics/MP/Zhao_Carr) and there are plenty of instances where |
|
@grantfirl Good comment. I did not remove the zhao-carr identifier, but stopped the model and give the error message once it is used. The Zhao-Carr cloud schemes are removed from the code radiation_clouds.f. You mean I should remove all the Zhao-Carr identifier. I will go through the code and upload a new version |
Ya, otherwise we're leaving "abandoned" pieces of code in the repository that will never be executed. |
This reverts commit 565d62c.
|
@grantfirl I only modified the code under the directory "UFSATM/ccpp". There are more changes in the ccpp-physics directories "physics/Interstitials/UFS_SCM_NEPTUNE" and "physics/MP/Zhao_Carr". I did not change the code in the directory ""upp/sorc/ncep_post.fd" which has modules related to Zhao-Carr MP schemes (not sure I should change the post). I will upload more changes in the "UFSATM" repository. |
@Qingfu-Liu These changes look good/complete to me. Thanks! |
|
Thanks @Qingfu-Liu |
Description of Changes:
Tests Conducted:
Regression tests are conducted on Ursa, and the results are binary identical
Dependencies:
No dependence
Documentation:
No new document (not needed)
Issue (optional):
No issues. The changes remove Zhao-Carr cloud schemes which are no longer used, and combine some similar subroutines