Skip to content

Commit

Permalink
Merge pull request #416 from grantfirl/ufs-dev-PR122
Browse files Browse the repository at this point in the history
UFS-dev PR#122
  • Loading branch information
grantfirl authored Feb 14, 2024
2 parents 241054c + 0b4c7b0 commit 7189ee1
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 5 deletions.
23 changes: 19 additions & 4 deletions scm/src/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1186,6 +1186,9 @@ module GFS_typedefs
integer :: seed0 !< random seed for radiation

real(kind=kind_phys) :: rbcr !< Critical Richardson Number in the PBL scheme
real(kind=kind_phys) :: betascu !< Tuning parameter for prog. closure shallow clouds
real(kind=kind_phys) :: betamcu !< Tuning parameter for prog. closure midlevel clouds
real(kind=kind_phys) :: betadcu !< Tuning parameter for prog. closure deep clouds

!--- MYNN parameters/switches
logical :: do_mynnedmf
Expand Down Expand Up @@ -3062,7 +3065,6 @@ subroutine coupling_create (Coupling, IM, Model)
Coupling%psurfi_cpl = clear_val
endif

!--prognostic closure - moisture coupling
if(Model%progsigma)then
allocate(Coupling%dqdt_qmicro (IM,Model%levs))
Coupling%dqdt_qmicro = clear_val
Expand Down Expand Up @@ -3619,6 +3621,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: var_ric = 1.0
real(kind=kind_phys) :: coef_ric_l = 0.16
real(kind=kind_phys) :: coef_ric_s = 0.25
!Prognostic convective closure
real(kind=kind_phys) :: betascu = 8.0 !< Tuning parameter for prog. closure shallow clouds
real(kind=kind_phys) :: betamcu = 1.0 !< Tuning parameter for prog. closure midlevel clouds
real(kind=kind_phys) :: betadcu = 2.0 !< Tuning parameter for prog. closure deep clouds
! *DH
logical :: do_myjsfc = .false. !< flag for MYJ surface layer scheme
logical :: do_myjpbl = .false. !< flag for MYJ PBL scheme
Expand Down Expand Up @@ -3950,9 +3956,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
do_ugwp_v1, do_ugwp_v1_orog_only, do_ugwp_v1_w_gsldrag, &
ugwp_seq_update, var_ric, coef_ric_l, coef_ric_s, hurr_pbl, &
do_myjsfc, do_myjpbl, &
hwrf_samfdeep, hwrf_samfshal,progsigma, &
h2o_phys, pdfcld, shcnvcw, redrag, hybedmf, satmedmf, &
shinhong, do_ysu, acm, dspheat, lheatstrg, lseaspray, cnvcld,&
hwrf_samfdeep, hwrf_samfshal,progsigma,betascu,betamcu, &
betadcu,h2o_phys, pdfcld, shcnvcw, redrag, hybedmf, satmedmf,&
shinhong, do_ysu, dspheat, lheatstrg, lseaspray, cnvcld, &
random_clds, shal_cnv, imfshalcnv, imfdeepcnv, isatmedmf, &
do_deep, jcap, &
cs_parm, flgmin, cgwf, ccwf, cdmbgwd, sup, ctei_rm, crtrh, &
Expand Down Expand Up @@ -4780,11 +4786,15 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%hwrf_samfdeep = hwrf_samfdeep
Model%hwrf_samfshal = hwrf_samfshal

!--prognostic closure - moisture coupling
if ((progsigma .and. imfdeepcnv/=2) .and. (progsigma .and. imfdeepcnv/=5)) then
write(*,*) 'Logic error: progsigma requires imfdeepcnv=2 or 5'
stop
end if
Model%progsigma = progsigma
Model%betascu = betascu
Model%betamcu = betamcu
Model%betadcu = betadcu

if (oz_phys .and. oz_phys_2015) then
write(*,*) 'Logic error: can only use one ozone physics option (oz_phys or oz_phys_2015), not both. Exiting.'
Expand Down Expand Up @@ -6788,6 +6798,11 @@ subroutine control_print(Model)
print *, ' do_spp : ', Model%do_spp
print *, ' n_var_spp : ', Model%n_var_spp
print *, ' '
print *, 'convection'
print *, 'betascu : ', Model%betascu
print *, 'betamcu : ', Model%betamcu
print *, 'betadcu : ', Model%betadcu
print *, ' '
print *, 'cellular automata'
print *, ' nca : ', Model%nca
print *, ' ncells : ', Model%ncells
Expand Down
21 changes: 21 additions & 0 deletions scm/src/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -5313,6 +5313,27 @@
units = flag
dimensions = ()
type = logical
[betascu]
standard_name = tuning_param_for_shallow_cu
long_name = tuning param for shallow cu in case prognostic closure is used
units = none
dimensions = ()
type = real
kind = kind_phys
[betamcu]
standard_name = tuning_param_for_midlevel_cu
long_name = tuning param for midlevel cu in case prognostic closure is used
units = none
dimensions = ()
type = real
kind = kind_phys
[betadcu]
standard_name = tuning_param_for_deep_cu
long_name = tuning param for deep cu in case prognostic closure is used
units = none
dimensions = ()
type = real
kind = kind_phys
[isatmedmf]
standard_name = choice_of_scale_aware_TKE_moist_EDMF_PBL
long_name = choice of scale-aware TKE moist EDMF PBL scheme
Expand Down

0 comments on commit 7189ee1

Please sign in to comment.