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

Chikira Sugiyama convection #167

Merged
merged 27 commits into from
Oct 18, 2018
Merged

Conversation

climbfuji
Copy link
Collaborator

@climbfuji climbfuji commented Oct 16, 2018

From @mzhangw: Chikira-Sugiyama cumulus scheme (Chikira and Sugiyama 2010) with prognostic closure and Arakawa-Wu scale-aware extension is an offshoot of the prognostic Arakawa-Schubert scheme. It is characterized by lateral entrainment rates that vertically varies depending on buoyancy and vertical velocity of updraft air parcel following Gregory (2001) and spectral representation of cloud types according to updraft velocity at cloud base. Cloud base mass flux is determined by convective kinetic energy closure (Xu 1993; Pan and Randall 1998). The scheme naturally represents the effect of free-tropospheric humidity on deep convection through the vertical variation of the entrainment rates without any empirical triggering schemes.

These PRs contain GMTB’s efforts including implementation of the CCPP-compliant csconv.F90 in CCPP-physics, the suite definition file of CCPP csawmg RT test in CCPP-framework and other CCPP version configuration. It has provided bitwise identical reproducible results for csawmg RT test using Intel 18 in REPRO mode.

Work 99% done by @JulieSchramm and @mzhangw. Minor changes to achieve bit-for-bit identical results with CCPP and prevent some compile errors with gfortran (note that the code still crashes with the GNU compilers on all machines tested, Theia/Cheyenne/MacOSX, but fixing this is beyond the scope of this PR). From @JulieSchramm:

NCAR/ccpp-framework#150

  • Add cs_conv.F90 to ccpp_prebuild_config_FV3.py
  • Add a SDF file for the csawmg convective scheme with ozphys_2015

#167

  • Added CCPP-compliant version of cs_conv.F90 including modules cs_conv_pre_run, cs_conv_run and cs_conv_post_run each with an argument table. Note that there still some unit mis-matches that EMC is aware of (ud_mf, dd_mf, and dt_mf)

https://github.com/NCAR/FV3/pull/88

  • Modified GFS_physics_driver.F90 and GFS_typedefs.F90 to run cs_conv with option B.
  • (Dom) Add non-CCPP version of GFS_debug.F90 to facilitate debugging in the future (not used anywhere in the code by default). Requires changes to the interface of DDT Tbd%create().

https://github.com/NCAR/NEMSfv3gfs/pull/62

  • Added CCPP regression test for csawmg with a corresponding namelist file in the parm directory

Julie Schramm and others added 25 commits July 12, 2018 14:57
…cs_conv.F90 argument table to match those in GFS_typedefs.F90, units differ by delt

- Add 'convective' to variable prec standard name
- CCPP prebuild step completed successfully.
Fix dimensions of array q in cs_conv_pre_run
Add interfaces to public list
…iver

and GFS_typedefs: rain1, dt_mf, dd_mf, and ud_mf.  Hopefully these will be
resolved after the v2 release.
Use number_of_total_tracers_CS variable set in GFS_typedefs
Update standard names in cs_conv_pre table
…intrinisic functions with explicit pure functions
@climbfuji climbfuji requested a review from mzhangw October 16, 2018 20:55
@climbfuji
Copy link
Collaborator Author

@climbfuji
Copy link
Collaborator Author

Code updated to include the latest changes from trunk, regression tests kicked off.

@climbfuji
Copy link
Collaborator Author

All regression tests passed, this and related PRs are good to go!

rt_ccpp_hybrid.log
rt_ccpp_ref_create.log
rt_ccpp_standalone.log
rt_ccpp_static.log
rt_full.log

@mzhangw
Copy link
Collaborator

mzhangw commented Oct 18, 2018

Looks good to me. This CCPP-compliant cs_conv.F90 solves both GNU crashes and B4B identical issues on the original code in gfsphysics.

@climbfuji
Copy link
Collaborator Author

@mzhangw no it doesn't solve the GNU crashes yet, unfortunately (this needs to be done at a later stage when we have more time - if that ever happens).

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.

Looks good to me.

!---------------------------------------------------------------------------------
!
use machine , only : r8 => kind_phys
use physcons, only : cp => con_cp, grav => con_g, &
Copy link
Collaborator

Choose a reason for hiding this comment

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

We should address the constants coming from physcons in a cleanup PR.

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.

Good work from all involved! Approved.

@climbfuji
Copy link
Collaborator Author

This PR supersedes #164

@climbfuji climbfuji merged commit 84b9502 into NCAR:master Oct 18, 2018
@climbfuji climbfuji deleted the csonv_dom_20181016 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.

3 participants