Skip to content

Commit

Permalink
Merge pull request NCAR#411 from grantfirl/ufs-dev-PR98
Browse files Browse the repository at this point in the history
UFS-dev PR#98
  • Loading branch information
grantfirl authored Jan 25, 2024
2 parents e607121 + 33d7b74 commit bf762a5
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 7 deletions.
19 changes: 14 additions & 5 deletions scm/src/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -605,6 +605,7 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: spp_wts_mp (:,:) => null() ! spp-mp-perts
real (kind=kind_phys), pointer :: spp_wts_gwd (:,:) => null() ! spp-gwd-perts
real (kind=kind_phys), pointer :: spp_wts_rad (:,:) => null() ! spp-rad-perts
real (kind=kind_phys), pointer :: spp_wts_cu_deep (:,:) => null() ! spp-cu-deep-perts

!--- aerosol surface emissions for Thompson microphysics
real (kind=kind_phys), pointer :: nwfa2d (:) => null() !< instantaneous water-friendly sfc aerosol source
Expand Down Expand Up @@ -965,9 +966,9 @@ module GFS_typedefs
real(kind=kind_phys) :: nssl_cccn !< CCN concentration (m-3)
real(kind=kind_phys) :: nssl_alphah !< graupel shape parameter
real(kind=kind_phys) :: nssl_alphahl !< hail shape parameter
real(kind=kind_phys) :: nssl_alphar ! shape parameter for rain (imurain=1 only)
real(kind=kind_phys) :: nssl_ehw0 ! constant or max assumed graupel-droplet collection efficiency
real(kind=kind_phys) :: nssl_ehlw0 ! constant or max assumed hail-droplet collection efficiency
real(kind=kind_phys) :: nssl_alphar ! shape parameter for rain (imurain=1 only)
real(kind=kind_phys) :: nssl_ehw0 ! constant or max assumed graupel-droplet collection efficiency
real(kind=kind_phys) :: nssl_ehlw0 ! constant or max assumed hail-droplet collection efficiency
logical :: nssl_hail_on !< NSSL flag to activate the hail category
logical :: nssl_ccn_on !< NSSL flag to activate the CCN category
logical :: nssl_invertccn !< NSSL flag to treat CCN as activated (true) or unactivated (false)
Expand Down Expand Up @@ -1322,6 +1323,7 @@ module GFS_typedefs
integer :: nseed !< cellular automata seed frequency
integer :: nseed_g !< cellular automata seed frequency
logical :: do_ca !< cellular automata main switch
logical :: ca_advect !< Advection of cellular automata
logical :: ca_sgs !< switch for sgs ca
logical :: ca_global !< switch for global ca
logical :: ca_smooth !< switch for gaussian spatial filter
Expand Down Expand Up @@ -1363,8 +1365,9 @@ module GFS_typedefs
integer :: spp_mp
integer :: spp_rad
integer :: spp_gwd
integer :: spp_cu_deep
integer :: n_var_spp
character(len=3) , pointer :: spp_var_list(:)
character(len=10) , pointer :: spp_var_list(:)
real(kind=kind_phys), pointer :: spp_prt_list(:)
real(kind=kind_phys), pointer :: spp_stddev_cutoff(:)

Expand Down Expand Up @@ -3110,6 +3113,8 @@ subroutine coupling_create (Coupling, IM, Model)
Coupling%spp_wts_gwd = clear_val
allocate (Coupling%spp_wts_rad (IM,Model%levs))
Coupling%spp_wts_rad = clear_val
allocate (Coupling%spp_wts_cu_deep (IM,Model%levs))
Coupling%spp_wts_cu_deep = clear_val
endif

!--- needed for Thompson's aerosol option
Expand Down Expand Up @@ -3757,6 +3762,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
integer :: iseed_ca = 1
integer :: nspinup = 1
logical :: do_ca = .false.
logical :: ca_advect = .false.
logical :: ca_sgs = .false.
logical :: ca_global = .false.
logical :: ca_smooth = .false.
Expand Down Expand Up @@ -3807,6 +3813,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
integer :: spp_mp = 0
integer :: spp_rad = 0
integer :: spp_gwd = 0
integer :: spp_cu_deep = 0
logical :: do_spp = .false.

integer :: ichoice = 0 !< flag for closure of C3/GF deep convection
Expand Down Expand Up @@ -3979,7 +3986,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
h0facu, h0facs, &
!--- cellular automata
nca, ncells, nlives, nca_g, ncells_g, nlives_g, nfracseed, &
nseed, nseed_g, nthresh, do_ca, &
nseed, nseed_g, nthresh, do_ca, ca_advect, &
ca_sgs, ca_global,iseed_ca,ca_smooth, &
nspinup,ca_amplitude,nsmooth,ca_closure,ca_entr,ca_trigger, &
!--- IAU
Expand Down Expand Up @@ -4998,6 +5005,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%nseed_g = nseed_g
Model%ca_global = ca_global
Model%do_ca = do_ca
Model%ca_advect = ca_advect
Model%ca_sgs = ca_sgs
Model%iseed_ca = iseed_ca
Model%ca_smooth = ca_smooth
Expand Down Expand Up @@ -6760,6 +6768,7 @@ subroutine control_print(Model)
print *, ' ca_global : ', Model%ca_global
print *, ' ca_sgs : ', Model%ca_sgs
print *, ' do_ca : ', Model%do_ca
print *, ' ca_advect : ', Model%ca_advect
print *, ' iseed_ca : ', Model%iseed_ca
print *, ' ca_smooth : ', Model%ca_smooth
print *, ' nspinup : ', Model%nspinup
Expand Down
22 changes: 21 additions & 1 deletion scm/src/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -2952,6 +2952,14 @@
type = real
kind = kind_phys
active = (do_stochastically_perturbed_parameterizations)
[spp_wts_cu_deep]
standard_name = spp_weights_for_cu_deep_scheme
long_name = spp weights for cu deep scheme
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
active = (do_stochastically_perturbed_parameterizations)
[sfc_wts]
standard_name = surface_stochastic_weights_from_coupled_process
long_name = weights for stochastic surface physics perturbation
Expand Down Expand Up @@ -5712,6 +5720,12 @@
units = flag
dimensions = ()
type = logical
[ca_advect]
standard_name = flag_for_cellular_automata_advection
long_name = cellular automata main switch
units = flag
dimensions = ()
type = logical
[ca_sgs]
standard_name = flag_for_sgs_cellular_automata
long_name = switch for sgs ca
Expand Down Expand Up @@ -5867,7 +5881,7 @@
units = none
dimensions = (number_of_perturbed_spp_schemes)
type = character
kind = len=3
kind = len=10
active = (do_stochastically_perturbed_parameterizations)
[spp_pbl]
standard_name = control_for_pbl_spp_perturbations
Expand Down Expand Up @@ -5899,6 +5913,12 @@
units = count
dimensions = ()
type = integer
[spp_cu_deep]
standard_name = control_for_deep_convection_spp_perturbations
long_name = control for deep convection spp perturbations
units = count
dimensions = ()
type = integer
[ntrac]
standard_name = number_of_tracers
long_name = number of tracers
Expand Down

0 comments on commit bf762a5

Please sign in to comment.