From 91415d42d51059697e8d0c03f8b7f00e3fb7aea3 Mon Sep 17 00:00:00 2001 From: "Xiaqiong.Zhou" Date: Fri, 20 Oct 2023 14:45:01 +0000 Subject: [PATCH 1/2] Add a switch to turn off samfdeepcnv when the MYNN shallow convection is active --- physics/samfdeepcnv.f | 6 ++++-- physics/samfdeepcnv.meta | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/physics/samfdeepcnv.f b/physics/samfdeepcnv.f index 8a36fe34c..94a4cd148 100644 --- a/physics/samfdeepcnv.f +++ b/physics/samfdeepcnv.f @@ -83,7 +83,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & & CNV_DQLDT,CLCN,CNV_FICE,CNV_NDROP,CNV_NICE,mp_phys,mp_phys_mg,& & clam,c0s,c1,betal,betas,evef,pgcon,asolfac, & & do_ca, ca_closure, ca_entr, ca_trigger, nthresh,ca_deep, & - & rainevap,sigmain, sigmaout, errmsg,errflg) + & rainevap,sigmain, sigmaout, maxMF, do_mynnedmf, errmsg,errflg) ! use machine , only : kind_phys use funcphys , only : fpvs @@ -99,11 +99,12 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & & prslp(:,:), garea(:), hpbl(:), dot(:,:), phil(:,:) real(kind=kind_phys), dimension(:), intent(in) :: fscav logical, intent(in) :: first_time_step,restart,hwrf_samfdeep, & - & progsigma + & progsigma,do_mynnedmf real(kind=kind_phys), intent(in) :: nthresh real(kind=kind_phys), intent(in) :: ca_deep(:) real(kind=kind_phys), intent(in) :: sigmain(:,:),qmicro(:,:), & & tmf(:,:,:),q(:,:), prevsq(:,:) + real(kind=kind_phys), dimension (:), intent(in) :: maxMF real(kind=kind_phys), intent(out) :: rainevap(:) real(kind=kind_phys), intent(out) :: sigmaout(:,:) logical, intent(in) :: do_ca,ca_closure,ca_entr,ca_trigger @@ -347,6 +348,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & ! do i=1,im cnvflg(i) = .true. + if(do_mynnedmf.and.(maxMF(i).gt.0.))cnvflg(i)=.false. sfcpbl(i) = sfclfac * hpbl(i) rn(i)=0. mbdt(i)=10. diff --git a/physics/samfdeepcnv.meta b/physics/samfdeepcnv.meta index bed4d655d..86c713a06 100644 --- a/physics/samfdeepcnv.meta +++ b/physics/samfdeepcnv.meta @@ -450,6 +450,21 @@ type = real kind = kind_phys intent = out +[maxMF] + standard_name = maximum_mass_flux + long_name = maximum mass flux within a column + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[do_mynnedmf] + standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme + long_name = flag to activate MYNN-EDMF + units = flag + dimensions = () + type = logical + intent = in [qlcn] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water From b314eabab45297076deaad068e5d30f1fa6eab68 Mon Sep 17 00:00:00 2001 From: Xiaqiong Zhou Date: Tue, 24 Oct 2023 13:30:32 +0000 Subject: [PATCH 2/2] Fix the undefined dimension issue for maxmf in tests with GNU debug --- physics/samfdeepcnv.f | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/physics/samfdeepcnv.f b/physics/samfdeepcnv.f index 94a4cd148..7bf9cd2f5 100644 --- a/physics/samfdeepcnv.f +++ b/physics/samfdeepcnv.f @@ -348,7 +348,9 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & ! do i=1,im cnvflg(i) = .true. - if(do_mynnedmf.and.(maxMF(i).gt.0.))cnvflg(i)=.false. + if(do_mynnedmf) then + if(maxMF(i).gt.0.)cnvflg(i)=.false. + endif sfcpbl(i) = sfclfac * hpbl(i) rn(i)=0. mbdt(i)=10.