Skip to content

Commit

Permalink
Merge pull request #553 from grantfirl/add_ntiedtke_suite_and_test
Browse files Browse the repository at this point in the history
Add SDF and associated changes for using nTiedtke deep convective scheme
  • Loading branch information
grantfirl authored Feb 4, 2025
2 parents c522176 + d1f31dc commit 8b12a30
Show file tree
Hide file tree
Showing 8 changed files with 266 additions and 5 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci_run_scm_rts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ jobs:
sp_ROOT: /home/runner/NCEPLIBS-sp
w3emc_ROOT: /home/runner/myw3emc
SCM_ROOT: /home/runner/work/ccpp-scm/ccpp-scm
suites: SCM_GFS_v15p2,SCM_GFS_v16,SCM_GFS_v17_p8,SCM_HRRR,SCM_RRFS_v1beta,SCM_RAP,SCM_WoFS_v0,SCM_HRRR_gf,SCM_GFS_v17_p8_ugwpv1,SCM_GFS_v16_RRTMGP,SCM_GFS_v16_debug
suites_ps: SCM_GFS_v15p2_ps,SCM_GFS_v16_ps,SCM_GFS_v17_p8_ps,SCM_HRRR_ps,SCM_RRFS_v1beta_ps,SCM_RAP_ps,SCM_WoFS_v0_ps,SCM_HRRR_gf_ps,SCM_GFS_v17_p8_ugwpv1_ps,SCM_GFS_v16_RRTMGP_ps,SCM_GFS_v16_debug_ps
suites: SCM_GFS_v15p2,SCM_GFS_v15p2_ntiedtke,SCM_GFS_v16,SCM_GFS_v17_p8,SCM_HRRR,SCM_RRFS_v1beta,SCM_RAP,SCM_WoFS_v0,SCM_HRRR_gf,SCM_GFS_v17_p8_ugwpv1,SCM_GFS_v16_RRTMGP,SCM_GFS_v16_debug
suites_ps: SCM_GFS_v15p2_ps,SCM_GFS_v15p2_ntiedtke_ps,SCM_GFS_v16_ps,SCM_GFS_v17_p8_ps,SCM_HRRR_ps,SCM_RRFS_v1beta_ps,SCM_RAP_ps,SCM_WoFS_v0_ps,SCM_HRRR_gf_ps,SCM_GFS_v17_p8_ugwpv1_ps,SCM_GFS_v16_RRTMGP_ps,SCM_GFS_v16_debug_ps
dir_rt: /home/runner/work/ccpp-scm/ccpp-scm/test/artifact-${{matrix.build-type}}
dir_bl: /home/runner/work/ccpp-scm/ccpp-scm/test/BL-${{matrix.build-type}}

Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics
113 changes: 113 additions & 0 deletions ccpp/physics_namelists/input_GFS_v15p2_ntiedtke.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
&gfs_physics_nml
fhzero = 0.16667
h2o_phys = .true.
ldiag3d = .true.
qdiag3d = .true.
fhcyc = 24.
use_ufo = .true.
pre_rad = .false.
imp_physics = 11
pdfcld = .false.
fhswr = 3600.
fhlwr = 3600.
ialb = 1
iems = 1
iaer = 111
ico2 = 2
isubc_sw = 2
isubc_lw = 2
isol = 2
lwhtr = .true.
swhtr = .true.
cnvgwd = .true.
shal_cnv = .true.
cal_pre = .false.
redrag = .true.
dspheat = .true.
hybedmf = .true.
random_clds = .false.
trans_trac = .true.
cnvcld = .true.
imfshalcnv = 4
imfdeepcnv = 4
cdmbgwd = 3.5,0.25
prslrd0 = 0.
ivegsrc = 1
isot = 1
debug = .false.
oz_phys = .false.
oz_phys_2015 = .true.
nstf_name = 2,1,0,0,0
nst_anl = .true.
psautco = 0.0008,0.0005
prautco = 0.00015,0.00015
lgfdlmprad = .true.
effr_in = .true.
do_sppt = .false.
do_shum = .false.
do_skeb = .false.
/

&gfdl_cloud_microphysics_nml
sedi_transport = .true.
do_sedi_heat = .false.
rad_snow = .true.
rad_graupel = .true.
rad_rain = .true.
const_vi = .F.
const_vs = .F.
const_vg = .F.
const_vr = .F.
vi_max = 1.
vs_max = 2.
vg_max = 12.
vr_max = 12.
qi_lim = 1.
prog_ccn = .false.
do_qa = .false.
fast_sat_adj = .false.
tau_l2v = 225.
tau_v2l = 150.
tau_g2v = 900.
rthresh = 10.e-6 ! This is a key parameter for cloud water
dw_land = 0.16
dw_ocean = 0.10
ql_gen = 1.0e-3
ql_mlt = 1.0e-3
qi0_crt = 8.0E-5
qs0_crt = 1.0e-3
tau_i2s = 1000.
c_psaci = 0.05
c_pgacs = 0.01
rh_inc = 0.30
rh_inr = 0.30
rh_ins = 0.30
ccn_l = 300.
ccn_o = 100.
c_paut = 0.5
c_cracw = 0.8
use_ppm = .false.
use_ccn = .true.
mono_prof = .true.
z_slope_liq = .true.
z_slope_ice = .true.
de_ice = .false.
fix_negative = .true.
icloud_f = 1
mp_time = 150.
/

