From f2c6925793d2240d6a892a70c9e46ae3538771c9 Mon Sep 17 00:00:00 2001 From: Tracy Date: Fri, 31 Jan 2025 22:52:12 +0000 Subject: [PATCH 1/2] updates to *_typdefs for ufs/dev PR#228 --- ccpp/physics | 2 +- scm/src/CCPP_typedefs.F90 | 50 +---------- scm/src/CCPP_typedefs.meta | 29 +++---- scm/src/GFS_typedefs.F90 | 114 +++++++----------------- scm/src/GFS_typedefs.meta | 173 ++++++++++++++++++------------------- 5 files changed, 130 insertions(+), 238 deletions(-) diff --git a/ccpp/physics b/ccpp/physics index a3f4d93fa..832245afc 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a3f4d93fae7515c8d67cae9b5796ad459acb9943 +Subproject commit 832245afc6e593d6a5e7ff6115e37919773f6021 diff --git a/scm/src/CCPP_typedefs.F90 b/scm/src/CCPP_typedefs.F90 index 4cfaeacd7..5b3dd2b81 100644 --- a/scm/src/CCPP_typedefs.F90 +++ b/scm/src/CCPP_typedefs.F90 @@ -205,8 +205,6 @@ module CCPP_typedefs integer :: nbdlw !< integer :: nbdsw !< real (kind=kind_phys), pointer :: ncgl(:,:) => null() !< - real (kind=kind_phys), pointer :: ncpi(:,:) => null() !< - real (kind=kind_phys), pointer :: ncpl(:,:) => null() !< real (kind=kind_phys), pointer :: ncpr(:,:) => null() !< real (kind=kind_phys), pointer :: ncps(:,:) => null() !< integer :: ncstrac !< @@ -300,6 +298,7 @@ module CCPP_typedefs real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !< real (kind=kind_phys), pointer :: tsurf_land(:) => null() !< real (kind=kind_phys), pointer :: tsurf_water(:) => null() !< + real (kind=kind_phys), pointer :: ud_mf(:,:) => null() !< real (kind=kind_phys), pointer :: uustar_ice(:) => null() !< real (kind=kind_phys), pointer :: uustar_land(:) => null() !< real (kind=kind_phys), pointer :: uustar_water(:) => null() !< @@ -363,15 +362,6 @@ module CCPP_typedefs real (kind=kind_phys), pointer :: tracer(:,:,:) => null() !< real (kind=kind_phys), pointer :: aerosolslw(:,:,:,:) => null() !< Aerosol radiative properties in each LW band. real (kind=kind_phys), pointer :: aerosolssw(:,:,:,:) => null() !< Aerosol radiative properties in each SW band. - real (kind=kind_phys), pointer :: cld_frac(:,:) => null() !< Total cloud fraction - real (kind=kind_phys), pointer :: cld_lwp(:,:) => null() !< Cloud liquid water path - real (kind=kind_phys), pointer :: cld_reliq(:,:) => null() !< Cloud liquid effective radius - real (kind=kind_phys), pointer :: cld_iwp(:,:) => null() !< Cloud ice water path - real (kind=kind_phys), pointer :: cld_reice(:,:) => null() !< Cloud ice effecive radius - real (kind=kind_phys), pointer :: cld_swp(:,:) => null() !< Cloud snow water path - 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 :: precip_frac(:,:) => null() !< Precipitation fraction real (kind=kind_phys), pointer :: cld_cnv_frac(:,:) => null() !< SGS convective cloud fraction real (kind=kind_phys), pointer :: cld_cnv_lwp(:,:) => null() !< SGS convective cloud liquid water path @@ -644,6 +634,7 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model) allocate (Interstitial%tsurf_ice (IM)) allocate (Interstitial%tsurf_land (IM)) allocate (Interstitial%tsurf_water (IM)) + allocate (Interstitial%ud_mf (IM,Model%levs)) allocate (Interstitial%uustar_ice (IM)) allocate (Interstitial%uustar_land (IM)) allocate (Interstitial%uustar_water (IM)) @@ -689,15 +680,6 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model) allocate (Interstitial%fluxswDOWN_clrsky (IM, Model%levs+1)) allocate (Interstitial%aerosolslw (IM, Model%levs, Model%rrtmgp_nBandsLW, NF_AELW)) allocate (Interstitial%aerosolssw (IM, Model%levs, Model%rrtmgp_nBandsSW, NF_AESW)) - allocate (Interstitial%cld_frac (IM, Model%levs)) - allocate (Interstitial%cld_lwp (IM, Model%levs)) - allocate (Interstitial%cld_reliq (IM, Model%levs)) - allocate (Interstitial%cld_iwp (IM, Model%levs)) - allocate (Interstitial%cld_reice (IM, Model%levs)) - allocate (Interstitial%cld_swp (IM, Model%levs)) - allocate (Interstitial%cld_resnow (IM, Model%levs)) - allocate (Interstitial%cld_rwp (IM, Model%levs)) - allocate (Interstitial%cld_rerain (IM, Model%levs)) allocate (Interstitial%precip_frac (IM, Model%levs)) allocate (Interstitial%cld_cnv_frac (IM, Model%levs)) allocate (Interstitial%cnv_cloud_overlap_param(IM, Model%levs)) @@ -785,15 +767,6 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model) allocate (Interstitial%cnv_ndrop (IM,Model%levs)) allocate (Interstitial%cnv_nice (IM,Model%levs)) end if - if (Model%do_shoc) then - if (.not. associated(Interstitial%qrn)) allocate (Interstitial%qrn (IM,Model%levs)) - if (.not. associated(Interstitial%qsnw)) allocate (Interstitial%qsnw (IM,Model%levs)) - ! DH* updated version of shoc from May 22 2019 (not yet in CCPP) doesn't use qgl? remove? - if (.not. associated(Interstitial%qgl)) allocate (Interstitial%qgl (IM,Model%levs)) - ! *DH - allocate (Interstitial%ncpi (IM,Model%levs)) - allocate (Interstitial%ncpl (IM,Model%levs)) - end if if (Model%lsm == Model%lsm_noahmp) then allocate (Interstitial%t2mmp (IM)) allocate (Interstitial%q2mp (IM)) @@ -1105,15 +1078,6 @@ subroutine gfs_interstitial_rad_reset (Interstitial, Model) Interstitial%fluxswDOWN_clrsky = clear_val Interstitial%aerosolslw = clear_val Interstitial%aerosolssw = clear_val - Interstitial%cld_frac = clear_val - Interstitial%cld_lwp = clear_val - Interstitial%cld_reliq = clear_val - Interstitial%cld_iwp = clear_val - Interstitial%cld_reice = clear_val - Interstitial%cld_swp = clear_val - Interstitial%cld_resnow = clear_val - Interstitial%cld_rwp = clear_val - Interstitial%cld_rerain = clear_val Interstitial%precip_frac = clear_val Interstitial%cld_cnv_frac = clear_val Interstitial%cnv_cloud_overlap_param = clear_val @@ -1322,6 +1286,7 @@ subroutine gfs_interstitial_phys_reset (Interstitial, Model) Interstitial%tsurf_ice = Model%huge Interstitial%tsurf_land = Model%huge Interstitial%tsurf_water = Model%huge + Interstitial%ud_mf = clear_val Interstitial%uustar_ice = Model%huge Interstitial%uustar_land = Model%huge Interstitial%uustar_water = Model%huge @@ -1399,15 +1364,6 @@ subroutine gfs_interstitial_phys_reset (Interstitial, Model) Interstitial%cnv_ndrop = clear_val Interstitial%cnv_nice = clear_val end if - if (Model%do_shoc) then - Interstitial%qrn = clear_val - Interstitial%qsnw = clear_val - ! DH* updated version of shoc from May 22 2019 doesn't use qgl? remove? - Interstitial%qgl = clear_val - ! *DH - Interstitial%ncpi = clear_val - Interstitial%ncpl = clear_val - end if if (Model%lsm == Model%lsm_noahmp) then Interstitial%t2mmp = clear_val Interstitial%q2mp = clear_val diff --git a/scm/src/CCPP_typedefs.meta b/scm/src/CCPP_typedefs.meta index adffe90c2..c16c20747 100644 --- a/scm/src/CCPP_typedefs.meta +++ b/scm/src/CCPP_typedefs.meta @@ -104,6 +104,7 @@ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys + active = (.not. flag_for_rrtmgp_radiation_scheme) [bexp1d] standard_name = perturbation_of_soil_type_b_parameter long_name = perturbation of soil type "b" parameter @@ -1390,22 +1391,6 @@ type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) -[ncpi] - standard_name = local_ice_number_concentration - long_name = number concentration of ice local to physics - units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_shoc) -[ncpl] - standard_name = local_condesed_water_number_concentration - long_name = number concentration of condensed water local to physics - units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_shoc) [ncpr] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -1617,7 +1602,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc) + active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -1648,7 +1633,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc) + active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) [qsnw] standard_name = local_snow_water_mixing_ratio long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics @@ -1656,7 +1641,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc) + active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) [prcpmp] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep @@ -2596,6 +2581,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands) type = real kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [aerosolslw(:,:,:,2)] standard_name = RRTMGP_aerosol_single_scattering_albedo_for_longwave_bands_01_16 long_name = aerosol single scattering albedo for longwave bands 01-16 @@ -2603,6 +2589,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands) type = real kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [aerosolslw(:,:,:,3)] standard_name = RRTMGP_aerosol_asymmetry_parameter_for_longwave_bands_01_16 long_name = aerosol asymmetry parameter for longwave bands 01-16 @@ -2610,6 +2597,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands) type = real kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [aerosolssw] standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 @@ -2625,6 +2613,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [aerosolssw(:,:,:,2)] standard_name = RRTMGP_aerosol_single_scattering_albedo_for_shortwave_bands_01_16 long_name = aerosol single scattering albedo for shortwave bands 01-16 @@ -2632,6 +2621,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [aerosolssw(:,:,:,3)] standard_name = RRTMGP_aerosol_asymmetry_parameter_for_shortwave_bands_01_16 long_name = aerosol asymmetry parameter for shortwave bands 01-16 @@ -2639,6 +2629,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index f73f6a90c..cb717e693 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -2098,14 +2098,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dv3_ofdcol(:) => null() !< time-averaged sfc v-momentum flux from TOFD ! !---vay-2018 UGWP-diagnostics daily mean -! - real (kind=kind_phys), pointer :: dudt_tot (:,:) => null() !< daily aver GFS_phys tend for WE-U - real (kind=kind_phys), pointer :: dvdt_tot (:,:) => null() !< daily aver GFS_phys tend for SN-V - real (kind=kind_phys), pointer :: dtdt_tot (:,:) => null() !< daily aver GFS_phys tend for Temp-re -! - real (kind=kind_phys), pointer :: du3dt_pbl(:,:) => null() !< daily aver GFS_phys tend for WE-U pbl - real (kind=kind_phys), pointer :: dv3dt_pbl(:,:) => null() !< daily aver GFS_phys tend for SN-V pbl - real (kind=kind_phys), pointer :: dt3dt_pbl(:,:) => null() !< daily aver GFS_phys tend for Temp pbl ! real (kind=kind_phys), pointer :: du3dt_ogw(:,:) => null() !< daily aver GFS_phys tend for WE-U OGW ! @@ -2155,10 +2147,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: gwp_axf(:,:) => null() ! instant jet-UGWP tend m/s/s EW real (kind=kind_phys), pointer :: gwp_ayf(:,:) => null() ! instant jet-UGWP tend m/s/s NS - real (kind=kind_phys), pointer :: uav_ugwp(:,:) => null() ! aver wind UAV from physics - real (kind=kind_phys), pointer :: tav_ugwp(:,:) => null() ! aver temp UAV from physics - real (kind=kind_phys), pointer :: du3dt_dyn(:,:) => null() ! U Tend-dynamics "In"-"PhysOut" - !--- COODRE ORO diagnostics real (kind=kind_phys), pointer :: zmtb(:) => null() ! real (kind=kind_phys), pointer :: zogw(:) => null() ! @@ -2377,8 +2365,6 @@ subroutine sfcprop_create (Sfcprop, Model) allocate (Sfcprop%emis_lnd (IM)) allocate (Sfcprop%emis_ice (IM)) allocate (Sfcprop%emis_wat (IM)) - allocate (Sfcprop%acsnow_land (IM)) - allocate (Sfcprop%acsnow_ice (IM)) Sfcprop%slmsk = clear_val Sfcprop%oceanfrac = clear_val @@ -2436,9 +2422,6 @@ subroutine sfcprop_create (Sfcprop, Model) Sfcprop%emis_lnd = clear_val Sfcprop%emis_ice = clear_val Sfcprop%emis_wat = clear_val - Sfcprop%acsnow_land = clear_val - Sfcprop%acsnow_ice = clear_val - !--- In (radiation only) allocate (Sfcprop%snoalb (IM)) @@ -2598,13 +2581,17 @@ subroutine sfcprop_create (Sfcprop, Model) Sfcprop%dt_cool = zero Sfcprop%qrain = zero endif + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp .or. Model%lsm == Model%lsm_ruc) then + allocate (Sfcprop%xlaixy (IM)) + Sfcprop%xlaixy = clear_val + else + allocate (Sfcprop%xlaixy (0)) + end if if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then allocate (Sfcprop%rca (IM)) Sfcprop%rca = clear_val - end if - if (Model%lsm == Model%lsm_noah) then - allocate (Sfcprop%xlaixy (IM)) - Sfcprop%xlaixy = clear_val + else + allocate (Sfcprop%rca (0)) end if if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp .or. & (Model%lkm>0 .and. Model%iopt_lake==Model%iopt_lake_clm)) then @@ -2649,7 +2636,6 @@ subroutine sfcprop_create (Sfcprop, Model) allocate (Sfcprop%stblcpxy (IM)) allocate (Sfcprop%fastcpxy (IM)) allocate (Sfcprop%xsaixy (IM)) - allocate (Sfcprop%xlaixy (IM)) allocate (Sfcprop%taussxy (IM)) allocate (Sfcprop%smcwtdxy (IM)) allocate (Sfcprop%deeprechxy (IM)) @@ -2684,7 +2670,6 @@ subroutine sfcprop_create (Sfcprop, Model) Sfcprop%stblcpxy = clear_val Sfcprop%fastcpxy = clear_val Sfcprop%xsaixy = clear_val - Sfcprop%xlaixy = clear_val Sfcprop%taussxy = clear_val Sfcprop%smcwtdxy = clear_val Sfcprop%deeprechxy = clear_val @@ -2737,7 +2722,6 @@ subroutine sfcprop_create (Sfcprop, Model) allocate (Sfcprop%snowfallac_ice (IM)) allocate (Sfcprop%acsnow_land (IM)) allocate (Sfcprop%acsnow_ice (IM)) - allocate (Sfcprop%xlaixy (IM)) allocate (Sfcprop%fire_heat_flux (IM)) allocate (Sfcprop%frac_grid_burned(IM)) @@ -2759,7 +2743,6 @@ subroutine sfcprop_create (Sfcprop, Model) Sfcprop%snowfallac_ice = clear_val Sfcprop%acsnow_land = clear_val Sfcprop%acsnow_ice = clear_val - Sfcprop%xlaixy = clear_val Sfcprop%fire_heat_flux = clear_val Sfcprop%frac_grid_burned= clear_val ! @@ -2978,14 +2961,31 @@ subroutine coupling_create (Coupling, Model) ! Coupling%zorlwav_cpl = clear_val ! endif - if (Model%cplflx .or. Model%cpllnd .or. Model%cpl_fire) then + ! -- additional coupling options for air quality + if (Model%cplflx .or. Model%cpllnd .or. Model%cpl_fire .or. (Model%cplaqm .and. .not.Model%cplflx)) then + allocate (Coupling%psurfi_cpl (IM)) + allocate (Coupling%nswsfci_cpl (IM)) + Coupling%psurfi_cpl = clear_val + Coupling%nswsfci_cpl = clear_val + endif + + if (Model%cplflx .or. Model%cpl_fire .or. (Model%cplaqm .and. .not.Model%cplflx)) then + allocate (Coupling%dtsfci_cpl (IM)) + allocate (Coupling%dqsfci_cpl (IM)) + allocate (Coupling%t2mi_cpl (IM)) + allocate (Coupling%q2mi_cpl (IM)) + Coupling%dtsfci_cpl = clear_val + Coupling%dqsfci_cpl = clear_val + Coupling%t2mi_cpl = clear_val + Coupling%q2mi_cpl = clear_val + endif + + if (Model%cplflx .or. Model%cpllnd) then allocate (Coupling%dlwsfci_cpl (IM)) allocate (Coupling%dswsfci_cpl (IM)) allocate (Coupling%dlwsfc_cpl (IM)) allocate (Coupling%dswsfc_cpl (IM)) - allocate (Coupling%psurfi_cpl (IM)) allocate (Coupling%nswsfc_cpl (IM)) - allocate (Coupling%nswsfci_cpl (IM)) allocate (Coupling%nnirbmi_cpl (IM)) allocate (Coupling%nnirdfi_cpl (IM)) allocate (Coupling%nvisbmi_cpl (IM)) @@ -2999,9 +2999,7 @@ subroutine coupling_create (Coupling, Model) Coupling%dswsfci_cpl = clear_val Coupling%dlwsfc_cpl = clear_val Coupling%dswsfc_cpl = clear_val - Coupling%psurfi_cpl = clear_val Coupling%nswsfc_cpl = clear_val - Coupling%nswsfci_cpl = clear_val Coupling%nnirbmi_cpl = clear_val Coupling%nnirdfi_cpl = clear_val Coupling%nvisbmi_cpl = clear_val @@ -3085,29 +3083,21 @@ subroutine coupling_create (Coupling, Model) !--- instantaneous quantities allocate (Coupling%dusfci_cpl (IM)) allocate (Coupling%dvsfci_cpl (IM)) - allocate (Coupling%dtsfci_cpl (IM)) - allocate (Coupling%dqsfci_cpl (IM)) allocate (Coupling%dnirbmi_cpl (IM)) allocate (Coupling%dnirdfi_cpl (IM)) allocate (Coupling%dvisbmi_cpl (IM)) allocate (Coupling%dvisdfi_cpl (IM)) allocate (Coupling%nlwsfci_cpl (IM)) - allocate (Coupling%t2mi_cpl (IM)) - allocate (Coupling%q2mi_cpl (IM)) allocate (Coupling%oro_cpl (IM)) allocate (Coupling%slmsk_cpl (IM)) Coupling%dusfci_cpl = clear_val Coupling%dvsfci_cpl = clear_val - Coupling%dtsfci_cpl = clear_val - Coupling%dqsfci_cpl = clear_val Coupling%dnirbmi_cpl = clear_val Coupling%dnirdfi_cpl = clear_val Coupling%dvisbmi_cpl = clear_val Coupling%dvisdfi_cpl = clear_val Coupling%nlwsfci_cpl = clear_val - Coupling%t2mi_cpl = clear_val - Coupling%q2mi_cpl = clear_val Coupling%oro_cpl = clear_val !< pointer to sfcprop%oro Coupling%slmsk_cpl = clear_val !< pointer to sfcprop%slmsk endif @@ -3145,6 +3135,7 @@ subroutine coupling_create (Coupling, Model) !-- cellular automata allocate (Coupling%condition(IM)) + Coupling%condition = clear_val if (Model%do_ca) then allocate (Coupling%ca1 (IM)) allocate (Coupling%ca2 (IM)) @@ -3162,7 +3153,6 @@ subroutine coupling_create (Coupling, Model) Coupling%ca_shal = clear_val Coupling%ca_rad = clear_val Coupling%ca_micro = clear_val - Coupling%condition = clear_val endif ! -- Aerosols coupling options @@ -3183,23 +3173,6 @@ subroutine coupling_create (Coupling, Model) Coupling%rainc_cpl = clear_val end if - ! -- additional coupling options for air quality - if (Model%cplaqm .and. .not.Model%cplflx) then - !--- outgoing instantaneous quantities - allocate (Coupling%dtsfci_cpl (IM)) - allocate (Coupling%dqsfci_cpl (IM)) - allocate (Coupling%nswsfci_cpl (IM)) - allocate (Coupling%t2mi_cpl (IM)) - allocate (Coupling%q2mi_cpl (IM)) - allocate (Coupling%psurfi_cpl (IM)) - Coupling%dtsfci_cpl = clear_val - Coupling%dqsfci_cpl = clear_val - Coupling%nswsfci_cpl = clear_val - Coupling%t2mi_cpl = clear_val - Coupling%q2mi_cpl = clear_val - Coupling%psurfi_cpl = clear_val - endif - if(Model%progsigma)then allocate(Coupling%dqdt_qmicro (IM,Model%levs)) Coupling%dqdt_qmicro = clear_val @@ -5398,8 +5371,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & .and. Model%flag_for_dcnv_generic_tend ! Increment idtend and fill dtidx: - allocate(Model%dtend_var_labels(Model%ntracp100)) - allocate(Model%dtend_process_labels(Model%nprocess)) call allocate_dtend_labels_and_causes(Model) @@ -7914,20 +7885,11 @@ subroutine diag_create (Diag, Model) allocate (Diag%kdis_gw (IM,Model%levs)) if (Model%ldiag_ugwp) then - allocate (Diag%du3dt_dyn (IM,Model%levs) ) - allocate (Diag%du3dt_pbl (IM,Model%levs) ) - allocate (Diag%dv3dt_pbl (IM,Model%levs) ) - allocate (Diag%dt3dt_pbl (IM,Model%levs) ) allocate (Diag%du3dt_ogw (IM,Model%levs) ) allocate (Diag%du3dt_mtb (IM,Model%levs) ) allocate (Diag%du3dt_tms (IM,Model%levs) ) allocate (Diag%du3dt_ngw (IM,Model%levs) ) allocate (Diag%dv3dt_ngw (IM,Model%levs) ) - allocate (Diag%dudt_tot (IM,Model%levs) ) - allocate (Diag%dvdt_tot (IM,Model%levs) ) - allocate (Diag%dtdt_tot (IM,Model%levs) ) - allocate (Diag%uav_ugwp (IM,Model%levs) ) - allocate (Diag%tav_ugwp (IM,Model%levs) ) allocate (Diag%dws3dt_ogw (IM,Model%levs) ) allocate (Diag%dws3dt_obl (IM,Model%levs) ) allocate (Diag%dws3dt_oss (IM,Model%levs) ) @@ -7941,8 +7903,8 @@ subroutine diag_create (Diag, Model) allocate (Diag%ldt3dt_ngw (IM,Model%levs) ) endif + allocate (Diag%dudt_ogw (IM,Model%levs)) if (Model%do_ugwp_v1 .or. Model%ldiag_ugwp) then - allocate (Diag%dudt_ogw (IM,Model%levs)) allocate (Diag%dvdt_ogw (IM,Model%levs)) allocate (Diag%dudt_obl (IM,Model%levs)) allocate (Diag%dvdt_obl (IM,Model%levs)) @@ -7966,8 +7928,6 @@ subroutine diag_create (Diag, Model) allocate (Diag%dv3_osscol (IM) ) allocate (Diag%du3_ofdcol (IM) ) allocate (Diag%dv3_ofdcol (IM) ) - else - allocate (Diag%dudt_ogw (IM,Model%levs)) endif !--- 3D diagnostics for Thompson MP / GFDL MP @@ -8262,8 +8222,8 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%dtdt_gw = zero Diag%kdis_gw = zero + Diag%dudt_ogw = zero if (Model%do_ugwp_v1 .or. Model%ldiag_ugwp) then - Diag%dudt_ogw = zero Diag%dvdt_ogw = zero Diag%dudt_obl = zero Diag%dvdt_obl = zero @@ -8287,24 +8247,14 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%dv3_osscol = zero Diag%du3_ofdcol = zero Diag%dv3_ofdcol = zero - else - Diag%dudt_ogw = zero end if if (Model%ldiag_ugwp) then - Diag%du3dt_pbl = zero - Diag%dv3dt_pbl = zero - Diag%dt3dt_pbl = zero Diag%du3dt_ogw = zero Diag%du3dt_mtb = zero Diag%du3dt_tms = zero Diag%du3dt_ngw = zero Diag%dv3dt_ngw = zero - Diag%dudt_tot = zero - Diag%dvdt_tot = zero - Diag%dtdt_tot = zero - Diag%uav_ugwp = zero - Diag%tav_ugwp = zero Diag%dws3dt_ogw = zero Diag%dws3dt_obl = zero Diag%dws3dt_oss = zero @@ -8316,8 +8266,6 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%ldu3dt_ngw = zero Diag%ldv3dt_ngw = zero Diag%ldt3dt_ngw = zero -!COORDE - Diag%du3dt_dyn = zero endif ! diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 7f08839c9..5249257f9 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -697,7 +697,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) + active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == clm_lake_model_control_selection_value) [use_lake_model] standard_name = flag_for_using_lake_model long_name = flag indicating lake points using a lake model @@ -711,7 +711,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) + active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == clm_lake_model_control_selection_value) [lake_q2m] standard_name = specific_humidity_at_2m_from_clm_lake long_name = specific humidity at 2m from clm lake @@ -719,7 +719,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) + active = (control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == clm_lake_model_control_selection_value) [h_ML] standard_name = mixed_layer_depth_of_lakes long_name = depth of lake mixing layer @@ -727,7 +727,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [t_ML] standard_name = lake_mixed_layer_temperature long_name = temperature of lake mixing layer @@ -735,7 +735,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [t_mnw] standard_name = mean_temperature_of_the_water_column long_name = thee mean temperature of the water column @@ -743,7 +743,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [h_talb] standard_name = the_thermally_active_layer_depth_of_the_bottom_sediment long_name = the depth of the thermally active layer of the bottom sediment @@ -751,7 +751,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [t_talb] standard_name = temperature_at_the_bottom_of_the_sediment_upper_layer long_name = the temperature at the bottom of the sediment upper layer @@ -759,7 +759,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [t_bot1] standard_name = lake_bottom_temperature long_name = the temperature at the water-bottom sediment interface @@ -767,7 +767,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [t_bot2] standard_name = temperature_for_bottom_layer_of_water long_name = the temperature at the lake bottom layer water @@ -775,7 +775,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [c_t] standard_name = shape_factor_of_water_temperature_vertical_profile long_name = the shape factor of water temperature vertical profile @@ -783,7 +783,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 1 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == flake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [T_snow] standard_name = temperature_of_snow_on_lake long_name = temperature of snow on a lake @@ -1911,6 +1911,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys + active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) [snowfallac_ice] standard_name = surface_snow_amount_assuming_variable_snow_density_over_ice long_name = run-total snow accumulation on the ground with variable snow density over ice @@ -1926,6 +1927,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys + active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) [ustm] standard_name = surface_friction_velocity_for_momentum long_name = friction velocity isolated for momentum only @@ -2023,7 +2025,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. ( control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) ) + active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. ( control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == clm_lake_model_control_selection_value) ) [rainncprv] standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep @@ -2031,7 +2033,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. ( control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == 2) ) + active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. ( control_for_lake_model_execution_method > 0 .and. control_for_lake_model_selection == clm_lake_model_control_selection_value) ) [iceprv] standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep @@ -2131,7 +2133,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [input_lakedepth] standard_name = lake_depth_before_correction long_name = lake depth_before_correction @@ -2139,7 +2141,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_h2osno2d] standard_name = water_equivalent_accumulated_snow_depth_in_clm_lake_model long_name = water equiv of acc snow depth over lake in clm lake model @@ -2147,7 +2149,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_sndpth2d] standard_name = actual_snow_depth_in_clm_lake_model long_name = actual acc snow depth over lake in clm lake model @@ -2155,7 +2157,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_snl2d] standard_name = snow_layers_in_clm_lake_model long_name = snow layers in clm lake model (treated as integer) @@ -2163,7 +2165,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_snow_z3d] standard_name = snow_level_depth_in_clm_lake_model long_name = snow level depth in clm lake model @@ -2171,7 +2173,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_snow_dz3d] standard_name = snow_level_thickness_in_clm_lake_model long_name = snow level thickness in clm lake model @@ -2179,7 +2181,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_snow_zi3d] standard_name = snow_interface_depth_in_clm_lake_model long_name = snow interface_depth in clm lake model @@ -2187,7 +2189,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_h2osoi_vol3d] standard_name = volumetric_soil_water_in_clm_lake_model long_name = volumetric soil water in clm lake model @@ -2195,7 +2197,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_h2osoi_liq3d] standard_name = soil_liquid_water_content_in_clm_lake_model long_name = soil liquid water content in clm lake model @@ -2203,7 +2205,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_h2osoi_ice3d] standard_name = soil_ice_water_content_in_clm_lake_model long_name = soil ice water content in clm lake model @@ -2211,7 +2213,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_tsfc] standard_name = skin_temperature_from_lake_model long_name = skin temperature from lake model @@ -2219,7 +2221,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_t_soisno3d] standard_name = soil_or_snow_layer_temperature_from_clm_lake_model long_name = soil or snow layer temperature from clm lake model @@ -2227,7 +2229,7 @@ dimensions = (horizontal_dimension,snow_plus_soil_minus_one_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_t_lake3d] standard_name = lake_layer_temperature_from_clm_lake_model long_name = lake layer temperature from clm lake model @@ -2235,7 +2237,7 @@ dimensions = (horizontal_dimension,lake_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_savedtke12d] standard_name = top_level_eddy_conductivity_from_previous_timestep_in_clm_lake_model long_name = top level eddy conductivity from previous timestep in clm lake model @@ -2243,7 +2245,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_icefrac3d] standard_name = lake_fractional_ice_cover_on_clm_lake_levels long_name = lake fractional ice cover on clm lake levels @@ -2251,7 +2253,7 @@ dimensions = (horizontal_dimension,lake_vertical_dimension_for_clm_lake_model) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_ht] standard_name = test_lake_ht long_name = test_lake_ht @@ -2259,7 +2261,7 @@ units = unitless type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [clm_lake_initialized] standard_name = flag_for_clm_lake_initialization long_name = set to true in clm_lake_run after likeini is called for that gridpoint @@ -2267,21 +2269,21 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_is_salty] standard_name = clm_lake_is_salty long_name = lake at this point is salty (1) or not (0) units = 1 dimensions = (horizontal_dimension) type = integer - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [lake_cannot_freeze] standard_name = clm_lake_cannot_freeze long_name = lake at this point is so salty it cannot freeze units = 1 dimensions = (horizontal_dimension) type = integer - active = (control_for_lake_model_selection == 2 .and. control_for_lake_model_execution_method > 0) + active = (control_for_lake_model_selection == clm_lake_model_control_selection_value .and. control_for_lake_model_execution_method > 0) [emdust] standard_name = emission_of_dust_for_smoke long_name = emission of dust for smoke @@ -2502,7 +2504,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_stochastic_physics_perturbations .or. flag_for_chemistry_coupling .or. flag_for_global_cellular_automata .or. flag_for_land_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_stochastic_physics_perturbations .or. flag_for_chemistry_coupling .or. flag_for_global_cellular_automata .or. flag_for_land_coupling .or. do_fire_coupling) [rainc_cpl] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_for_coupling long_name = total convective precipitation @@ -2526,7 +2528,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvsfc_cpl] standard_name = cumulative_surface_y_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc y momentum flux multiplied by timestep @@ -2534,7 +2536,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dtsfc_cpl] standard_name = cumulative_surface_upward_sensible_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep @@ -2542,7 +2544,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dqsfc_cpl] standard_name = cumulative_surface_upward_latent_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep @@ -2550,7 +2552,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dlwsfc_cpl] standard_name = cumulative_surface_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward lw flux mulitplied by timestep @@ -2574,7 +2576,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dnirdf_cpl] standard_name = cumulative_surface_downwelling_diffuse_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc nir diff downward sw flux multiplied by timestep @@ -2582,7 +2584,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvisbm_cpl] standard_name = cumulative_surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc uv+vis beam dnwd sw flux multiplied by timestep @@ -2590,7 +2592,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvisdf_cpl] standard_name = cumulative_surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc uv+vis diff dnwd sw flux multiplied by timestep @@ -2598,7 +2600,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [nlwsfc_cpl] standard_name = cumulative_surface_net_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net downward lw flux multiplied by timestep @@ -2606,7 +2608,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [nswsfc_cpl] standard_name = cumulative_surface_net_downwelling_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net downward sw flux multiplied by timestep @@ -2654,7 +2656,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvsfci_cpl] standard_name = surface_y_momentum_flux_for_coupling long_name = instantaneous sfc y momentum flux @@ -2662,7 +2664,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dtsfci_cpl] standard_name = surface_upward_sensible_heat_flux_for_coupling long_name = instantaneous sfc sensible heat flux @@ -2670,7 +2672,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling .or. (flag_for_air_quality_coupling .and. .not. flag_for_surface_flux_coupling)) [dqsfci_cpl] standard_name = surface_upward_latent_heat_flux_for_coupling long_name = instantaneous sfc latent heat flux @@ -2678,7 +2680,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling .or. (flag_for_air_quality_coupling .and. .not. flag_for_surface_flux_coupling)) [dlwsfci_cpl] standard_name = surface_downwelling_longwave_flux_for_coupling long_name = instantaneous sfc downward lw flux @@ -2702,7 +2704,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dnirdfi_cpl] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir diff downward sw flux @@ -2710,7 +2712,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvisbmi_cpl] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis beam downward sw flux @@ -2718,7 +2720,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvisdfi_cpl] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis diff downward sw flux @@ -2726,7 +2728,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [nlwsfci_cpl] standard_name = surface_net_downwelling_longwave_flux_for_coupling long_name = instantaneous net sfc downward lw flux @@ -2734,7 +2736,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [nswsfci_cpl] standard_name = surface_net_downwelling_shortwave_flux_for_coupling long_name = instantaneous net sfc downward sw flux @@ -2742,7 +2744,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. flag_for_land_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling .or. do_fire_coupling .or. (flag_for_air_quality_coupling .and. .not. flag_for_surface_flux_coupling)) [nnirbmi_cpl] standard_name = surface_net_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous net nir beam sfc downward sw flux @@ -2782,7 +2784,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. do_fire_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling .or. (flag_for_air_quality_coupling .and. .not. flag_for_surface_flux_coupling)) [q2mi_cpl] standard_name = specific_humidity_at_2m_for_coupling long_name = instantaneous Q2m @@ -2790,7 +2792,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. do_fire_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling .or. (flag_for_air_quality_coupling .and. .not. flag_for_surface_flux_coupling)) [u10mi_cpl] standard_name = x_wind_at_10m_for_coupling long_name = instantaneous U10m @@ -2822,7 +2824,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling .or. flag_for_land_coupling .or. do_fire_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_land_coupling .or. do_fire_coupling .or. (flag_for_air_quality_coupling .and. .not. flag_for_surface_flux_coupling)) [ulwsfcin_cpl] standard_name = surface_upwelling_longwave_flux_from_coupled_process long_name = surface upwelling LW flux for coupling @@ -2830,7 +2832,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dusfcin_cpl] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -2838,7 +2840,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dvsfcin_cpl] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -2846,7 +2848,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dtsfcin_cpl] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux input @@ -2854,7 +2856,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dqsfcin_cpl] standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux input for coupling @@ -2862,7 +2864,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [ulwsfcin_med] standard_name = surface_upwelling_longwave_flux_over_ocean_from_mediator long_name = surface upwelling LW flux over ocean for coupling @@ -2870,7 +2872,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) + active = ((flag_for_surface_flux_coupling .or. do_fire_coupling) .and. do_mediator_atmosphere_ocean_fluxes) [dusfcin_med] standard_name = surface_x_momentum_flux_over_ocean_from_mediator long_name = sfc x momentum flux over ocean for coupling @@ -2886,7 +2888,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) + active = ((flag_for_surface_flux_coupling .or. do_fire_coupling) .and. do_mediator_atmosphere_ocean_fluxes) [dtsfcin_med] standard_name = surface_upward_sensible_heat_flux_over_ocean_from_mediator long_name = sfc sensible heat flux input over ocean for coupling @@ -2894,7 +2896,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) + active = ((flag_for_surface_flux_coupling .or. do_fire_coupling) .and. do_mediator_atmosphere_ocean_fluxes) [dqsfcin_med] standard_name = surface_upward_latent_heat_flux_over_ocean_from_mediator long_name = sfc latent heat flux input over ocean for coupling @@ -2902,7 +2904,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .and. do_mediator_atmosphere_ocean_fluxes) + active = ((flag_for_surface_flux_coupling .or. do_fire_coupling) .and. do_mediator_atmosphere_ocean_fluxes) [sncovr1_lnd] standard_name = surface_snow_area_fraction_over_land_from_land long_name = surface snow area fraction over land for coupling @@ -3014,6 +3016,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [slimskin_cpl] standard_name = area_type_from_coupled_process long_name = sea/land/ice mask input (=0/1/2) @@ -3021,7 +3024,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. do_fire_coupling) [dqdt_qmicro] standard_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics long_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics @@ -3148,7 +3151,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics) + active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. (flag_for_aerosol_physics .or. do_merra2_aerosol_awareness)) [nifa2d] standard_name = tendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layer long_name = instantaneous ice-friendly sfc aerosol source @@ -3156,7 +3159,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys - active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics) + active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. (flag_for_aerosol_physics .or. do_merra2_aerosol_awareness)) [ebu_smoke] standard_name = ebu_smoke long_name = buffer of vertical fire emission @@ -8275,7 +8278,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection .or. control_for_deep_convection_scheme == identifier_for_new_tiedtke_deep_convection .or. control_for_deep_convection_scheme == identifer_for_scale_aware_mass_flux_deep_convection .or. control_for_shallow_convection_scheme == identifier_for_scale_aware_mass_flux_shallow_convection) + active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection .or. control_for_deep_convection_scheme == identifier_for_new_tiedtke_deep_convection .or. control_for_deep_convection_scheme == identifer_for_scale_aware_mass_flux_deep_convection .or. control_for_shallow_convection_scheme == identifier_for_scale_aware_mass_flux_shallow_convection .or. control_for_shallow_convection_scheme == identifier_for_c3_shallow_convection) [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -9403,7 +9406,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D) + active = (flag_for_diagnostics_3D .and. flag_for_tracer_diagnostics_3D) [dwn_mf] standard_name = cumulative_atmosphere_downdraft_convective_mass_flux long_name = cumulative downdraft mass flux @@ -9411,7 +9414,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D) + active = (flag_for_diagnostics_3D .and. flag_for_tracer_diagnostics_3D) [det_mf] standard_name = cumulative_atmosphere_detrainment_convective_mass_flux long_name = cumulative detrainment mass flux @@ -9419,7 +9422,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D) + active = (flag_for_diagnostics_3D .and. flag_for_tracer_diagnostics_3D) [do3_dt_prd] standard_name = ozone_tendency_due_to_production_and_loss_rate long_name = ozone tendency due to production and loss rate @@ -9427,7 +9430,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) + active = (flag_for_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) [do3_dt_ozmx] standard_name = ozone_tendency_due_to_ozone_mixing_ratio long_name = ozone tendency due to ozone mixing ratio @@ -9435,7 +9438,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) + active = (flag_for_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) [do3_dt_temp] standard_name = ozone_tendency_due_to_temperature long_name = ozone tendency due to temperature @@ -9443,7 +9446,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) + active = (flag_for_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) [do3_dt_ohoz] standard_name = ozone_tendency_due_to_overhead_ozone_column long_name = ozone tendency due to overhead ozone column @@ -9451,7 +9454,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) + active = (flag_for_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm @@ -9616,7 +9619,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) + active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output > 0) [qwt] standard_name = tke_tendency_due_to_vertical_transport long_name = tke tendency due to vertical transport and diffusion @@ -9624,7 +9627,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) + active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output > 0) [qshear] standard_name = tke_tendency_due_to_shear long_name = tke tendency due to shear @@ -9632,7 +9635,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) + active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output > 0) [qbuoy] standard_name = tke_tendency_due_to_buoyancy long_name = tke tendency due to buoyancy production or consumption @@ -9640,7 +9643,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) + active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output > 0) [qdiss] standard_name = tke_tendency_due_to_dissipation long_name = tke tendency due to the dissipation of tke @@ -9648,7 +9651,7 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output == 1) + active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme .and. control_for_tke_budget_output > 0) [maxwidth] standard_name = maximum_width_of_plumes long_name = maximum width of plumes per grid column @@ -9673,12 +9676,6 @@ type = real kind = kind_phys active = (flag_for_mellor_yamada_nakanishi_niino_pbl_scheme) -[ktop_shallow] - standard_name = k_level_of_highest_reaching_plume - long_name = k-level of highest reaching plume - units = count - dimensions = (horizontal_dimension) - type = integer [ktop_plume] standard_name = k_level_of_highest_plume long_name = k-level of highest plume @@ -9906,7 +9903,6 @@ dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. flag_for_unified_gravity_wave_physics_diagnostics) [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y wind tendency from meso scale ogw @@ -10130,6 +10126,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys + active = (flag_to_print_pgr_differences_every_timestep) [ltg1_max] standard_name = lightning_threat_index_1 long_name = lightning threat index 1 From 372b62856888fea2c1ac5106527d4f6ab1ff3120 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 4 Feb 2025 14:45:44 -0500 Subject: [PATCH 2/2] update ccpp/physics submodule pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 832245afc..d2dd10479 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 832245afc6e593d6a5e7ff6115e37919773f6021 +Subproject commit d2dd104791f3fc4782df84f20974ccfcfc17e65c