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

Metadata bug fixes, cleanup of active_gases_array use in RRTMGP, cleanup of Ferrier-Aligo variables, remove redundant consistency checks #749

Merged
merged 8 commits into from
Oct 25, 2021

Conversation

climbfuji
Copy link
Collaborator

@climbfuji climbfuji commented Oct 4, 2021

This PR contains the following changes:

Associated PRs:

#749
NCAR/ccpp-framework#404
https://github.com/NOAA-EMC/fv3atm/pull/407/files
NOAA-PSL/stochastic_physics#48
ufs-community/ufs-weather-model#850

For regression testing, see

ufs-community/ufs-weather-model#850

@climbfuji
Copy link
Collaborator Author

@SamuelTrahanNOAA FYI

@climbfuji
Copy link
Collaborator Author

@dustinswales @SMoorthi-emc please review this PR if you have time - it should be all straightforward, but it contains quite some cleanup and simplification, in particular on the RRTMGP side. Thanks!

@climbfuji
Copy link
Collaborator Author

@mzhangw Please review my code changes for Ferrier-Aligo. I stripped out unnecessary variables from the argument list that were used and can be declared locally without affecting the scheme. Thanks!

character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg

! Initialize CCPP error handling variables
errmsg = ''
errflg = 0

! Consistency check that the number of albedo components in array
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Consistency checks are no longer required - the CCPP framework does this automatically in the auto-generated caps when compiled in DEBUG mode.

@climbfuji
Copy link
Collaborator Author

@tanyasmirnova please review the change in physics/sfc_drv_ruc.meta that was discussed in Moorthi's last PR and that we postponed to this PR. Thanks!

Copy link
Collaborator

@dustinswales dustinswales left a comment

Choose a reason for hiding this comment

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

@climbfuji
All of the GP changes look fantastic to me. Thanks for cleaning up my mess

@dustinswales
Copy link
Collaborator

@climbfuji
One quick question. Which data container do you put active_gases_array in on the model side?

@@ -54,10 +52,6 @@ subroutine mp_fer_hires_init(ncol, nlev, dtp, imp_physics, &
logical, intent(in) :: restart
character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg
real(kind_phys), intent(out) :: f_ice(:,:)
Copy link
Collaborator

@mzhangw mzhangw Oct 22, 2021

Choose a reason for hiding this comment

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

I doubt if we should omit cwm and "fractions" in FA scheme, since these variables have not been fully tested in UFS yet. Based on our email thread with @ericaligo-NOAA @ligiabernardet and HWRF team on Aug 19, 2019, these variables are essential in operational HWRF model, which uses FA scheme. @ligiabernardet confirmed that we should proceed with also outputting total condensate (cwm) and fractional arrays.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The point is that these arrays are used nowhere in the host model (FV3) at the moment. Further, they were part of the GFS_interstitial derived data type, which doesn't make sense because this data is not persistent. In other words, the fields couldn't be used in FV3 or the dycore, they couldn't be written to disk, etc. Lastly, because they were part of the GFS_interstitial DDT, there standard names have not been updated yet.

If we decide in the future that these arrays are needed in the host model, then we can put them back in and use the correct DDTs in FV3, and standard names that are derived from the rules for creating standard names.

@climbfuji
Copy link
Collaborator Author

@climbfuji
One quick question. Which data container do you put active_gases_array in on the model side?

The GFS_control DDT - this is were all the controls go that are independent of the horizontal decomposition (i.e. that do not have a horizontal dimension).

Copy link
Collaborator

@grantfirl grantfirl left a comment

Choose a reason for hiding this comment

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

Lots of nice simplification in here. I didn't take too much effort to understand the RRTMGP changes (since @dustinswales already signed off), but it looks good to me.

@@ -32,9 +32,7 @@ module mp_fer_hires
!! \htmlinclude mp_fer_hires_init.html
!!
subroutine mp_fer_hires_init(ncol, nlev, dtp, imp_physics, &
imp_physics_fer_hires, &
restart, &
f_ice,f_rain,f_rimef, &
Copy link
Collaborator

Choose a reason for hiding this comment

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

From my knowledge of Ferrier microphysics that I used to work with about a decade ago, these variables are needed in the radiation_clouds.
May be this has changed now.

@climbfuji climbfuji merged commit 7d7b3bc into NCAR:main Oct 25, 2021
@climbfuji climbfuji deleted the debug-array-alloc-ccpp-caps branch June 27, 2022 03:11
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.

Re-enable regression test fv3_gsd_diag_debug / fix bug of using wrong temperature over water in RUC LSM
5 participants