&cires_ugwp_nml
knob_ugwp_solver = 2
knob_ugwp_source = 1,1,0,0
knob_ugwp_wvspec = 1,25,25,25
knob_ugwp_azdir = 2,4,4,4
knob_ugwp_stoch = 0,0,0,0
knob_ugwp_effac = 1,1,1,1
knob_ugwp_doaxyz = 1
knob_ugwp_doheat = 1
knob_ugwp_dokdis = 1
knob_ugwp_ndx4lh = 1
knob_ugwp_version = 0
launch_level = 25
/
83 changes: 83 additions & 0 deletions ccpp/suites/suite_SCM_GFS_v15p2_ntiedtke.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="SCM_GFS_v15p2_ntiedtke" version="1">
<!-- <init></init> -->
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmg_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>GFS_rrtmg_pre</scheme>
<scheme>GFS_radiation_surface</scheme>
<scheme>rad_sw_pre</scheme>
<scheme>rrtmg_sw</scheme>
<scheme>rrtmg_sw_post</scheme>
<scheme>rrtmg_lw</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>GFS_surface_composites_pre</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_surface_composites_inter</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
</subcycle>
<!-- Surface iteration loop -->
<subcycle loop="2">
<scheme>sfc_diff</scheme>
<scheme>GFS_surface_loop_control_part1</scheme>
<scheme>sfc_nst_pre</scheme>
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_noah</scheme>
<scheme>sfc_sice</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
<scheme>GFS_surface_composites_post</scheme>
<scheme>sfc_diag</scheme>
<scheme>sfc_diag_post</scheme>
<scheme>GFS_surface_generic_post</scheme>
<scheme>GFS_PBL_generic_pre</scheme>
<scheme>hedmf</scheme>
<scheme>GFS_PBL_generic_post</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>cires_ugwp</scheme>
<scheme>cires_ugwp_post</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>GFS_photochemistry</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>cu_ntiedtke_pre</scheme>
<scheme>cu_ntiedtke</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_SCNV_generic_pre</scheme>
<scheme>GFS_SCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<scheme>gfdl_cloud_microphys</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>cu_ntiedtke_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
<scheme>GFS_physics_post</scheme>
</subcycle>
</group>
<!-- <finalize></finalize> -->
</suite>
64 changes: 64 additions & 0 deletions ccpp/suites/suite_SCM_GFS_v15p2_ntiedtke_ps.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="SCM_GFS_v15p2_ntiedtke_ps" version="1">
<!-- <init></init> -->
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmg_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>GFS_rrtmg_pre</scheme>
<scheme>GFS_radiation_surface</scheme>
<scheme>rad_sw_pre</scheme>
<scheme>rrtmg_sw</scheme>
<scheme>rrtmg_sw_post</scheme>
<scheme>rrtmg_lw</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>scm_sfc_flux_spec</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
<scheme>GFS_PBL_generic_pre</scheme>
<scheme>hedmf</scheme>
<scheme>GFS_PBL_generic_post</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>cires_ugwp</scheme>
<scheme>cires_ugwp_post</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>GFS_photochemistry</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>cu_ntiedtke_pre</scheme>
<scheme>cu_ntiedtke</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_SCNV_generic_pre</scheme>
<scheme>GFS_SCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<scheme>gfdl_cloud_microphys</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>cu_ntiedtke_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
<scheme>GFS_physics_post</scheme>
</subcycle>
</group>
<!-- <finalize></finalize> -->
</suite>
3 changes: 1 addition & 2 deletions scm/src/run_scm.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import subprocess
import sys
import time
from suite_info import suite_list
from suite_info import suite, suite_list
from netCDF4 import Dataset
import importlib

Expand Down Expand Up @@ -901,7 +901,6 @@ def main():

# Loop through all input "run dictionaires"
for run in run_list:

#
# Is this a "supported" SCM configuration?
# (e.g Do we have default namelist and tracer files for this suite?)
Expand Down
1 change: 1 addition & 0 deletions scm/src/suite_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ def timestep(self, value):
suite_list.append(suite('SCM_GFS_v15p2_YSU', 'tracers_GFS_v15p2.txt', 'input_GFS_v15p2_YSU.nml', 600.0, 1800.0, False))
suite_list.append(suite('SCM_GFS_v15p2_saYSU', 'tracers_GFS_v15p2.txt', 'input_GFS_v15p2_saYSU.nml', 600.0, 1800.0, False))
suite_list.append(suite('SCM_GFS_v15p2_ACM', 'tracers_GFS_v15p2.txt', 'input_GFS_v15p2_ACM.nml', 600.0, 1800.0, False))
suite_list.append(suite('SCM_GFS_v15p2_ntiedtke','tracers_GFS_v15p2.txt', 'input_GFS_v15p2_ntiedtke.nml', 600.0, 1800.0, False))
suite_list.append(suite('SCM_GFS_v16_no_nsst', 'tracers_GFS_v16.txt', 'input_GFS_v16.nml', 600.0, 1800.0, False))
suite_list.append(suite('HAFS_v0_hwrf', 'tracers_HAFS_v0_hwrf.txt', 'input_HAFS_v0_hwrf.nml', 600.0, 1800.0, False))
suite_list.append(suite('HAFS_v0_hwrf_thompson', 'tracers_HAFS_v0_hwrf_thompson.txt', 'input_HAFS_v0_hwrf_thompson.nml', 600.0, 600.0 , False))
Expand Down
1 change: 1 addition & 0 deletions test/rt_test_cases.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
{"case": "twpice", "suite": "SCM_RRFS_v1beta"}, \
{"case": "twpice", "suite": "SCM_RAP"}, \
{"case": "twpice", "suite": "SCM_GFS_v15p2"}, \
{"case": "twpice", "suite": "SCM_GFS_v15p2_ntiedtke"}, \
{"case": "bomex", "suite": "SCM_GFS_v17_p8"}, \
{"case": "bomex", "suite": "SCM_HRRR"}, \
{"case": "bomex", "suite": "SCM_RRFS_v1beta"}, \
Expand Down

0 comments on commit 8b12a30

Please sign in to comment.