diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90
index 541d34e184..3be66033ff 100644
--- a/ccpp/data/GFS_typedefs.F90
+++ b/ccpp/data/GFS_typedefs.F90
@@ -283,6 +283,7 @@ module GFS_typedefs
!-- In/Out
real (kind=kind_phys), pointer :: conv_act(:) => null() !< convective activity counter for Grell-Freitas
+ real (kind=kind_phys), pointer :: conv_act_m(:)=> null() !< midlevel convective activity counter for Grell-Freitas
real (kind=kind_phys), pointer :: hice (:) => null() !< sea ice thickness
real (kind=kind_phys), pointer :: weasd (:) => null() !< water equiv of accumulated snow depth (kg/m**2)
!< over land and sea ice
@@ -1425,6 +1426,8 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: prevst (:,:) => null() !<
real (kind=kind_phys), pointer :: prevsq (:,:) => null() !<
integer, pointer :: cactiv (:) => null() !< convective activity memory contour
+ integer, pointer :: cactiv_m (:) => null() !< mid-level convective activity memory contour
+ real (kind=kind_phys), pointer :: aod_gf (:) => null()
!--- MYNN prognostic variables that can't be in the Intdiag or Interstitial DDTs
real (kind=kind_phys), pointer :: CLDFRA_BL (:,:) => null() !
@@ -2706,7 +2709,9 @@ subroutine sfcprop_create (Sfcprop, IM, Model)
end if
if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then
allocate (Sfcprop%conv_act(IM))
+ allocate (Sfcprop%conv_act_m(IM))
Sfcprop%conv_act = zero
+ Sfcprop%conv_act_m = zero
end if
end subroutine sfcprop_create
@@ -6047,7 +6052,11 @@ subroutine tbd_create (Tbd, IM, Model)
if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then
allocate(Tbd%cactiv(IM))
+ allocate(Tbd%cactiv_m(IM))
+ allocate(Tbd%aod_gf(IM))
Tbd%cactiv = zero
+ Tbd%cactiv_m = zero
+ Tbd%aod_gf = zero
end if
!--- MYNN variables:
diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta
index 2133382751..f95931c1be 100644
--- a/ccpp/data/GFS_typedefs.meta
+++ b/ccpp/data/GFS_typedefs.meta
@@ -809,6 +809,14 @@
type = real
kind = kind_phys
active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection)
+[conv_act_m]
+ standard_name = consecutive_calls_for_grell_freitas_mid_level_convection
+ long_name = Memory counter for GF midlevel
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection)
[hice]
standard_name = sea_ice_thickness
long_name = sea ice thickness
@@ -5796,6 +5804,14 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_tracers_MG)
type = real
kind = kind_phys
+[aod_gf]
+ standard_name = aerosol_optical_depth_for_grell_freitas_deep_convection
+ long_name = aerosol optical depth used in Grell-Freitas Convective Parameterization
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection)
[imap]
standard_name = map_of_block_column_number_to_global_i_index
long_name = map of local index ix to global index i for this block
@@ -6051,6 +6067,13 @@
dimensions = (horizontal_loop_extent)
type = integer
active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection)
+[cactiv_m]
+ standard_name = counter_for_grell_freitas_mid_level_convection
+ long_name = mid-level convective activity memory
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = integer
+ active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection)
[CLDFRA_BL]
standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer
long_name = subgrid cloud fraction from PBL scheme
@@ -7369,7 +7392,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[dvdt_ogw]
standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag
long_name = y momentum tendency from meso scale ogw
@@ -7377,7 +7400,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[du_ogwcol]
standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag
long_name = integrated x momentum flux from meso scale ogw
@@ -7385,7 +7408,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[dv_ogwcol]
standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag
long_name = integrated y momentum flux from meso scale ogw
@@ -7393,7 +7416,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[dudt_obl]
standard_name = tendency_of_x_momentum_due_to_blocking_drag
long_name = x momentum tendency from blocking drag
@@ -7401,7 +7424,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[dvdt_obl]
standard_name = tendency_of_y_momentum_due_to_blocking_drag
long_name = y momentum tendency from blocking drag
@@ -7409,7 +7432,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[du_oblcol]
standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag
long_name = integrated x momentum flux from blocking drag
@@ -7417,7 +7440,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22)
[dv_oblcol]
standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag
long_name = integrated y momentum flux from blocking drag
@@ -7425,7 +7448,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dudt_oss]
standard_name = tendency_of_x_momentum_due_to_small_scale_gravity_wave_drag
long_name = x momentum tendency from small scale gwd
@@ -7433,7 +7456,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dvdt_oss]
standard_name = tendency_of_y_momentum_due_to_small_scale_gravity_wave_drag
long_name = y momentum tendency from small scale gwd
@@ -7441,7 +7464,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[du_osscol]
standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag
long_name = integrated x momentum flux from small scale gwd
@@ -7449,7 +7472,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dv_osscol]
standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag
long_name = integrated y momentum flux from small scale gwd
@@ -7457,7 +7480,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dudt_ofd]
standard_name = tendency_of_x_momentum_due_to_form_drag
long_name = x momentum tendency from form drag
@@ -7465,7 +7488,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dvdt_ofd]
standard_name = tendency_of_y_momentum_due_to_form_drag
long_name = y momentum tendency from form drag
@@ -7473,7 +7496,7 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[du_ofdcol]
standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag
long_name = integrated x momentum flux from form drag
@@ -7481,7 +7504,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dv_ofdcol]
standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag
long_name = integrated y momentum flux from form drag
@@ -7489,7 +7512,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33)
[dv3dt_ngw]
standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave
long_name = time integral of change in y wind due to NGW
diff --git a/ccpp/driver/GFS_restart.F90 b/ccpp/driver/GFS_restart.F90
index b697dfb905..e4c4061f1b 100644
--- a/ccpp/driver/GFS_restart.F90
+++ b/ccpp/driver/GFS_restart.F90
@@ -98,8 +98,8 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, &
Restart%num2d = 3 + Model%ntot2d + Model%nctp + ndiag_rst
! GF
- if (Model%imfdeepcnv == 3) then
- Restart%num2d = Restart%num2d + 1
+ if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then
+ Restart%num2d = Restart%num2d + 3
endif
! CA
if (Model%imfdeepcnv == 2 .and. Model%do_ca) then
@@ -206,6 +206,16 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, &
do nb = 1,nblks
Restart%data(nb,num)%var2p => Sfcprop(nb)%conv_act(:)
enddo
+ num = num + 1
+ Restart%name2d(num) = 'gf_2d_conv_act_m'
+ do nb = 1,nblks
+ Restart%data(nb,num)%var2p => Sfcprop(nb)%conv_act_m(:)
+ enddo
+ num = num + 1
+ Restart%name2d(num) = 'aod_gf'
+ do nb = 1,nblks
+ Restart%data(nb,num)%var2p => Tbd(nb)%aod_gf(:)
+ enddo
endif
! NoahMP
if (Model%lsm == Model%lsm_noahmp) then
diff --git a/ccpp/physics b/ccpp/physics
index fb752d4475..4865cba044 160000
--- a/ccpp/physics
+++ b/ccpp/physics
@@ -1 +1 @@
-Subproject commit fb752d4475044bdc332619b5280f116369b64c04
+Subproject commit 4865cba04432d64f95b58b52428c18e8ef22d863
diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml
deleted file mode 100644
index f2b38d5773..0000000000
--- a/ccpp/suites/suite_FV3_GSD_SAR.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
- 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
- rrtmg_sw_pre
- rrtmg_sw
- rrtmg_sw_post
- rrtmg_lw_pre
- 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
-
-
-
- sfc_diff
- GFS_surface_loop_control_part1
- sfc_nst_pre
- sfc_nst
- sfc_nst_post
- lsm_ruc
- GFS_surface_loop_control_part2
-
-
-
- GFS_surface_composites_post
- sfc_diag
- sfc_diag_post
- GFS_surface_generic_post
- mynnedmf_wrapper
- GFS_GWD_generic_pre
- cires_ugwp
- cires_ugwp_post
- GFS_GWD_generic_post
- GFS_suite_stateout_update
- ozphys_2015
- h2ophys
- get_phi_fv3
-
- GFS_suite_interstitial_3
- GFS_suite_interstitial_4
-
- GFS_MP_generic_pre
- mp_thompson_pre
- mp_thompson
- mp_thompson_post
- GFS_MP_generic_post
- maximum_hourly_diagnostics
- phys_tend
-
-
-
-
- GFS_stochastics
-
-
-
-
diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml
deleted file mode 100644
index ad30ae4c2f..0000000000
--- a/ccpp/suites/suite_FV3_GSD_noah.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
- 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
- rrtmg_sw_pre
- rrtmg_sw
- rrtmg_sw_post
- rrtmg_lw_pre
- 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
-
-
-
- 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
- mynnedmf_wrapper
- GFS_GWD_generic_pre
- cires_ugwp
- cires_ugwp_post
- GFS_GWD_generic_post
- GFS_suite_stateout_update
- ozphys_2015
- h2ophys
- get_phi_fv3
- GFS_suite_interstitial_3
- GFS_DCNV_generic_pre
- cu_gf_driver_pre
- cu_gf_driver
- GFS_DCNV_generic_post
- GFS_SCNV_generic_pre
- 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
- cu_gf_driver_post
- maximum_hourly_diagnostics
- phys_tend
-
-
-
-
- GFS_stochastics
-
-
-
-
diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml
deleted file mode 100644
index 1a08574228..0000000000
--- a/ccpp/suites/suite_FV3_GSD_v0.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
- 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
- rrtmg_sw_pre
- rrtmg_sw
- rrtmg_sw_post
- rrtmg_lw_pre
- 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
-
-
-
- sfc_diff
- GFS_surface_loop_control_part1
- sfc_nst_pre
- sfc_nst
- sfc_nst_post
- lsm_ruc
- GFS_surface_loop_control_part2
-
-
-
- GFS_surface_composites_post
- sfc_diag
- sfc_diag_post
- GFS_surface_generic_post
- mynnedmf_wrapper
- GFS_GWD_generic_pre
- cires_ugwp
- cires_ugwp_post
- GFS_GWD_generic_post
- GFS_suite_stateout_update
- ozphys_2015
- h2ophys
- get_phi_fv3
- GFS_suite_interstitial_3
- GFS_DCNV_generic_pre
- cu_gf_driver_pre
- cu_gf_driver
- GFS_DCNV_generic_post
- GFS_SCNV_generic_pre
- 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
- cu_gf_driver_post
- maximum_hourly_diagnostics
- phys_tend
-
-
-
-
- GFS_stochastics
-
-
-
-
diff --git a/ccpp/suites/suite_FV3_HRRR.xml b/ccpp/suites/suite_FV3_HRRR.xml
index 6fd18617d3..d3408f0bab 100644
--- a/ccpp/suites/suite_FV3_HRRR.xml
+++ b/ccpp/suites/suite_FV3_HRRR.xml
@@ -62,10 +62,8 @@
ozphys_2015
h2ophys
get_phi_fv3
-
GFS_suite_interstitial_3
GFS_suite_interstitial_4
-
GFS_MP_generic_pre
mp_thompson_pre
mp_thompson
diff --git a/ccpp/suites/suite_FV3_GSD_v0_RRTMGP.xml b/ccpp/suites/suite_FV3_RAP_RRTMGP.xml
similarity index 95%
rename from ccpp/suites/suite_FV3_GSD_v0_RRTMGP.xml
rename to ccpp/suites/suite_FV3_RAP_RRTMGP.xml
index a9056b6fa6..83542fae63 100644
--- a/ccpp/suites/suite_FV3_GSD_v0_RRTMGP.xml
+++ b/ccpp/suites/suite_FV3_RAP_RRTMGP.xml
@@ -1,6 +1,6 @@
-
+
@@ -50,7 +50,7 @@
- sfc_diff
+ mynnsfc_wrapper
GFS_surface_loop_control_part1
sfc_nst_pre
sfc_nst
@@ -66,8 +66,7 @@
GFS_surface_generic_post
mynnedmf_wrapper
GFS_GWD_generic_pre
- cires_ugwp
- cires_ugwp_post
+ drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
ozphys_2015
diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_RAP_cires_ugwp.xml
similarity index 98%
rename from ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml
rename to ccpp/suites/suite_FV3_RAP_cires_ugwp.xml
index 2f59d06718..7f43ed2b89 100644
--- a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml
+++ b/ccpp/suites/suite_FV3_RAP_cires_ugwp.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/ccpp/suites/suite_FV3_RAP_flake.xml b/ccpp/suites/suite_FV3_RAP_flake.xml
new file mode 100644
index 0000000000..734f6dd899
--- /dev/null
+++ b/ccpp/suites/suite_FV3_RAP_flake.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ 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
+ rrtmg_sw_pre
+ rrtmg_sw
+ rrtmg_sw_post
+ rrtmg_lw_pre
+ 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
+ sfc_nst_pre
+ sfc_nst
+ sfc_nst_post
+ lsm_ruc
+ flake_driver
+ GFS_surface_loop_control_part2
+
+
+
+ GFS_surface_composites_post
+ sfc_diag
+ sfc_diag_post
+ GFS_surface_generic_post
+ mynnedmf_wrapper
+ GFS_GWD_generic_pre
+ drag_suite
+ GFS_GWD_generic_post
+ GFS_suite_stateout_update
+ ozphys_2015
+ h2ophys
+ get_phi_fv3
+ GFS_suite_interstitial_3
+ GFS_DCNV_generic_pre
+ cu_gf_driver_pre
+ cu_gf_driver
+ GFS_DCNV_generic_post
+ GFS_SCNV_generic_pre
+ 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
+ cu_gf_driver_post
+ maximum_hourly_diagnostics
+ phys_tend
+
+
+
+
+ GFS_stochastics
+
+
+
+
diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml b/ccpp/suites/suite_FV3_RAP_noah.xml
similarity index 94%
rename from ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml
rename to ccpp/suites/suite_FV3_RAP_noah.xml
index 1fabc9e502..dd4eb76f96 100644
--- a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite_noah.xml
+++ b/ccpp/suites/suite_FV3_RAP_noah.xml
@@ -1,6 +1,6 @@
-
+
@@ -40,7 +40,7 @@
- sfc_diff
+ mynnsfc_wrapper
GFS_surface_loop_control_part1
sfc_nst_pre
sfc_nst
@@ -57,8 +57,7 @@
GFS_surface_generic_post
mynnedmf_wrapper
GFS_GWD_generic_pre
- unified_ugwp
- unified_ugwp_post
+ drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
ozphys_2015
diff --git a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml b/ccpp/suites/suite_FV3_RAP_noah_sfcdiff_cires_ugwp.xml
similarity index 97%
rename from ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml
rename to ccpp/suites/suite_FV3_RAP_noah_sfcdiff_cires_ugwp.xml
index 2dc671612e..f849a2b628 100644
--- a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml
+++ b/ccpp/suites/suite_FV3_RAP_noah_sfcdiff_cires_ugwp.xml
@@ -1,6 +1,6 @@
-
+
@@ -40,7 +40,7 @@
- mynnsfc_wrapper
+ sfc_diff
GFS_surface_loop_control_part1
sfc_nst_pre
sfc_nst
diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_RAP_sfcdiff.xml
similarity index 98%
rename from ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml
rename to ccpp/suites/suite_FV3_RAP_sfcdiff.xml
index d8547ff196..82acb849a1 100644
--- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml
+++ b/ccpp/suites/suite_FV3_RAP_sfcdiff.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml b/ccpp/suites/suite_FV3_RAP_unified_ugwp.xml
similarity index 97%
rename from ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml
rename to ccpp/suites/suite_FV3_RAP_unified_ugwp.xml
index 04e987eb7d..b79398ef75 100644
--- a/ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml
+++ b/ccpp/suites/suite_FV3_RAP_unified_ugwp.xml
@@ -1,6 +1,6 @@
-
+
@@ -40,7 +40,7 @@
- sfc_diff
+ mynnsfc_wrapper
GFS_surface_loop_control_part1
sfc_nst_pre
sfc_nst
diff --git a/ccpp/suites/suite_FV3_RRFS_v1alpha.xml b/ccpp/suites/suite_FV3_RRFS_v1alpha.xml
deleted file mode 100644
index b3622828ee..0000000000
--- a/ccpp/suites/suite_FV3_RRFS_v1alpha.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
- 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
- rrtmg_sw_pre
- rrtmg_sw
- rrtmg_sw_post
- rrtmg_lw_pre
- 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
-
-
-
- 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
- mynnedmf_wrapper
- GFS_GWD_generic_pre
- cires_ugwp
- cires_ugwp_post
- GFS_GWD_generic_post
- GFS_suite_stateout_update
- ozphys_2015
- h2ophys
- get_phi_fv3
- GFS_suite_interstitial_3
- GFS_suite_interstitial_4
- GFS_MP_generic_pre
- mp_thompson_pre
- mp_thompson
- mp_thompson_post
- GFS_MP_generic_post
- maximum_hourly_diagnostics
- phys_tend
-
-
-
-
- GFS_stochastics
-
-
-
-
diff --git a/io/FV3GFS_io.F90 b/io/FV3GFS_io.F90
index 157e51102d..3827ccb683 100644
--- a/io/FV3GFS_io.F90
+++ b/io/FV3GFS_io.F90
@@ -783,7 +783,11 @@ subroutine sfc_prop_restart_read (Sfcprop, Atm_block, Model, fv_domain, warm_sta
!--- allocate the various containers needed for restarts
allocate(sfc_name2(nvar_s2m+nvar_s2o+nvar_s2mp+nvar_s2r))
allocate(sfc_name3(0:nvar_s3+nvar_s3mp))
- allocate(sfc_var2(nx,ny,nvar_s2m+nvar_s2o+nvar_s2mp+nvar_s2r),sfc_var3ice(nx,ny,Model%kice))
+ allocate(sfc_var2(nx,ny,nvar_s2m+nvar_s2o+nvar_s2mp+nvar_s2r))
+ ! Note that this may cause problems with RUC LSM for coldstart runs from GFS data
+ ! if the initial conditions do contain this variable, because Model%kice is 9 for
+ ! RUC LSM, but tiice in the initial conditions will only have two vertical layers
+ allocate(sfc_var3ice(nx,ny,Model%kice))
if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. (.not.warm_start)) then
allocate(sfc_var3(nx,ny,Model%lsoil,nvar_s3))
@@ -2787,8 +2791,8 @@ subroutine fv3gfs_diag_output(time, diag, atm_block, nx, ny, levs, ntcw, ntoz, &
!---
!--- skipping other 3D variables with the following else statement
!---
- if(mpp_pe()==mpp_root_pe())print *,'in,fv3gfs_io. 3D fields, idx=',idx,'varname=',trim(diag(idx)%name), &
- 'lcnvfac=',lcnvfac, 'levo=',levo,'nx=',nx,'ny=',ny
+! if(mpp_pe()==mpp_root_pe())print *,'in,fv3gfs_io. 3D fields, idx=',idx,'varname=',trim(diag(idx)%name), &
+! 'lcnvfac=',lcnvfac, 'levo=',levo,'nx=',nx,'ny=',ny
do k=1, levo
do j = 1, ny
jj = j + jsc -1