From 9ba5c5dd0e013a77ca7e4d6c6ffacf380d96abe1 Mon Sep 17 00:00:00 2001 From: "Samuel Trahan (NOAA contractor)" <39415369+SamuelTrahanNOAA@users.noreply.github.com> Date: Wed, 15 Nov 2023 15:23:42 -0500 Subject: [PATCH] new global_nest_v1 suite and #715 (#709) * new global_nest_v1 suite * switch to ugwpv1 in global_nest_v1 suite * update suite_FV3_global_nest_v1.xml for scheme rename/rearrangement * point to lisa/C3_updates --------- Co-authored-by: Lisa Bengtsson --- ccpp/data/GFS_typedefs.F90 | 21 +++++- ccpp/data/GFS_typedefs.meta | 21 ++++++ ccpp/physics | 2 +- ccpp/suites/suite_FV3_global_nest_v1.xml | 95 ++++++++++++++++++++++++ 4 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 ccpp/suites/suite_FV3_global_nest_v1.xml diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index dd9505128..3289d24bd 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1192,6 +1192,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 @@ -3072,7 +3075,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 @@ -3627,6 +3629,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 @@ -3945,8 +3951,8 @@ 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, & + 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, & @@ -4726,11 +4732,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.' @@ -6732,6 +6742,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/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index d1c05af58..d028a5834 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -5299,6 +5299,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 diff --git a/ccpp/physics b/ccpp/physics index c2ec9e5e1..2b7bb29fd 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c2ec9e5e165dac07a991424bd22bb0667cf32017 +Subproject commit 2b7bb29fda845a558e6ea8000e948a4a6e0ae0d6 diff --git a/ccpp/suites/suite_FV3_global_nest_v1.xml b/ccpp/suites/suite_FV3_global_nest_v1.xml new file mode 100644 index 000000000..5a8dbd3e0 --- /dev/null +++ b/ccpp/suites/suite_FV3_global_nest_v1.xml @@ -0,0 +1,95 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + GFS_radiation_surface + rad_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + mynnsfc_wrapper + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + noahmpdrv + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + ugwpv1_gsldrag + ugwpv1_gsldrag_post + GFS_GWD_generic_post + GFS_suite_stateout_update + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_DCNV_generic_pre + cu_c3_driver_pre + cu_c3_driver + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + mp_thompson_pre + + + mp_thompson + + + mp_thompson_post + GFS_MP_generic_post + cu_c3_driver_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + GFS_physics_post + + + +