From bd785e50f90985fb1330e36852297af38293415b Mon Sep 17 00:00:00 2001 From: DWesl <22566757+DWesl@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:11:58 -0500 Subject: [PATCH 1/2] STY: Use capital W and lowercase m for watts per square meter (#859) * Cosmetic unit update: w/m2 to W/m2 --- atmos_cubed_sphere | 2 +- ccpp/driver/GFS_diagnostics.F90 | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 24686a256..e36e8572e 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 24686a2561f1414eb86c7b97c93960c36e4257b1 +Subproject commit e36e8572e7643d7e59a3979a61bdd83743ff7b00 diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 4729819ea..019711825 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -998,7 +998,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'sw_upfxc' ExtDiag(idx)%desc = 'total sky upward sw flux at toa - GFS radiation' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1010,7 +1010,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'sw_dnfxc' ExtDiag(idx)%desc = 'total sky downward sw flux at toa - GFS radiation' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1022,7 +1022,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'sw_upfx0' ExtDiag(idx)%desc = 'clear sky upward sw flux at toa - GFS radiation' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1034,7 +1034,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'lw_upfxc' ExtDiag(idx)%desc = 'total sky upward lw flux at toa - GFS radiation' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1046,7 +1046,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'lw_upfx0' ExtDiag(idx)%desc = 'clear sky upward lw flux at toa - GFS radiation' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1234,7 +1234,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'shtfl_ave' ExtDiag(idx)%desc = 'surface sensible heat flux' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%cnvfac = cn_one ExtDiag(idx)%time_avg = .TRUE. @@ -1248,7 +1248,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'lhtfl_ave' ExtDiag(idx)%desc = 'surface latent heat flux' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%cnvfac = cn_one ExtDiag(idx)%time_avg = .TRUE. @@ -1306,7 +1306,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'dlwsfc' ExtDiag(idx)%desc = 'time accumulated downward lw flux at surface' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1318,7 +1318,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'ulwsfc' ExtDiag(idx)%desc = 'time accumulated upward lw flux at surface' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -1399,7 +1399,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'pevpr_ave' ExtDiag(idx)%desc = 'averaged potential evaporation rate' - ExtDiag(idx)%unit = 'W/M**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%time_avg = .TRUE. allocate (ExtDiag(idx)%data(nblks)) @@ -2073,7 +2073,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'dlwsfci' ExtDiag(idx)%desc = 'instantaneous sfc downward lw flux' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -2085,7 +2085,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'ulwsfci' ExtDiag(idx)%desc = 'instantaneous sfc upward lw flux' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -2097,7 +2097,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'dswsfci' ExtDiag(idx)%desc = 'instantaneous sfc downward sw flux' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -2109,7 +2109,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'uswsfci' ExtDiag(idx)%desc = 'instantaneous sfc upward sw flux' - ExtDiag(idx)%unit = 'w/m**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' ExtDiag(idx)%intpl_method = 'bilinear' allocate (ExtDiag(idx)%data(nblks)) @@ -2213,7 +2213,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'pevpr' ExtDiag(idx)%desc = 'instantaneous surface potential evaporation' - ExtDiag(idx)%unit = 'W/M**2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -4543,7 +4543,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'qrain' ExtDiag(idx)%desc = 'nsst sensible heat flux due to rainfall' - ExtDiag(idx)%unit = 'w/m2' + ExtDiag(idx)%unit = 'W/m**2' ExtDiag(idx)%mod_name = 'gfs_sfc' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks From 49967251b83255bdac7ac2f9626d2714e8b83d07 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Fri, 8 Nov 2024 13:04:08 -0500 Subject: [PATCH 2/2] Second reconciliation PR from production/RRFSv1 (#881) * cleanup of GFS_ and CCPP_typedefs code and metadata * fix some optional arguments in ccpp-physics * remove variables from GFS_diagnostics that have been removed from GFS_typedefs.F90 * fix RUC LSM variable that is allocated twice --- ccpp/data/CCPP_typedefs.F90 | 47 --------- ccpp/data/CCPP_typedefs.meta | 29 ++---- ccpp/data/GFS_typedefs.F90 | 117 ++++++--------------- ccpp/data/GFS_typedefs.meta | 173 ++++++++++++++++---------------- ccpp/driver/GFS_diagnostics.F90 | 88 +--------------- ccpp/physics | 2 +- 6 files changed, 129 insertions(+), 327 deletions(-) diff --git a/ccpp/data/CCPP_typedefs.F90 b/ccpp/data/CCPP_typedefs.F90 index 32abd412a..2a0355264 100644 --- a/ccpp/data/CCPP_typedefs.F90 +++ b/ccpp/data/CCPP_typedefs.F90 @@ -208,8 +208,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 !< @@ -367,15 +365,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 @@ -766,15 +755,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)) @@ -862,15 +842,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)) @@ -1176,15 +1147,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 @@ -1471,15 +1433,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/ccpp/data/CCPP_typedefs.meta b/ccpp/data/CCPP_typedefs.meta index d1a06abf0..e8ec56b8d 100644 --- a/ccpp/data/CCPP_typedefs.meta +++ b/ccpp/data/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/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 9e8bfc7d3..ef9411546 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -2089,14 +2089,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 ! @@ -2146,10 +2138,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() ! @@ -2368,8 +2356,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 @@ -2427,9 +2413,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)) @@ -2589,13 +2572,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 @@ -2640,7 +2627,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)) @@ -2675,7 +2661,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 @@ -2728,7 +2713,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)) @@ -2750,7 +2734,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 ! @@ -2969,14 +2952,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)) @@ -2990,9 +2990,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 @@ -3076,29 +3074,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 @@ -3136,6 +3126,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)) @@ -3153,7 +3144,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 @@ -3174,23 +3164,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 @@ -5323,8 +5296,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) @@ -7279,7 +7250,6 @@ subroutine tbd_create (Tbd, Model) if (Model%imfdeepcnv == Model%imfdeepcnv_gf .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke .or. Model%imfdeepcnv == Model%imfdeepcnv_c3) then allocate(Tbd%forcet(IM, Model%levs)) allocate(Tbd%forceq(IM, Model%levs)) - allocate(Tbd%forcet(IM, Model%levs)) allocate(Tbd%prevst(IM, Model%levs)) Tbd%forcet = clear_val Tbd%forceq = clear_val @@ -7838,20 +7808,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) ) @@ -7864,9 +7825,9 @@ subroutine diag_create (Diag, Model) allocate (Diag%ldv3dt_ngw (IM,Model%levs) ) 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)) @@ -7890,8 +7851,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 @@ -8186,8 +8145,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 @@ -8211,24 +8170,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 @@ -8240,8 +8189,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/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 2fee7ba12..57f8b986c 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/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 @@ -1897,6 +1897,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 @@ -1912,6 +1913,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 @@ -2009,7 +2011,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 @@ -2017,7 +2019,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 @@ -2117,7 +2119,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 @@ -2125,7 +2127,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 @@ -2133,7 +2135,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 @@ -2141,7 +2143,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) @@ -2149,7 +2151,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 @@ -2157,7 +2159,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 @@ -2165,7 +2167,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 @@ -2173,7 +2175,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 @@ -2181,7 +2183,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 @@ -2189,7 +2191,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 @@ -2197,7 +2199,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 @@ -2205,7 +2207,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 @@ -2213,7 +2215,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 @@ -2221,7 +2223,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 @@ -2229,7 +2231,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 @@ -2237,7 +2239,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 @@ -2245,7 +2247,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 @@ -2253,21 +2255,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 @@ -2488,7 +2490,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 @@ -2512,7 +2514,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 @@ -2520,7 +2522,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 @@ -2528,7 +2530,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 @@ -2536,7 +2538,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 @@ -2560,7 +2562,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 @@ -2568,7 +2570,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 @@ -2576,7 +2578,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 @@ -2584,7 +2586,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 @@ -2592,7 +2594,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 @@ -2640,7 +2642,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 @@ -2648,7 +2650,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 @@ -2656,7 +2658,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 @@ -2664,7 +2666,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 @@ -2688,7 +2690,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 @@ -2696,7 +2698,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 @@ -2704,7 +2706,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 @@ -2712,7 +2714,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 @@ -2720,7 +2722,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 @@ -2728,7 +2730,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 @@ -2768,7 +2770,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 @@ -2776,7 +2778,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 @@ -2808,7 +2810,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 @@ -2816,7 +2818,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 @@ -2824,7 +2826,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 @@ -2832,7 +2834,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 @@ -2840,7 +2842,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 @@ -2848,7 +2850,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 @@ -2856,7 +2858,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 @@ -2872,7 +2874,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 @@ -2880,7 +2882,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 @@ -2888,7 +2890,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 @@ -3000,6 +3002,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) @@ -3007,7 +3010,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 @@ -3134,7 +3137,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 @@ -3142,7 +3145,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 @@ -8182,7 +8185,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 @@ -9310,7 +9313,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 @@ -9318,7 +9321,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 @@ -9326,7 +9329,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 @@ -9334,7 +9337,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 @@ -9342,7 +9345,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 @@ -9350,7 +9353,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 @@ -9358,7 +9361,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 @@ -9523,7 +9526,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 @@ -9531,7 +9534,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 @@ -9539,7 +9542,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 @@ -9547,7 +9550,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 @@ -9555,7 +9558,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 @@ -9580,12 +9583,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 @@ -9813,7 +9810,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 @@ -10037,6 +10033,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 diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 019711825..ea70c93de 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2817,10 +2817,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop endif if (Model%ldiag_ugwp) THEN -! -! VAY-2018: Momentum and Temp-re tendencies -! du3dt_pbl dv3dt_pbl dT3dt_pbl -! + idx = idx + 1 ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'zmtb' @@ -2898,67 +2895,6 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var2 => IntDiag%tau_ngw(Model%chunk_begin(nb):Model%chunk_end(nb)) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'du3dt_pbl_ugwp' - ExtDiag(idx)%desc = 'U-tendency due to PBL physics' - ExtDiag(idx)%unit = 'm/s/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%du3dt_pbl(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo -! -! dv3dt_pbl - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dv3dt_pbl_ugwp' - ExtDiag(idx)%desc = 'V-tendency due to PBL physics' - ExtDiag(idx)%unit = 'm/s/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%dv3dt_pbl(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo -! -! dt3dt_pbl - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dt3dt_pbl_ugwp' - ExtDiag(idx)%desc = 'T-tendency due to PBL physics' - ExtDiag(idx)%unit = 'K/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%dt3dt_pbl(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo -! -! uav_ugwp -! - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'uav_ugwp' - ExtDiag(idx)%desc = 'U-daily mean for UGWP' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%uav_ugwp(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo -! -! tav_ugwp -! - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'tav_ugwp' - ExtDiag(idx)%desc = 'T-daily mean for UGWP' - ExtDiag(idx)%unit = 'K' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%tav_ugwp(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo - idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'du3dt_ogw' @@ -3004,28 +2940,6 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag%du3dt_tms(Model%chunk_begin(nb):Model%chunk_end(nb),:) enddo - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dudt_tot' - ExtDiag(idx)%desc = ' dudt_tot averaged E-W dycore-tendency' - ExtDiag(idx)%unit = 'm/s/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%dudt_tot(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'dtdt_tot' - ExtDiag(idx)%desc = ' dtdt_tot averaged Temp dycore-tendency' - ExtDiag(idx)%unit = 'Ks' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag%dtdt_tot(Model%chunk_begin(nb):Model%chunk_end(nb),:) - enddo - idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'dudt_ogw' diff --git a/ccpp/physics b/ccpp/physics index f3eeb3442..002a886ee 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f3eeb3442775b7239d98e3d09acc6d4f1d42233e +Subproject commit 002a886eeb14979a6811f89e885d2968cbfd9b70