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