diff --git a/.gitmodules b/.gitmodules index 2fdeca40a..8e4dd18da 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = dtc/develop [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics + url = https://github.com/dustinswales/ccpp-physics branch = dtc/develop diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index d30d8d1e7..4e19bf810 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -364,6 +364,7 @@ }, 'GFS_rrtmgp_sw_post' : { 'GFS_rrtmgp_sw_post_run' : [ + 'tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels', 'components_of_surface_downward_shortwave_fluxes', 'sw_fluxes_sfc', 'sw_fluxes_toa', @@ -377,6 +378,7 @@ }, 'GFS_rrtmgp_lw_post' : { 'GFS_rrtmgp_lw_post_run' : [ + 'tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels', 'lw_fluxes_sfc', 'lw_fluxes_toa', ], diff --git a/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml b/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml new file mode 100644 index 000000000..db657c786 --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml @@ -0,0 +1,100 @@ + + + + + + + fv_sat_adj + + + + + GFS_time_vary_pre + GFS_rrtmgp_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmgp_pre + GFS_rrtmgp_sw_pre + rrtmgp_sw_gas_optics + rrtmgp_sw_aerosol_optics + rrtmgp_sw_cloud_optics + rrtmgp_sw_cloud_sampling + rrtmgp_sw_rte + GFS_rrtmgp_sw_post + rrtmgp_lw_pre + rrtmgp_lw_gas_optics + rrtmgp_lw_aerosol_optics + rrtmgp_lw_cloud_optics + rrtmgp_lw_cloud_sampling + rrtmgp_lw_rte + GFS_rrtmgp_lw_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 + hedmf + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + 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_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml b/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml new file mode 100644 index 000000000..88e36f5fa --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml @@ -0,0 +1,100 @@ + + + + + + + fv_sat_adj + + + + + GFS_time_vary_pre + GFS_rrtmgp_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmgp_pre + GFS_rrtmgp_sw_pre + rrtmgp_sw_gas_optics + rrtmgp_sw_aerosol_optics + rrtmgp_sw_cloud_optics + rrtmgp_sw_cloud_sampling + rrtmgp_sw_rte + GFS_rrtmgp_sw_post + rrtmgp_lw_pre + rrtmgp_lw_gas_optics + rrtmgp_lw_aerosol_optics + rrtmgp_lw_cloud_optics + rrtmgp_lw_cloud_sampling + rrtmgp_lw_rte + GFS_rrtmgp_lw_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 + rayleigh_damp + GFS_suite_stateout_update + ozphys_2015 + h2ophys + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + 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_stochastics + + + + diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 74598d522..fa8be67ae 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1941,12 +1941,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: cld_resnow(:,:) => null() !< Cloud snow effective radius real (kind=kind_phys), pointer :: cld_rwp(:,:) => null() !< Cloud rain water path real (kind=kind_phys), pointer :: cld_rerain(:,:) => null() !< Cloud rain effective radius - real (kind=kind_phys), pointer :: hsw0(:,:) => null() !< RRTMGP shortwave heating-rate (clear-sky) - real (kind=kind_phys), pointer :: hswc(:,:) => null() !< RRTMGP shortwave heating-rate (all-sky) - real (kind=kind_phys), pointer :: hswb(:,:,:) => null() !< RRTMGP shortwave heating-rate (all-sky), by band - real (kind=kind_phys), pointer :: hlw0(:,:) => null() !< RRTMGP longwave heating-rate (clear-sky) - real (kind=kind_phys), pointer :: hlwc(:,:) => null() !< RRTMGP longwave heating-rate (all-sky) - real (kind=kind_phys), pointer :: hlwb(:,:,:) => null() !< RRTMGP longwave heating-rate (all-sky), by band real (kind=kind_phys), pointer :: fluxlwUP_allsky(:,:) => null() !< RRTMGP upward longwave all-sky flux profile real (kind=kind_phys), pointer :: fluxlwDOWN_allsky(:,:) => null() !< RRTMGP downward longwave all-sky flux profile real (kind=kind_phys), pointer :: fluxlwUP_clrsky(:,:) => null() !< RRTMGP upward longwave clr-sky flux profile @@ -6116,12 +6110,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%cld_resnow (IM, Model%levs)) allocate (Interstitial%cld_rwp (IM, Model%levs)) allocate (Interstitial%cld_rerain (IM, Model%levs)) - allocate (Interstitial%hsw0 (IM, Model%levs)) - allocate (Interstitial%hswc (IM, Model%levs)) - allocate (Interstitial%hswb (IM, Model%levs, Model%rrtmgp_nGptsSW)) - allocate (Interstitial%hlw0 (IM, Model%levs)) - allocate (Interstitial%hlwc (IM, Model%levs)) - allocate (Interstitial%hlwb (IM, Model%levs, Model%rrtmgp_nGptsLW)) allocate (Interstitial%icseed_lw (IM)) allocate (Interstitial%icseed_sw (IM)) allocate (Interstitial%flxprf_lw (IM, Model%levs+1)) @@ -6484,12 +6472,6 @@ subroutine interstitial_rad_reset (Interstitial, Model) Interstitial%cld_resnow = clear_val Interstitial%cld_rwp = clear_val Interstitial%cld_rerain = clear_val - Interstitial%hsw0 = clear_val - Interstitial%hswc = clear_val - Interstitial%hswb = clear_val - Interstitial%hlw0 = clear_val - Interstitial%hlwc = clear_val - Interstitial%hlwb = clear_val Interstitial%icseed_lw = clear_val Interstitial%icseed_sw = clear_val Interstitial%sfc_emiss_byband = clear_val diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index f02602277..27e3a7dca 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -8461,54 +8461,6 @@ type = real kind = kind_phys optional = F -[hsw0] - standard_name = RRTMGP_sw_heating_rate_clear_sky - long_name = RRTMGP shortwave clear sky heating rate - units = K s-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - optional = T -[hswc] - standard_name = RRTMGP_sw_heating_rate_all_sky - long_name = RRTMGP shortwave all sky heating rate - units = K s-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - optional = F -[hswb] - standard_name = RRTMGP_sw_heating_rate_spectral - long_name = RRTMGP shortwave total sky heating rate (spectral) - units = K s-1 - dimensions = (horizontal_dimension,vertical_dimension,number_of_sw_spectral_points_rrtmgp) - type = real - kind = kind_phys - optional = T -[hlw0] - standard_name = RRTMGP_lw_heating_rate_clear_sky - long_name = RRTMGP longwave clear sky heating rate - units = K s-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - optional = T -[hlwc] - standard_name = RRTMGP_lw_heating_rate_all_sky - long_name = RRTMGP longwave all sky heating rate - units = K s-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - optional = F -[hlwb] - standard_name = RRTMGP_lw_heating_rate_spectral - long_name = RRTMGP longwave total sky heating rate (spectral) - units = K s-1 - dimensions = (horizontal_dimension,vertical_dimension,number_of_lw_spectral_points_rrtmgp) - type = real - kind = kind_phys - optional = T [ipsdsw0] standard_name = initial_permutation_seed_sw long_name = initial seed for McICA SW