diff --git a/ccpp/physics_namelists/input_RRFS_v1.nml b/ccpp/physics_namelists/input_RRFS_v1.nml
new file mode 100644
index 000000000..60de83a4e
--- /dev/null
+++ b/ccpp/physics_namelists/input_RRFS_v1.nml
@@ -0,0 +1,145 @@
+&gfs_physics_nml
+ addsmoke_flag = 1
+ aero_dir_fdb = .true.
+ aero_ind_fdb = .false.
+ bl_mynn_edmf = 1
+ bl_mynn_edmf_mom = 1
+ bl_mynn_tkeadvect = .true.
+ cal_pre = .false.
+ cdmbgwd = 3.5, 1.0
+ clm_debug_print = .false.
+ clm_lake_debug = .false.
+ cnvcld = .false.
+ cnvgwd = .false.
+ coarsepm_settling = 1
+ cplflx = .false.
+ diag_log = .true.
+ debug = .false.
+ do_deep = .true.
+ do_gsl_drag_ls_bl = .true.
+ do_gsl_drag_ss = .true.
+ do_gsl_drag_tofd = .true.
+ do_mynnedmf = .true.
+ do_mynnsfclay = .true.
+ do_plumerise = .true.
+ do_smoke_transport = .true.
+ do_tofd = .false.
+ do_ugwp = .false.
+ do_ugwp_v0 = .false.
+ do_ugwp_v0_nst_only = .false.
+ do_ugwp_v0_orog_only = .false.
+ drydep_opt = 1
+ dspheat = .true.
+ dt_inner = 36
+ dust_alpha = 10.0
+ dust_drylimit_factor = 0.5
+ dust_gamma = 1.3
+ dust_moist_correction = 2.0
+ dust_opt = 1
+ ebb_dcycle = 2
+ effr_in = .true.
+ enh_mix = .false.
+ fhcyc = 0
+ fhlwr = 900.0
+ fhswr = 900.0
+ fhzero = 1.0
+ frac_ice = .true.
+ gwd_opt = 3
+ h2o_phys = .true.
+ hybedmf = .false.
+ iaer = 1011
+ ialb = 2
+ iau_delthrs = 6
+ iau_inc_files = ''
+ iaufhrs = 30
+ iccn = 2
+ icliq_sw = 2
+ icloud_bl = 1
+ ico2 = 2
+ iems = 2
+ imfdeepcnv = 3
+ imfshalcnv = -1
+ imp_physics = 8
+ iopt_alb = 2
+ iopt_btr = 1
+ iopt_crs = 1
+ iopt_dveg = 2
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_lake = 2
+ iopt_rad = 1
+ iopt_run = 1
+ iopt_sfc = 1
+ iopt_snf = 4
+ iopt_stc = 1
+ iopt_tbot = 2
+ iovr = 3
+ isncond_opt = 2
+ isncovr_opt = 3
+ isol = 2
+ isot = 1
+ isubc_lw = 2
+ isubc_sw = 2
+ ivegsrc = 1
+ kice = 9
+ ldiag3d = .true.
+ ldiag_ugwp = .false.
+ lgfdlmprad = .false.
+ lheatstrg = .false.
+ lightning_threat = .true.
+ lkm = 1
+ lradar = .true.
+ lrefres = .true.
+ lsm = 3
+ lsoil = 9
+ lsoil_lsm = 9
+ ltaerosol = .true.
+ lwhtr = .true.
+ min_lakeice = 0.15
+ min_seaice = 0.15
+ mix_chem = .true.
+ mosaic_lu = 1
+ mosaic_soil = 1
+ nsfullradar_diag = 3600
+ oz_phys = .false.
+ oz_phys_2015 = .true.
+ pdfcld = .false.
+ plume_wind_eff = 1
+ plumerisefire_frq = 60
+ pre_rad = .false.
+ print_diff_pgr = .true.
+ prslrd0 = 0.0
+ qdiag3d = .true.
+ random_clds = .false.
+ redrag = .true.
+ rrfs_sd = .true.
+ rrfs_smoke_debug = .false.
+ satmedmf = .false.
+ seas_opt = 0
+ sfclay_compute_flux = .true.
+ shal_cnv = .false.
+ smoke_conv_wet_coef = 0.5, 0.5, 0.5
+ smoke_forecast = 1
+ swhtr = .true.
+ thsfc_loc = .false.
+ trans_trac = .true.
+ ttendlim = -999
+ use_ufo = .true.
+ wetdep_ls_alpha = 0.5
+ wetdep_ls_opt = 1
+/
+
+&cires_ugwp_nml
+ knob_ugwp_azdir = 2, 4, 4, 4
+ knob_ugwp_doaxyz = 1
+ knob_ugwp_doheat = 1
+ knob_ugwp_dokdis = 1
+ knob_ugwp_effac = 1, 1, 1, 1
+ knob_ugwp_ndx4lh = 1
+ knob_ugwp_solver = 2
+ knob_ugwp_source = 1, 1, 0, 0
+ knob_ugwp_stoch = 0, 0, 0, 0
+ knob_ugwp_version = 0
+ knob_ugwp_wvspec = 1, 25, 25, 25
+ launch_level = 25
+/
diff --git a/ccpp/suites/suite_SCM_RRFS_v1.xml b/ccpp/suites/suite_SCM_RRFS_v1.xml
new file mode 100644
index 000000000..ef1c73157
--- /dev/null
+++ b/ccpp/suites/suite_SCM_RRFS_v1.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+ GFS_time_vary_pre
+ GFS_rrtmg_setup
+ GFS_rad_time_vary
+ GFS_phys_time_vary
+
+
+
+
+ GFS_suite_interstitial_rad_reset
+ sgscloud_radpre
+ GFS_rrtmg_pre
+ GFS_radiation_surface
+ rad_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw
+ sgscloud_radpost
+ 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
+
+
+
+ mynnsfc_wrapper
+ GFS_surface_loop_control_part1
+ lsm_ruc
+ clm_lake
+ GFS_surface_loop_control_part2
+
+
+
+ GFS_surface_composites_post
+ sfc_diag
+ sfc_diag_post
+ GFS_surface_generic_post
+ rrfs_smoke_wrapper
+ mynnedmf_wrapper
+ rrfs_smoke_postpbl
+ GFS_GWD_generic_pre
+ drag_suite
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ cu_gf_driver_pre
+ cu_gf_driver
+ GFS_DCNV_generic_post
+ GFS_suite_interstitial_4
+ cnvc90
+ GFS_MP_generic_pre
+ mp_thompson_pre
+ mp_thompson
+ mp_thompson_post
+ GFS_MP_generic_post
+ cu_gf_driver_post
+ maximum_hourly_diagnostics
+ GFS_physics_post
+
+
+
\ No newline at end of file
diff --git a/ccpp/suites/suite_SCM_RRFS_v1_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1_ps.xml
new file mode 100644
index 000000000..91918a6b8
--- /dev/null
+++ b/ccpp/suites/suite_SCM_RRFS_v1_ps.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+ GFS_time_vary_pre
+ GFS_rrtmg_setup
+ GFS_rad_time_vary
+ GFS_phys_time_vary
+
+
+
+
+ GFS_suite_interstitial_rad_reset
+ sgscloud_radpre
+ GFS_rrtmg_pre
+ GFS_radiation_surface
+ rad_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw
+ sgscloud_radpost
+ 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
+ scm_sfc_flux_spec
+ dcyc2t3
+ GFS_suite_interstitial_2
+ rrfs_smoke_wrapper
+ mynnedmf_wrapper
+ rrfs_smoke_postpbl
+ GFS_GWD_generic_pre
+ drag_suite
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ cu_gf_driver_pre
+ cu_gf_driver
+ GFS_DCNV_generic_post
+ GFS_suite_interstitial_4
+ cnvc90
+ GFS_MP_generic_pre
+ mp_thompson_pre
+ mp_thompson
+ mp_thompson_post
+ GFS_MP_generic_post
+ cu_gf_driver_post
+ maximum_hourly_diagnostics
+ GFS_physics_post
+
+
+
\ No newline at end of file
diff --git a/scm/etc/tracer_config/tracers_RRFS_v1.txt b/scm/etc/tracer_config/tracers_RRFS_v1.txt
new file mode 100644
index 000000000..3835c38a2
--- /dev/null
+++ b/scm/etc/tracer_config/tracers_RRFS_v1.txt
@@ -0,0 +1,16 @@
+"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"
+"water_nc","cloud_droplet_number_concentration","kg-1"
+"ice_nc","ice_number_concentration","kg-1"
+"rain_nc","rain_number_concentration","kg-1"
+"o3mr","ozone_mixing_ratio","kg kg-1"
+"liq_aero","water_friendly_aerosol_number_concentration","kg-1"
+"ice_aero","ice_friendly_aerosol_number_concentration","kg-1"
+"sgs_tke","turbulent_kinetic_energy","m2 s-2"
+"smoke","smoke_tracer_concentration","ug kg-1"
+"dust","dust_tracer_concentration","ug kg-1"
+"coarsepm","coarse_particulate_matter","ug kg-1"
\ No newline at end of file
diff --git a/scm/src/scm_type_defs.F90 b/scm/src/scm_type_defs.F90
index 550f7d951..ce9805ae6 100644
--- a/scm/src/scm_type_defs.F90
+++ b/scm/src/scm_type_defs.F90
@@ -85,6 +85,9 @@ module scm_type_defs
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
integer :: mass_weighted_rime_factor_index !< index for mass-weighted rime factor
+ integer :: smoke_index !< index for smoke in the tracer array
+ integer :: dust_index !< index for dust in the tracer array
+ integer :: coarsepm_index !< index for coarsepm in the tracer array
integer :: init_year, init_month, init_day, init_hour, init_min
character(len=32), allocatable :: tracer_names(:) !<
integer, allocatable :: tracer_types(:) !<
@@ -489,6 +492,9 @@ subroutine scm_state_create(scm_state, n_columns, n_levels, n_soil, n_snow, n_ti
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")
scm_state%mass_weighted_rime_factor_index = get_tracer_index(scm_state%tracer_names,"q_rimef")
+ scm_state%smoke_index = get_tracer_index(scm_state%tracer_names,"smoke")
+ scm_state%dust_index = get_tracer_index(scm_state%tracer_names,"dust")
+ scm_state%coarsepm_index = get_tracer_index(scm_state%tracer_names,"coarsepm")
scm_state%nwat = 0
if(scm_state%water_vapor_index /= -99) then
diff --git a/scm/src/suite_info.py b/scm/src/suite_info.py
index f3420cdf5..19dffb022 100755
--- a/scm/src/suite_info.py
+++ b/scm/src/suite_info.py
@@ -46,6 +46,7 @@ def timestep(self, value):
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_RAP', 'tracers_RAP.txt', 'input_RAP.nml', 600.0, 600.0 , True ))
+suite_list.append(suite('SCM_RRFS_v1', 'tracers_RRFS_v1.txt', 'input_RRFS_v1.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 ))
suite_list.append(suite('SCM_HRRR', 'tracers_HRRR.txt', 'input_HRRR.nml', 600.0, 600.0 , True ))