From 0d294b3bb03c5f60941ea34d610fd6b718ea937e Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Wed, 15 May 2024 10:40:51 -0600 Subject: [PATCH 1/3] Add namelist option and sigmab (tracer) for HR3 --- ...t_GFS_v17_H3.nml => input_GFS_v17_HR3.nml} | 32 ++-- .../input_GFS_v17_HR3_ps.nml | 171 ++++++++++++++++++ scm/etc/tracer_config/tracers_GFS_v17_HR3.txt | 11 ++ scm/src/GFS_typedefs.F90 | 1 + scm/src/scm_output.F90 | 3 + scm/src/scm_type_defs.F90 | 2 + scm/src/suite_info.py | 2 +- scm/src/supported_suites.py | 2 +- 8 files changed, 206 insertions(+), 18 deletions(-) rename ccpp/physics_namelists/{input_GFS_v17_H3.nml => input_GFS_v17_HR3.nml} (90%) create mode 100644 ccpp/physics_namelists/input_GFS_v17_HR3_ps.nml create mode 100644 scm/etc/tracer_config/tracers_GFS_v17_HR3.txt diff --git a/ccpp/physics_namelists/input_GFS_v17_H3.nml b/ccpp/physics_namelists/input_GFS_v17_HR3.nml similarity index 90% rename from ccpp/physics_namelists/input_GFS_v17_H3.nml rename to ccpp/physics_namelists/input_GFS_v17_HR3.nml index 10d60a77..8d859e58 100644 --- a/ccpp/physics_namelists/input_GFS_v17_H3.nml +++ b/ccpp/physics_namelists/input_GFS_v17_HR3.nml @@ -12,7 +12,7 @@ ltaerosol = .false. lradar = .true. ttendlim = -999 - dt_inner = 225.0 + dt_inner = 150 sedi_semi = .true. decfl = 10 oz_phys = .false. @@ -36,14 +36,18 @@ do_gsl_drag_tofd = .true. do_ugwp_v1_orog_only = .false. min_lakeice = 0.15 - min_seaice = 0.15 - use_cice_alb = .false. + min_seaice = 1.0e-6 + use_cice_alb = .true. pdfcld = .false. fhswr = 1200. fhlwr = 1200. - ialb = 1 - iems = 1 - iaer = 5111 + progsigma = .true. + betascu = 8.0 + betamcu = 1.0 + betadcu = 2.0 + ialb = 2 + iems = 2 + iaer = 1011 icliq_sw = 2 ico2 = 2 isubc_sw = 2 @@ -67,7 +71,7 @@ imfshalcnv = 2 imfdeepcnv = 2 ras = .false. - cdmbgwd = 10.0,3.5,1.0,1.0 + cdmbgwd = 2.5,7.5,1.0,1.0 prslrd0 = 0. ivegsrc = 1 isot = 1 @@ -87,14 +91,13 @@ iopt_tbot = 2 iopt_stc = 3 debug = .false. - nstf_name = 2,1,0,0,0 + nstf_name = 2,0,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. @@ -120,7 +123,7 @@ cplwav2atm = .false. do_ca = .false. ca_global = .false. - ca_sgs = .false. + ca_sgs = .true. nca = 1 ncells = 5 nlives = 12 @@ -129,10 +132,7 @@ nthresh = 18 ca_trigger = .true. nspinup = 1 - iseed_ca = 12345 - lndp_type = 0 - n_var_lndp = 0 - do_ccpp_suite_sim = .false. + iseed_ca = 1448371824 / &cires_ugwp_nml @@ -148,12 +148,12 @@ knob_ugwp_dokdis = 2 knob_ugwp_ndx4lh = 4 knob_ugwp_palaunch = 275.0e2 - knob_ugwp_nslope = 0 + knob_ugwp_nslope = 1 knob_ugwp_lzmax = 15.750e3 knob_ugwp_lzmin = 0.75e3 knob_ugwp_lzstar = 2.0e3 knob_ugwp_taumin = 0.25e-3 - knob_ugwp_tauamp = 1.5e-3 + knob_ugwp_tauamp = 0.5e-3 knob_ugwp_lhmet = 200.0e3 knob_ugwp_orosolv = 'pss-1986' / diff --git a/ccpp/physics_namelists/input_GFS_v17_HR3_ps.nml b/ccpp/physics_namelists/input_GFS_v17_HR3_ps.nml new file mode 100644 index 00000000..b2f93c79 --- /dev/null +++ b/ccpp/physics_namelists/input_GFS_v17_HR3_ps.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 = 150 + 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 = 1.0e-6 + use_cice_alb = .true. + pdfcld = .false. + fhswr = 1200. + fhlwr = 1200. + progsigma = .true. + betascu = 8.0 + betamcu = 1.0 + betadcu = 2.0 + ialb = 2 + iems = 2 + iaer = 1011 + 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 = .false. + 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,0,0,0,0 + nst_anl = .true. + psautco = 0.0008,0.0005 + prautco = 0.00015,0.00015 + lgfdlmprad = .false. + effr_in = .true. + ldiag_ugwp = .false. + 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 = .true. + nca = 1 + ncells = 5 + nlives = 12 + nseed = 1 + nfracseed = 0.5 + nthresh = 18 + ca_trigger = .true. + nspinup = 1 + iseed_ca = 1448371824 +/ + +&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 = 1 + 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/scm/etc/tracer_config/tracers_GFS_v17_HR3.txt b/scm/etc/tracer_config/tracers_GFS_v17_HR3.txt new file mode 100644 index 00000000..eeba3d9e --- /dev/null +++ b/scm/etc/tracer_config/tracers_GFS_v17_HR3.txt @@ -0,0 +1,11 @@ +"sphum","water_vapor_specific_humidity","kg kg-1" +"liq_wat","cloud_condensed_water_mixing_ratio","kg kg-1" +"ice_wat","ice_water_mixing_ratio","kg kg-1" +"rainwat","rain_water_mixing_ratio","kg kg-1" +"snowwat","snow_water_mixing_ratio","kg kg-1" +"graupel","graupel_mixing_ratio","kg kg-1" +"ice_nc","ice_number_concentration","kg-1" +"rain_nc","rain_number_concentration","kg-1" +"o3mr","ozone_mixing_ratio","kg kg-1" +"sgs_tke","turbulent_kinetic_energy","m2 s-2" +"sigmab"," prognostic_updraft_area_fraction_in_convection","frac" diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 2e822487..cf4a6db0 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -5393,6 +5393,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & call label_dtend_tracer(Model,100+Model%ntgz,'graupel_ref','graupel reflectivity','m3 kg-1 s-1') call label_dtend_tracer(Model,100+Model%nthz,'hail_ref','hail reflectivity','m3 kg-1 s-1') call label_dtend_tracer(Model,100+Model%ntke,'sgs_tke','turbulent kinetic energy','J s-1') + call label_dtend_tracer(Model,100+Model%ntsigma,'sigmab','prognostic updraft area fraction in convection','frac') call label_dtend_tracer(Model,100+Model%nqrimef,'q_rimef','mass weighted rime factor','kg-1 s-1') call label_dtend_tracer(Model,100+Model%ntwa,'liq_aero','number concentration of water-friendly aerosols','kg-1 s-1') call label_dtend_tracer(Model,100+Model%ntia,'ice_aero','number concentration of ice-friendly aerosols','kg-1 s-1') diff --git a/scm/src/scm_output.F90 b/scm/src/scm_output.F90 index 3e452882..eac7470d 100644 --- a/scm/src/scm_output.F90 +++ b/scm/src/scm_output.F90 @@ -187,6 +187,7 @@ subroutine output_init_state(ncid, time_inst_id, hor_dim_id, vert_dim_id, vert_d call NetCDF_def_var(ncid, 'ql', NF90_FLOAT, "suspended resolved liquid cloud water on model layer centers", "kg kg-1", dummy_id, (/ hor_dim_id, vert_dim_id, time_inst_id /)) call NetCDF_def_var(ncid, 'qi', NF90_FLOAT, "suspended resolved ice cloud water on model layer centers", "kg kg-1", dummy_id, (/ hor_dim_id, vert_dim_id, time_inst_id /)) call NetCDF_def_var(ncid, 'qc', NF90_FLOAT, "suspended (resolved + SGS) total cloud water on model layer centers", "kg kg-1", dummy_id, (/ hor_dim_id, vert_dim_id, time_inst_id /)) + call NetCDF_def_var(ncid, 'sigmab', NF90_FLOAT, "updraft area fraction on model layer centers", "frac", dummy_id, (/ hor_dim_id, time_inst_id /)) end subroutine output_init_state @@ -497,6 +498,8 @@ subroutine output_append_state(ncid, scm_state, physics) call NetCDF_put_var(ncid, "v", scm_state%state_v(:,:,1), scm_state%itt_out) call NetCDF_put_var(ncid, "ql", scm_state%state_tracer(:,:,scm_state%cloud_water_index,1), scm_state%itt_out) call NetCDF_put_var(ncid, "qi", scm_state%state_tracer(:,:,scm_state%cloud_ice_index,1), scm_state%itt_out) + !zhang + call NetCDF_put_var(ncid, "sigmab", scm_state%state_tracer(:,1,scm_state%sigmab_index,1), scm_state%itt_out) if (physics%model%do_mynnedmf) then call NetCDF_put_var(ncid, "qc", scm_state%state_tracer(:,:,scm_state%cloud_water_index,1) + & scm_state%state_tracer(:,:,scm_state%cloud_ice_index,1) + & diff --git a/scm/src/scm_type_defs.F90 b/scm/src/scm_type_defs.F90 index 550f7d95..a84d22a7 100644 --- a/scm/src/scm_type_defs.F90 +++ b/scm/src/scm_type_defs.F90 @@ -81,6 +81,7 @@ module scm_type_defs integer :: graupel_volume_index !< index for graupel volume in the tracer array integer :: hail_volume_index !< index for hail volume in the tracer array integer :: tke_index !< index for TKE in the tracer array + integer :: sigmab_index !< index for prognostic updraft area fraction in convection integer :: ccn_index !< index for CCN in the tracer array integer :: water_friendly_aerosol_index !< index for water-friendly aerosols in the tracer array integer :: ice_friendly_aerosol_index !< index for ice-friendly aerosols in the tracer array @@ -485,6 +486,7 @@ subroutine scm_state_create(scm_state, n_columns, n_levels, n_soil, n_snow, n_ti scm_state%graupel_volume_index = get_tracer_index(scm_state%tracer_names,"graupel_vol") scm_state%hail_volume_index = get_tracer_index(scm_state%tracer_names,"hail_vol") scm_state%tke_index = get_tracer_index(scm_state%tracer_names,"sgs_tke") + scm_state%sigmab_index = get_tracer_index(scm_state%tracer_names,"sigmab") scm_state%ccn_index = get_tracer_index(scm_state%tracer_names,"ccn_nc") scm_state%water_friendly_aerosol_index = get_tracer_index(scm_state%tracer_names,"liq_aero") scm_state%ice_friendly_aerosol_index = get_tracer_index(scm_state%tracer_names,"ice_aero") diff --git a/scm/src/suite_info.py b/scm/src/suite_info.py index f3420cdf..87470f6d 100755 --- a/scm/src/suite_info.py +++ b/scm/src/suite_info.py @@ -44,7 +44,7 @@ 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_HR3', 'tracers_GFS_v17_p8.txt', 'input_GFS_v17_HR3.nml', 600.0, 600.0, True )) +suite_list.append(suite('SCM_GFS_v17_HR3', 'tracers_GFS_v17_HR3_aero.txt', 'input_GFS_v17_HR3.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 )) diff --git a/scm/src/supported_suites.py b/scm/src/supported_suites.py index 8cbac028..aee06a70 100644 --- a/scm/src/supported_suites.py +++ b/scm/src/supported_suites.py @@ -1 +1 @@ -suites = ["SCM_GFS_v16","SCM_GFS_v17_p8","SCM_HRRR","SCM_RAP","SCM_RRFS_v1beta","SCM_WoFS_v0"] +suites = ["SCM_GFS_v16","SCM_GFS_v17_p8","SCM_GFS_v17_HR3","SCM_HRRR","SCM_RAP","SCM_RRFS_v1beta","SCM_WoFS_v0"] From e3869e11abd027e61884b637093377b495fa5d16 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Wed, 15 May 2024 11:12:23 -0600 Subject: [PATCH 2/3] minor fix/cleanup --- scm/src/scm_output.F90 | 1 - scm/src/suite_info.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/scm/src/scm_output.F90 b/scm/src/scm_output.F90 index eac7470d..3458da3c 100644 --- a/scm/src/scm_output.F90 +++ b/scm/src/scm_output.F90 @@ -498,7 +498,6 @@ subroutine output_append_state(ncid, scm_state, physics) call NetCDF_put_var(ncid, "v", scm_state%state_v(:,:,1), scm_state%itt_out) call NetCDF_put_var(ncid, "ql", scm_state%state_tracer(:,:,scm_state%cloud_water_index,1), scm_state%itt_out) call NetCDF_put_var(ncid, "qi", scm_state%state_tracer(:,:,scm_state%cloud_ice_index,1), scm_state%itt_out) - !zhang call NetCDF_put_var(ncid, "sigmab", scm_state%state_tracer(:,1,scm_state%sigmab_index,1), scm_state%itt_out) if (physics%model%do_mynnedmf) then call NetCDF_put_var(ncid, "qc", scm_state%state_tracer(:,:,scm_state%cloud_water_index,1) + & diff --git a/scm/src/suite_info.py b/scm/src/suite_info.py index 87470f6d..fb60e12a 100755 --- a/scm/src/suite_info.py +++ b/scm/src/suite_info.py @@ -44,7 +44,7 @@ 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_HR3', 'tracers_GFS_v17_HR3_aero.txt', 'input_GFS_v17_HR3.nml', 600.0, 600.0, True )) +suite_list.append(suite('SCM_GFS_v17_HR3', 'tracers_GFS_v17_HR3.txt', 'input_GFS_v17_HR3.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 )) From cb1e5e264925dfba5a4faeff5225850d5f6b52f5 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Mon, 20 May 2024 15:30:39 +0000 Subject: [PATCH 3/3] Add GP SDFs/NMLs to SCM --- .../input_GFS_v17_HR3_RRTMGP.nml | 171 ++++++++++++++++++ .../input_GFS_v17_HR3_RRTMGP_ps.nml | 171 ++++++++++++++++++ ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP.xml | 89 +++++++++ .../suite_SCM_GFS_v17_HR3_RRTMGP_ps.xml | 70 +++++++ scm/src/suite_info.py | 1 + 5 files changed, 502 insertions(+) create mode 100644 ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP.nml create mode 100644 ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP_ps.nml create mode 100644 ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP.xml create mode 100644 ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP_ps.xml diff --git a/ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP.nml b/ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP.nml new file mode 100644 index 00000000..f7cf9097 --- /dev/null +++ b/ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP.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 = 150 + 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 = 1.0e-6 + use_cice_alb = .true. + pdfcld = .false. + fhswr = 1200. + fhlwr = 1200. + progsigma = .true. + betascu = 8.0 + betamcu = 1.0 + betadcu = 2.0 + ialb = 2 + iems = 2 + iaer = 1011 + 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,0,0,0,0 + nst_anl = .true. + psautco = 0.0008,0.0005 + prautco = 0.00015,0.00015 + lgfdlmprad = .false. + effr_in = .true. + ldiag_ugwp = .false. + do_sppt = .false. + do_shum = .false. + do_skeb = .false. + do_RRTMGP = .true. + doGP_cldoptics_LUT = .true. + doGP_lwscat = .true. + active_gases = 'h2o_co2_o3_n2o_ch4_o2' + ngases = 6 + rrtmgp_root = '../../ccpp/physics/physics/Radiation/RRTMGP/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-reordered-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 = .true. + nca = 1 + ncells = 5 + nlives = 12 + nseed = 1 + nfracseed = 0.5 + nthresh = 18 + ca_trigger = .true. + nspinup = 1 + iseed_ca = 1448371824 +/ + +&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 = 1 + 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_HR3_RRTMGP_ps.nml b/ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP_ps.nml new file mode 100644 index 00000000..c562957f --- /dev/null +++ b/ccpp/physics_namelists/input_GFS_v17_HR3_RRTMGP_ps.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 = 150 + 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 = 1.0e-6 + use_cice_alb = .true. + pdfcld = .false. + fhswr = 1200. + fhlwr = 1200. + progsigma = .true. + betascu = 8.0 + betamcu = 1.0 + betadcu = 2.0 + ialb = 2 + iems = 2 + iaer = 1011 + 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 = .false. + 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,0,0,0,0 + nst_anl = .true. + psautco = 0.0008,0.0005 + prautco = 0.00015,0.00015 + lgfdlmprad = .false. + effr_in = .true. + ldiag_ugwp = .false. + do_sppt = .false. + do_shum = .false. + do_skeb = .false. + do_RRTMGP = .true. + doGP_cldoptics_LUT = .true. + doGP_lwscat = .true. + active_gases = 'h2o_co2_o3_n2o_ch4_o2' + ngases = 6 + rrtmgp_root = '../../ccpp/physics/physics/Radiation/RRTMGP/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-reordered-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 = .true. + nca = 1 + ncells = 5 + nlives = 12 + nseed = 1 + nfracseed = 0.5 + nthresh = 18 + ca_trigger = .true. + nspinup = 1 + iseed_ca = 1448371824 +/ + +&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 = 1 + 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_v17_HR3_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP.xml new file mode 100644 index 00000000..09bcbfa6 --- /dev/null +++ b/ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP.xml @@ -0,0 +1,89 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmgp_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmgp_pre + GFS_radiation_surface + GFS_rrtmgp_cloud_mp + GFS_rrtmgp_cloud_overlap + GFS_cloud_diagnostics + rrtmgp_aerosol_optics + rrtmgp_sw_main + rrtmgp_lw_main + GFS_rrtmgp_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_thompson_pre + + + mp_thompson + + + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + GFS_physics_post + + + + diff --git a/ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP_ps.xml new file mode 100644 index 00000000..0ba77dff --- /dev/null +++ b/ccpp/suites/suite_SCM_GFS_v17_HR3_RRTMGP_ps.xml @@ -0,0 +1,70 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmgp_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmgp_pre + GFS_radiation_surface + GFS_rrtmgp_cloud_mp + GFS_rrtmgp_cloud_overlap + GFS_cloud_diagnostics + rrtmgp_aerosol_optics + rrtmgp_sw_main + rrtmgp_lw_main + GFS_rrtmgp_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + scm_sfc_flux_spec + dcyc2t3 + GFS_suite_interstitial_2 + 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_thompson_pre + + + mp_thompson + + + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + GFS_physics_post + + + + diff --git a/scm/src/suite_info.py b/scm/src/suite_info.py index fb60e12a..adfe3335 100755 --- a/scm/src/suite_info.py +++ b/scm/src/suite_info.py @@ -45,6 +45,7 @@ def timestep(self, value): 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_HR3', 'tracers_GFS_v17_HR3.txt', 'input_GFS_v17_HR3.nml', 600.0, 600.0, True )) +suite_list.append(suite('SCM_GFS_v17_HR3_RRTMGP','tracers_GFS_v17_p8.txt', 'input_GFS_v17_HR3_RRTMGP.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 ))