diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py
index d86710b97..ba6f51236 100755
--- a/ccpp/config/ccpp_prebuild_config.py
+++ b/ccpp/config/ccpp_prebuild_config.py
@@ -165,8 +165,10 @@
'ccpp/physics/physics/photochem/h2ophys.f',
'ccpp/physics/physics/photochem/module_ozphys.F90',
'ccpp/physics/physics/MP/Ferrier_Aligo/mp_fer_hires.F90',
- 'ccpp/physics/physics/MP/GFDL/gfdl_cloud_microphys.F90',
- 'ccpp/physics/physics/MP/GFDL/fv_sat_adj.F90',
+ 'ccpp/physics/physics/MP/GFDL_2019_v1/gfdl_cloud_microphys.F90',
+ 'ccpp/physics/physics/MP/GFDL_2019_v1/fv_sat_adj.F90',
+ 'ccpp/physics/physics/MP/GFDL_2022_v3/gfdl_cld_mp_v3.F90',
+ 'ccpp/physics/physics/MP/GFDL_2022_v3/fv_sat_adj_v3.F90',
'ccpp/physics/physics/MP/Morrison_Gettelman/m_micro.F90',
'ccpp/physics/physics/MP/Morrison_Gettelman/m_micro_pre.F90',
'ccpp/physics/physics/MP/Morrison_Gettelman/m_micro_post.F90',
diff --git a/ccpp/physics b/ccpp/physics
index 18c844611..65cf1e140 160000
--- a/ccpp/physics
+++ b/ccpp/physics
@@ -1 +1 @@
-Subproject commit 18c8446118c005017f5386df5c15ef1fae0b528f
+Subproject commit 65cf1e1401013d5de75b4292a5753d0a2c1fd297
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C1152.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C1152.nml
new file mode 100644
index 000000000..08c7b5630
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C1152.nml
@@ -0,0 +1,171 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 8
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ dt_inner = 60.0
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 1.67,8.8,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ nstf_name = 2,1,0,0,0
+ nst_anl = .true.
+ psautco = 0.0008,0.0005
+ prautco = 0.00015,0.00015
+ lgfdlmprad = .false.
+ effr_in = .true.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.35e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C192.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C192.nml
index fdb516a0f..10d60a77e 100644
--- a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C192.nml
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C192.nml
@@ -12,7 +12,7 @@
ltaerosol = .false.
lradar = .true.
ttendlim = -999
- dt_inner = 450.0
+ dt_inner = 225.0
sedi_semi = .true.
decfl = 10
oz_phys = .false.
@@ -153,7 +153,7 @@
knob_ugwp_lzmin = 0.75e3
knob_ugwp_lzstar = 2.0e3
knob_ugwp_taumin = 0.25e-3
- knob_ugwp_tauamp = 3.0e-3
+ knob_ugwp_tauamp = 1.5e-3
knob_ugwp_lhmet = 200.0e3
knob_ugwp_orosolv = 'pss-1986'
/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C3072.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C3072.nml
new file mode 100644
index 000000000..ff270f49d
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C3072.nml
@@ -0,0 +1,171 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 8
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ dt_inner = 45.0
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 0.625,14.1,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ nstf_name = 2,1,0,0,0
+ nst_anl = .true.
+ psautco = 0.0008,0.0005
+ prautco = 0.00015,0.00015
+ lgfdlmprad = .false.
+ effr_in = .true.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.13e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C384.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C384.nml
index 21b6edeb2..5450184bf 100644
--- a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C384.nml
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C384.nml
@@ -12,7 +12,7 @@
ltaerosol = .false.
lradar = .true.
ttendlim = -999
- dt_inner = 300.0
+ dt_inner = 150.0
sedi_semi = .true.
decfl = 10
oz_phys = .false.
@@ -67,7 +67,7 @@
imfshalcnv = 2
imfdeepcnv = 2
ras = .false.
- cdmbgwd = 2.5,7.5,1.0,1.0
+ cdmbgwd = 5.0,5.0,1.0,1.0
prslrd0 = 0.
ivegsrc = 1
isot = 1
@@ -153,7 +153,7 @@
knob_ugwp_lzmin = 0.75e3
knob_ugwp_lzstar = 2.0e3
knob_ugwp_taumin = 0.25e-3
- knob_ugwp_tauamp = 3.0e-3
+ knob_ugwp_tauamp = 0.8e-3
knob_ugwp_lhmet = 200.0e3
knob_ugwp_orosolv = 'pss-1986'
/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C768.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C768.nml
new file mode 100644
index 000000000..2b8c985fe
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C768.nml
@@ -0,0 +1,171 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 8
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ dt_inner = 75.0
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 2.5,7.5,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ nstf_name = 2,1,0,0,0
+ nst_anl = .true.
+ psautco = 0.0008,0.0005
+ prautco = 0.00015,0.00015
+ lgfdlmprad = .false.
+ effr_in = .true.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.5e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C96.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C96.nml
index 65a0364a2..d4fe2cac1 100644
--- a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C96.nml
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_C96.nml
@@ -12,7 +12,7 @@
ltaerosol = .false.
lradar = .true.
ttendlim = -999
- dt_inner = 720.0
+ dt_inner = 360.0
sedi_semi = .true.
decfl = 10
oz_phys = .false.
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv1_C384.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv1_C384.nml
new file mode 100644
index 000000000..f673c3154
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv1_C384.nml
@@ -0,0 +1,221 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 11
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ dt_inner = 150.0
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 5.0,5.0,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ 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.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.8e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&gfdl_cloud_microphysics_nml
+ c_cracw = 0.8
+ c_paut = 0.5
+ c_pgacs = 0.01
+ c_psaci = 0.05
+ ccn_l = 300.0
+ ccn_o = 100.0
+ const_vg = .false.
+ const_vi = .false.
+ const_vr = .false.
+ const_vs = .false.
+ de_ice = .false.
+ do_qa = .false.
+ do_sedi_heat = .false.
+ dw_land = 0.16
+ dw_ocean = 0.1
+ fast_sat_adj = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mono_prof = .true.
+ mp_time = 150.0
+ prog_ccn = .false.
+ qi0_crt = 8e-05
+ qi_lim = 1.0
+ ql_gen = 0.001
+ ql_mlt = 0.001
+ qs0_crt = 0.001
+ rad_graupel = .true.
+ rad_rain = .true.
+ rad_snow = .true.
+ reiflag = 2
+ rh_inc = 0.3
+ rh_inr = 0.3
+ rh_ins = 0.3
+ rthresh = 1e-05
+ sedi_transport = .true.
+ tau_g2v = 900.0
+ tau_i2s = 1000.0
+ tau_l2v = 225.0
+ tau_v2l = 150.0
+ use_ccn = .true.
+ use_ppm = .false.
+ vg_max = 12.0
+ vi_max = 1.0
+ vr_max = 12.0
+ vs_max = 2.0
+ z_slope_ice = .true.
+ z_slope_liq = .true.
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv1_C768.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv1_C768.nml
new file mode 100644
index 000000000..b30049147
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv1_C768.nml
@@ -0,0 +1,220 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 11
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 2.5,7.5,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ 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.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.5e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&gfdl_cloud_microphysics_nml
+ c_cracw = 0.8
+ c_paut = 0.5
+ c_pgacs = 0.01
+ c_psaci = 0.05
+ ccn_l = 300.0
+ ccn_o = 100.0
+ const_vg = .false.
+ const_vi = .false.
+ const_vr = .false.
+ const_vs = .false.
+ de_ice = .false.
+ do_qa = .false.
+ do_sedi_heat = .false.
+ dw_land = 0.16
+ dw_ocean = 0.1
+ fast_sat_adj = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mono_prof = .true.
+ mp_time = 150.0
+ prog_ccn = .false.
+ qi0_crt = 8e-05
+ qi_lim = 1.0
+ ql_gen = 0.001
+ ql_mlt = 0.001
+ qs0_crt = 0.001
+ rad_graupel = .true.
+ rad_rain = .true.
+ rad_snow = .true.
+ reiflag = 2
+ rh_inc = 0.3
+ rh_inr = 0.3
+ rh_ins = 0.3
+ rthresh = 1e-05
+ sedi_transport = .true.
+ tau_g2v = 900.0
+ tau_i2s = 1000.0
+ tau_l2v = 225.0
+ tau_v2l = 150.0
+ use_ccn = .true.
+ use_ppm = .false.
+ vg_max = 12.0
+ vi_max = 1.0
+ vr_max = 12.0
+ vs_max = 2.0
+ z_slope_ice = .true.
+ z_slope_liq = .true.
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv3_C384.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv3_C384.nml
new file mode 100644
index 000000000..d91dca2ac
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv3_C384.nml
@@ -0,0 +1,221 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 13
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ dt_inner = 150.0
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 5.0,5.0,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ 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.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.8e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&gfdl_cloud_microphysics_nml
+ c_cracw = 0.8
+ c_paut = 0.5
+ c_pgacs = 0.01
+ c_psaci = 0.05
+ ccn_l = 300.0
+ ccn_o = 100.0
+ const_vg = .false.
+ const_vi = .false.
+ const_vr = .false.
+ const_vs = .false.
+ de_ice = .false.
+ do_qa = .false.
+ do_sedi_heat = .false.
+ dw_land = 0.16
+ dw_ocean = 0.1
+ fast_sat_adj = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mono_prof = .true.
+ mp_time = 150.0
+ prog_ccn = .false.
+ qi0_crt = 8e-05
+ qi_lim = 1.0
+ ql_gen = 0.001
+ ql_mlt = 0.001
+ qs0_crt = 0.001
+ rad_graupel = .true.
+ rad_rain = .true.
+ rad_snow = .true.
+ reiflag = 2
+ rh_inc = 0.3
+ rh_inr = 0.3
+ rh_ins = 0.3
+ rthresh = 1e-05
+ sedi_transport = .true.
+ tau_g2v = 900.0
+ tau_i2s = 1000.0
+ tau_l2v = 225.0
+ tau_v2l = 150.0
+ use_ccn = .true.
+ use_ppm = .false.
+ vg_max = 12.0
+ vi_max = 1.0
+ vr_max = 12.0
+ vs_max = 2.0
+ z_slope_ice = .true.
+ z_slope_liq = .true.
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv3_C768.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv3_C768.nml
new file mode 100644
index 000000000..4f6691488
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_gfdlmpv3_C768.nml
@@ -0,0 +1,220 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 13
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 2.5,7.5,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ 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.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.5e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&gfdl_cloud_microphysics_nml
+ c_cracw = 0.8
+ c_paut = 0.5
+ c_pgacs = 0.01
+ c_psaci = 0.05
+ ccn_l = 300.0
+ ccn_o = 100.0
+ const_vg = .false.
+ const_vi = .false.
+ const_vr = .false.
+ const_vs = .false.
+ de_ice = .false.
+ do_qa = .false.
+ do_sedi_heat = .false.
+ dw_land = 0.16
+ dw_ocean = 0.1
+ fast_sat_adj = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mono_prof = .true.
+ mp_time = 150.0
+ prog_ccn = .false.
+ qi0_crt = 8e-05
+ qi_lim = 1.0
+ ql_gen = 0.001
+ ql_mlt = 0.001
+ qs0_crt = 0.001
+ rad_graupel = .true.
+ rad_rain = .true.
+ rad_snow = .true.
+ reiflag = 2
+ rh_inc = 0.3
+ rh_inr = 0.3
+ rh_ins = 0.3
+ rthresh = 1e-05
+ sedi_transport = .true.
+ tau_g2v = 900.0
+ tau_i2s = 1000.0
+ tau_l2v = 225.0
+ tau_v2l = 150.0
+ use_ccn = .true.
+ use_ppm = .false.
+ vg_max = 12.0
+ vi_max = 1.0
+ vr_max = 12.0
+ vs_max = 2.0
+ z_slope_ice = .true.
+ z_slope_liq = .true.
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_nssl_C384.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_nssl_C384.nml
new file mode 100644
index 000000000..e1e67913f
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_nssl_C384.nml
@@ -0,0 +1,174 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 17
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ dt_inner = 150.0
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 5.0,5.0,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ nssl_cccn = 600000000.0
+ nssl_ccn_on = .true.
+ nssl_hail_on = .true.
+ nstf_name = 2,1,0,0,0
+ nst_anl = .true.
+ psautco = 0.0008,0.0005
+ prautco = 0.00015,0.00015
+ lgfdlmprad = .false.
+ effr_in = .true.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.8e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_nssl_C768.nml b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_nssl_C768.nml
new file mode 100644
index 000000000..9598186a2
--- /dev/null
+++ b/ccpp/physics_namelists/input_GFS_v17_p8_ugwpv1_nssl_C768.nml
@@ -0,0 +1,173 @@
+&gfs_physics_nml
+ fhzero = 6
+ h2o_phys = .true.
+ ldiag3d = .true.
+ qdiag3d = .true.
+ print_diff_pgr = .false.
+ fhcyc = 24
+ use_ufo = .true.
+ pre_rad = .false.
+ imp_physics = 17
+ iovr = 3
+ ltaerosol = .false.
+ lradar = .true.
+ ttendlim = -999
+ sedi_semi = .true.
+ decfl = 10
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ lsoil_lsm = 4
+ do_mynnedmf = .false.
+ do_mynnsfclay = .false.
+ icloud_bl = 1
+ bl_mynn_edmf = 1
+ bl_mynn_tkeadvect = .true.
+ bl_mynn_edmf_mom = 1
+ do_ugwp = .false.
+ do_tofd = .false.
+ gwd_opt = 2
+ do_ugwp_v0 = .false.
+ do_ugwp_v1 = .true.
+ do_ugwp_v0_orog_only = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_ugwp_v1_orog_only = .false.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ use_cice_alb = .false.
+ pdfcld = .false.
+ fhswr = 1200.
+ fhlwr = 1200.
+ ialb = 1
+ iems = 1
+ iaer = 5111
+ icliq_sw = 2
+ 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 = .false.
+ satmedmf = .true.
+ isatmedmf = 1
+ lheatstrg = .true.
+ lseaspray = .true.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ ras = .false.
+ cdmbgwd = 2.5,7.5,1.0,1.0
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsoil = 4
+ lsm = 2
+ iopt_dveg = 4
+ iopt_crs = 2
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 3
+ iopt_trs = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 3
+ iopt_alb = 1
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 3
+ debug = .false.
+ nssl_cccn = 600000000.0
+ nssl_ccn_on = .true.
+ nssl_hail_on = .true.
+ nstf_name = 2,1,0,0,0
+ nst_anl = .true.
+ psautco = 0.0008,0.0005
+ prautco = 0.00015,0.00015
+ lgfdlmprad = .false.
+ effr_in = .true.
+ ldiag_ugwp = .false.
+ fscav_aero = "'*:0.0'"
+ do_sppt = .false.
+ do_shum = .false.
+ do_skeb = .false.
+ do_RRTMGP = .false.
+ doGP_cldoptics_LUT = .true.
+ doGP_lwscat = .true.
+ active_gases = 'h2o_co2_o3_n2o_ch4_o2'
+ ngases = 6
+ rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
+ lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g128-210809.nc'
+ lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
+ sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g112-210809.nc'
+ sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
+ rrtmgp_nGptsSW = 112
+ rrtmgp_nGptsLW = 128
+ rrtmgp_nBandsLW = 16
+ rrtmgp_nBandsSW = 14
+ frac_grid = .true.
+ cplchm = .false.
+ cplflx = .false.
+ cplice = .false.
+ cplwav = .false.
+ cplwav2atm = .false.
+ do_ca = .false.
+ ca_global = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 12
+ nseed = 1
+ nfracseed = 0.5
+ nthresh = 18
+ ca_trigger = .true.
+ nspinup = 1
+ iseed_ca = 12345
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ccpp_suite_sim = .false.
+/
+
+&cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_version = 1
+ 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 = 2
+ knob_ugwp_ndx4lh = 4
+ knob_ugwp_palaunch = 275.0e2
+ knob_ugwp_nslope = 0
+ knob_ugwp_lzmax = 15.750e3
+ knob_ugwp_lzmin = 0.75e3
+ knob_ugwp_lzstar = 2.0e3
+ knob_ugwp_taumin = 0.25e-3
+ knob_ugwp_tauamp = 0.5e-3
+ knob_ugwp_lhmet = 200.0e3
+ knob_ugwp_orosolv = 'pss-1986'
+/
+
+&ccpp_suite_sim_nml
+ suite_sim_file = ''
+ nprc_sim = 7
+ prc_LWRAD_cfg = 0, 0, 1
+ prc_SWRAD_cfg = 0, 0, 2
+ prc_PBL_cfg = 1, 0, 3
+ prc_GWD_cfg = 1, 0, 4
+ prc_SCNV_cfg = 1, 1, 5
+ prc_DCNV_cfg = 1, 1, 6
+ prc_cldMP_cfg = 1, 1, 7
+/
diff --git a/ccpp/suites/suite_SCM_GFS_v16_gfdlmpv3.xml b/ccpp/suites/suite_SCM_GFS_v16_gfdlmpv3.xml
new file mode 100644
index 000000000..02b8a1338
--- /dev/null
+++ b/ccpp/suites/suite_SCM_GFS_v16_gfdlmpv3.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+ GFS_time_vary_pre
+ GFS_rrtmg_setup
+ GFS_rad_time_vary
+ GFS_phys_time_vary
+
+
+
+
+ GFS_suite_interstitial_rad_reset
+ GFS_rrtmg_pre
+ GFS_radiation_surface
+ rad_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw
+ rrtmg_lw_post
+ GFS_rrtmg_post
+
+
+
+
+ GFS_suite_interstitial_phys_reset
+ GFS_suite_stateout_reset
+ get_prs_fv3
+ GFS_suite_interstitial_1
+ GFS_surface_generic_pre
+ GFS_surface_composites_pre
+ dcyc2t3
+ GFS_surface_composites_inter
+ GFS_suite_interstitial_2
+
+
+
+ sfc_diff
+ GFS_surface_loop_control_part1
+ sfc_nst_pre
+ sfc_nst
+ sfc_nst_post
+ lsm_noah
+ sfc_sice
+ GFS_surface_loop_control_part2
+
+
+
+ GFS_surface_composites_post
+ sfc_diag
+ sfc_diag_post
+ GFS_surface_generic_post
+ GFS_PBL_generic_pre
+ satmedmfvdifq
+ GFS_PBL_generic_post
+ GFS_GWD_generic_pre
+ cires_ugwp
+ cires_ugwp_post
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ samfdeepcnv
+ GFS_DCNV_generic_post
+ GFS_SCNV_generic_pre
+ samfshalcnv
+ GFS_SCNV_generic_post
+ GFS_suite_interstitial_4
+ cnvc90
+ GFS_MP_generic_pre
+ gfdl_cld_mp_v3
+ GFS_MP_generic_post
+ maximum_hourly_diagnostics
+ GFS_physics_post
+
+
+
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_gfdlmpv1.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_gfdlmpv1.xml
new file mode 100644
index 000000000..42af754b5
--- /dev/null
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_gfdlmpv1.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ GFS_time_vary_pre
+ GFS_rrtmg_setup
+ GFS_rad_time_vary
+ GFS_phys_time_vary
+
+
+
+
+ GFS_suite_interstitial_rad_reset
+ GFS_rrtmg_pre
+ GFS_radiation_surface
+ rad_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw
+ rrtmg_lw_post
+ GFS_rrtmg_post
+
+
+
+
+ GFS_suite_interstitial_phys_reset
+ GFS_suite_stateout_reset
+ get_prs_fv3
+ GFS_suite_interstitial_1
+ GFS_surface_generic_pre
+ GFS_surface_composites_pre
+ dcyc2t3
+ GFS_surface_composites_inter
+ GFS_suite_interstitial_2
+
+
+
+ sfc_diff
+ GFS_surface_loop_control_part1
+ sfc_nst_pre
+ sfc_nst
+ sfc_nst_post
+ noahmpdrv
+ sfc_sice
+ GFS_surface_loop_control_part2
+
+
+
+ GFS_surface_composites_post
+ sfc_diag
+ sfc_diag_post
+ GFS_surface_generic_post
+ GFS_PBL_generic_pre
+ satmedmfvdifq
+ GFS_PBL_generic_post
+ GFS_GWD_generic_pre
+ ugwpv1_gsldrag
+ ugwpv1_gsldrag_post
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ samfdeepcnv
+ GFS_DCNV_generic_post
+ GFS_SCNV_generic_pre
+ samfshalcnv
+ GFS_SCNV_generic_post
+ GFS_suite_interstitial_4
+ cnvc90
+ GFS_MP_generic_pre
+ gfdl_cloud_microphys
+ GFS_MP_generic_post
+ maximum_hourly_diagnostics
+ GFS_physics_post
+
+
+
+
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_gfdlmpv3.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_gfdlmpv3.xml
new file mode 100644
index 000000000..0ed4b4b75
--- /dev/null
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_gfdlmpv3.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ GFS_time_vary_pre
+ GFS_rrtmg_setup
+ GFS_rad_time_vary
+ GFS_phys_time_vary
+
+
+
+
+ GFS_suite_interstitial_rad_reset
+ GFS_rrtmg_pre
+ GFS_radiation_surface
+ rad_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw
+ rrtmg_lw_post
+ GFS_rrtmg_post
+
+
+
+
+ GFS_suite_interstitial_phys_reset
+ GFS_suite_stateout_reset
+ get_prs_fv3
+ GFS_suite_interstitial_1
+ GFS_surface_generic_pre
+ GFS_surface_composites_pre
+ dcyc2t3
+ GFS_surface_composites_inter
+ GFS_suite_interstitial_2
+
+
+
+ sfc_diff
+ GFS_surface_loop_control_part1
+ sfc_nst_pre
+ sfc_nst
+ sfc_nst_post
+ noahmpdrv
+ sfc_sice
+ GFS_surface_loop_control_part2
+
+
+
+ GFS_surface_composites_post
+ sfc_diag
+ sfc_diag_post
+ GFS_surface_generic_post
+ GFS_PBL_generic_pre
+ satmedmfvdifq
+ GFS_PBL_generic_post
+ GFS_GWD_generic_pre
+ ugwpv1_gsldrag
+ ugwpv1_gsldrag_post
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ samfdeepcnv
+ GFS_DCNV_generic_post
+ GFS_SCNV_generic_pre
+ samfshalcnv
+ GFS_SCNV_generic_post
+ GFS_suite_interstitial_4
+ cnvc90
+ GFS_MP_generic_pre
+ gfdl_cld_mp_v3
+ GFS_MP_generic_post
+ maximum_hourly_diagnostics
+ GFS_physics_post
+
+
+
+
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_nssl.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_nssl.xml
new file mode 100644
index 000000000..1956ba73d
--- /dev/null
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_nssl.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ GFS_time_vary_pre
+ GFS_rrtmg_setup
+ GFS_rad_time_vary
+ GFS_phys_time_vary
+
+
+
+
+ GFS_suite_interstitial_rad_reset
+ GFS_rrtmg_pre
+ GFS_radiation_surface
+ rad_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw
+ rrtmg_lw_post
+ GFS_rrtmg_post
+
+
+
+
+ GFS_suite_interstitial_phys_reset
+ GFS_suite_stateout_reset
+ get_prs_fv3
+ GFS_suite_interstitial_1
+ GFS_surface_generic_pre
+ GFS_surface_composites_pre
+ dcyc2t3
+ GFS_surface_composites_inter
+ GFS_suite_interstitial_2
+
+
+
+ sfc_diff
+ GFS_surface_loop_control_part1
+ sfc_nst_pre
+ sfc_nst
+ sfc_nst_post
+ noahmpdrv
+ sfc_sice
+ GFS_surface_loop_control_part2
+
+
+
+ GFS_surface_composites_post
+ sfc_diag
+ sfc_diag_post
+ GFS_surface_generic_post
+ GFS_PBL_generic_pre
+ satmedmfvdifq
+ GFS_PBL_generic_post
+ GFS_GWD_generic_pre
+ ugwpv1_gsldrag
+ ugwpv1_gsldrag_post
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ samfdeepcnv
+ GFS_DCNV_generic_post
+ GFS_SCNV_generic_pre
+ samfshalcnv
+ GFS_SCNV_generic_post
+ GFS_suite_interstitial_4
+ cnvc90
+ GFS_MP_generic_pre
+ mp_nssl
+ GFS_MP_generic_post
+ maximum_hourly_diagnostics
+ GFS_physics_post
+
+
+
+
diff --git a/scm/etc/Hera_setup_intel.sh b/scm/etc/Hera_setup_intel.sh
index 5d760260b..b6a5658b9 100755
--- a/scm/etc/Hera_setup_intel.sh
+++ b/scm/etc/Hera_setup_intel.sh
@@ -28,7 +28,7 @@ export CXX=icpc
export FC=ifort
echo "Loading cmake"
-module load cmake/3.20.1
+module load cmake/3.28.1
export CMAKE_C_COMPILER=icc
export CMAKE_CXX_COMPILER=icpc
export CMAKE_Fortran_COMPILER=ifort
diff --git a/scm/src/CCPP_typedefs.F90 b/scm/src/CCPP_typedefs.F90
index 878422d39..70872db89 100644
--- a/scm/src/CCPP_typedefs.F90
+++ b/scm/src/CCPP_typedefs.F90
@@ -760,8 +760,10 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model)
end if
!
! Allocate arrays that are conditional on physics choices
- if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson &
- .or. Model%imp_physics == Model%imp_physics_nssl &
+ if (Model%imp_physics == Model%imp_physics_gfdl &
+ .or. Model%imp_physics == Model%imp_physics_gfdl_v3 &
+ .or. Model%imp_physics == Model%imp_physics_thompson &
+ .or. Model%imp_physics == Model%imp_physics_nssl &
) then
allocate (Interstitial%graupelmp (IM))
allocate (Interstitial%icemp (IM))
@@ -926,7 +928,8 @@ subroutine gfs_interstitial_setup_tracers(Interstitial, Model)
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
Interstitial%ntrwx = 4
- elseif (Model%imp_physics == Model%imp_physics_gfdl) then
+ elseif (Model%imp_physics == Model%imp_physics_gfdl &
+ .or. Model%imp_physics == Model%imp_physics_gfdl_v3 ) then
Interstitial%ntcwx = 2
Interstitial%ntiwx = 3
Interstitial%ntrwx = 4
@@ -954,7 +957,8 @@ subroutine gfs_interstitial_setup_tracers(Interstitial, Model)
else
Interstitial%nvdiff = 10
endif
- elseif (Model%imp_physics == Model%imp_physics_gfdl) then
+ elseif (Model%imp_physics == Model%imp_physics_gfdl &
+ .or. Model%imp_physics == Model%imp_physics_gfdl_v3) then
Interstitial%nvdiff = 7
elseif (Model%imp_physics == Model%imp_physics_thompson) then
if (Model%ltaerosol) then
@@ -1375,8 +1379,10 @@ subroutine gfs_interstitial_phys_reset (Interstitial, Model)
end if
!
! Reset fields that are conditional on physics choices
- if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson &
- .or. Model%imp_physics == Model%imp_physics_nssl &
+ if (Model%imp_physics == Model%imp_physics_gfdl &
+ .or. Model%imp_physics == Model%imp_physics_gfdl_v3 &
+ .or. Model%imp_physics == Model%imp_physics_thompson &
+ .or. Model%imp_physics == Model%imp_physics_nssl &
) then
Interstitial%graupelmp = clear_val
Interstitial%icemp = clear_val
diff --git a/scm/src/CCPP_typedefs.meta b/scm/src/CCPP_typedefs.meta
index 8ab9f4ba2..d5b0f2fd2 100644
--- a/scm/src/CCPP_typedefs.meta
+++ b/scm/src/CCPP_typedefs.meta
@@ -1127,7 +1127,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_gfdl_microphysics_v3_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
[gwdcu]
standard_name = tendency_of_x_wind_due_to_convective_gravity_wave_drag
long_name = zonal wind tendency due to convective gravity wave drag
@@ -1219,7 +1219,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_gfdl_microphysics_v3_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
[dry]
standard_name = flag_nonzero_land_surface_fraction
long_name = flag indicating presence of some land surface area fraction
@@ -1726,7 +1726,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_gfdl_microphysics_v3_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
[rainp]
standard_name = tendency_of_rain_water_mixing_ratio_due_to_microphysics
long_name = tendency of rain water mixing ratio due to microphysics
@@ -1982,7 +1982,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_gfdl_microphysics_v3_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
[snowmt]
standard_name = surface_snow_melt
long_name = snow melt during timestep
diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90
index a20d73be3..89266fb51 100644
--- a/scm/src/GFS_typedefs.F90
+++ b/scm/src/GFS_typedefs.F90
@@ -894,6 +894,7 @@ module GFS_typedefs
!--- new microphysical switch
integer :: imp_physics !< choice of microphysics scheme
integer :: imp_physics_gfdl = 11 !< choice of GFDL microphysics scheme
+ integer :: imp_physics_gfdl_v3 = 13 !< choice of GFDL microphysics version 3 scheme
integer :: imp_physics_thompson = 8 !< choice of Thompson microphysics scheme
integer :: imp_physics_wsm6 = 6 !< choice of WSMG microphysics scheme
integer :: imp_physics_zhao_carr = 99 !< choice of Zhao-Carr microphysics scheme
@@ -4745,7 +4746,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%use_ufo = use_ufo
Model%exticeden = exticeden
if (Model%exticeden .and. &
- (Model%imp_physics /= Model%imp_physics_gfdl .and. Model%imp_physics /= Model%imp_physics_thompson .and. &
+ (Model%imp_physics /= Model%imp_physics_gfdl .and. &
+ Model%imp_physics /= Model%imp_physics_gfdl_v3 .and. &
+ Model%imp_physics /= Model%imp_physics_thompson .and. &
Model%imp_physics /= Model%imp_physics_nssl )) then
!see GFS_MP_generic_post.F90; exticeden is only compatible with GFDL,
!Thompson, or NSSL MP
@@ -6093,7 +6096,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
' mg_alf=', Model%mg_alf, ' mg_qcmin=', Model%mg_qcmin, &
' mg_do_ice_gmao=', Model%mg_do_ice_gmao, ' mg_do_liq_liu=', Model%mg_do_liq_liu
- elseif (Model%imp_physics == Model%imp_physics_gfdl) then !GFDL microphysics
+ elseif (Model%imp_physics == Model%imp_physics_gfdl .or. &
+ Model%imp_physics == Model%imp_physics_gfdl_v3) then !GFDL microphysics
Model%npdf3d = 0
if(Model%effr_in) then
Model%num_p3d = 5
@@ -6622,7 +6626,13 @@ subroutine control_print(Model)
print *, ' '
endif
if (Model%imp_physics == Model%imp_physics_gfdl) then
- print *, ' GFDL microphysical parameters'
+ print *, ' GFDL microphysical parameters v1'
+ print *, ' GFDL MP radiation inter: ', Model%lgfdlmprad
+ print *, ' lrefres : ', Model%lrefres
+ print *, ' '
+ endif
+ if (Model%imp_physics == Model%imp_physics_gfdl_v3) then
+ print *, ' GFDL microphysical parameters v3'
print *, ' GFDL MP radiation inter: ', Model%lgfdlmprad
print *, ' lrefres : ', Model%lrefres
print *, ' '
diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta
index 654332198..5f74089da 100644
--- a/scm/src/GFS_typedefs.meta
+++ b/scm/src/GFS_typedefs.meta
@@ -4088,6 +4088,12 @@
units = flag
dimensions = ()
type = integer
+[imp_physics_gfdl_v3]
+ standard_name = identifier_for_gfdl_microphysics_v3_scheme
+ long_name = choice of GFDL microphysics v3 scheme
+ units = flag
+ dimensions = ()
+ type = integer
[imp_physics_thompson]
standard_name = identifier_for_thompson_microphysics_scheme
long_name = choice of Thompson microphysics scheme
@@ -9896,7 +9902,7 @@
dependencies = hooks/machine.F,hooks/physcons.F90
dependencies = Radiation/RRTMG/radlw_param.f,Radiation/RRTMG/radsw_param.f
dependencies = photochem/h2o_def.f,photochem/module_ozphys.F90
- dependencies = MP/GFDL/GFDL_parse_tracers.F90
+ dependencies = MP/GFDL_parse_tracers.F90
dependencies = Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90
[ccpp-arg-table]
diff --git a/scm/src/run_scm.py b/scm/src/run_scm.py
index 20cfbce6a..926fb68ba 100755
--- a/scm/src/run_scm.py
+++ b/scm/src/run_scm.py
@@ -488,12 +488,12 @@ def setup_rundir(self):
try:
input_type = case_nml['case_config']['input_type']
if input_type == 1:
+ surface_flux_spec = False
#open the case data file and read the surfaceForcing global attribute
- case_data_dir = case_nml['case_config']['case_data_dir']
- nc_fid = Dataset(os.path.join(SCM_ROOT, case_data_dir) + '/' + self._case + '_SCM_driver.nc' , 'r')
- surfaceForcing = nc_fid.getncattr('surfaceForcing')
+ nc_fid = Dataset(os.path.join(SCM_ROOT, self._case_data_dir) + '/' + self._case + '_SCM_driver.nc' , 'r')
+ surfaceForcing = nc_fid.getncattr('surface_forcing_temp')
nc_fid.close()
- if (surfaceForcing.lower() == 'flux' or surfaceForcing.lower() == 'surfaceflux'):
+ if (surfaceForcing.lower() == 'flux' or surfaceForcing.lower() == 'surface_flux'):
surface_flux_spec = True
except KeyError:
# if not using DEPHY format, check to see if surface fluxes are specified in the case configuration file (default is False)
diff --git a/scm/src/scm_input.F90 b/scm/src/scm_input.F90
index a39404366..cc3effcd5 100644
--- a/scm/src/scm_input.F90
+++ b/scm/src/scm_input.F90
@@ -950,7 +950,7 @@ subroutine get_case_init_DEPHY(scm_state, scm_input)
real(kind=sp) :: z_nudging_temp, z_nudging_theta, z_nudging_thetal, z_nudging_qv, z_nudging_qt, z_nudging_rv, z_nudging_rt, z_nudging_u, z_nudging_v
real(kind=sp) :: p_nudging_temp, p_nudging_theta, p_nudging_thetal, p_nudging_qv, p_nudging_qt, p_nudging_rv, p_nudging_rt, p_nudging_u, p_nudging_v
character(len=5) :: input_surfaceType
- character(len=11) :: input_surfaceForcingWind='',input_surfaceForcingMoist='',input_surfaceForcingLSM='',input_surfaceForcingTemp=''
+ character(len=12) :: input_surfaceForcingWind='',input_surfaceForcingMoist='',input_surfaceForcingLSM='',input_surfaceForcingTemp=''
! initial variables (IC = Initial Condition)
real(kind=dp), allocatable :: input_lat(:) !< column latitude (deg)
@@ -1630,7 +1630,7 @@ subroutine get_case_init_DEPHY(scm_state, scm_input)
call NetCDF_read_var(ncid, "wprvp_s", .False., input_force_wprvp)
call NetCDF_read_var(ncid, "wprtp_s", .False., input_force_wprtp)
else if (trim(input_surfaceForcingMoist) == 'surface_flux') then
- call NetCDF_read_var(ncid, "hfls", .False., input_force_sfc_sens_flx)
+ call NetCDF_read_var(ncid, "hfls", .False., input_force_sfc_lat_flx)
endif
!
diff --git a/scm/src/suite_info.py b/scm/src/suite_info.py
index 87d726b8f..e008ff1c4 100755
--- a/scm/src/suite_info.py
+++ b/scm/src/suite_info.py
@@ -44,7 +44,10 @@ def timestep(self, value):
suite_list = []
suite_list.append(suite('SCM_GFS_v16', 'tracers_GFS_v16.txt', 'input_GFS_v16.nml', 600.0, 1800.0, True ))
suite_list.append(suite('SCM_GFS_v17_p8', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_p8.nml', 600.0, 600.0, True ))
-suite_list.append(suite('SCM_GFS_v17_p8_ugwpv1', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_p8_ugwpv1_C96.nml', 600.0, 600.0, True ))
+suite_list.append(suite('SCM_GFS_v17_p8_ugwpv1', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_p8_ugwpv1_C768.nml', 600.0, 600.0, True ))
+suite_list.append(suite('SCM_GFS_v17_p8_ugwpv1_gfdlmpv1', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_p8_ugwpv1_gfdlmpv1_C768.nml', 600.0, 600.0, True ))
+suite_list.append(suite('SCM_GFS_v17_p8_ugwpv1_gfdlmpv3', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_p8_ugwpv1_gfdllmpv3_C768.nml', 600.0, 600.0, True ))
+suite_list.append(suite('SCM_GFS_v17_p8_ugwpv1_nssl', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_p8_ugwpv1_nssl_C768.nml', 600.0, 600.0, True ))
suite_list.append(suite('SCM_RAP', 'tracers_RAP.txt', 'input_RAP.nml', 600.0, 600.0 , True ))
suite_list.append(suite('SCM_RRFS_v1beta', 'tracers_RRFS_v1beta.txt', 'input_RRFS_v1beta.nml', 600.0, 600.0 , True ))
suite_list.append(suite('SCM_WoFS_v0', 'tracers_WoFS_v0.txt', 'input_WoFS_v0.nml', 600.0, 600.0 , True ))