diff --git a/ccpp/physics b/ccpp/physics index 0339aa94b..23f120a54 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 0339aa94bcac9913770a674091fe9720a453eb2f +Subproject commit 23f120a54ac1de039a496f249b07532f07cfb38b diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 6c2ab7f8a..e58401b59 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -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 @@ -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 @@ -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 @@ -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, & @@ -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.' @@ -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 diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index b3475c3e0..a1fc135c2 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -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