From 7223b8c7c083202cc6ff533408392a9140a5a579 Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Fri, 13 Sep 2024 20:25:20 +0000 Subject: [PATCH 1/4] saSAS sigmab initialization modification --- physics/CONV/SAMF/samfdeepcnv.f | 9 +++++---- physics/CONV/SAMF/samfdeepcnv.meta | 7 +++++++ physics/CONV/progsigma_calc.f90 | 28 +++++++++++++++++----------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/physics/CONV/SAMF/samfdeepcnv.f b/physics/CONV/SAMF/samfdeepcnv.f index 5853254c0..00553b351 100644 --- a/physics/CONV/SAMF/samfdeepcnv.f +++ b/physics/CONV/SAMF/samfdeepcnv.f @@ -12,10 +12,11 @@ module samfdeepcnv contains subroutine samfdeepcnv_init(imfdeepcnv,imfdeepcnv_samf, & - & errmsg, errflg) + & sigmab_coldstart,errmsg, errflg) integer, intent(in) :: imfdeepcnv integer, intent(in) :: imfdeepcnv_samf + logical, intent(in) :: sigmab_coldstart character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg @@ -84,7 +85,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & & clam,c0s,c1,betal,betas,evef,pgcon,asolfac, & & do_ca, ca_closure, ca_entr, ca_trigger, nthresh,ca_deep, & & rainevap,sigmain,sigmaout,betadcu,betamcu,betascu, & - & maxMF, do_mynnedmf,errmsg,errflg) + & maxMF, do_mynnedmf,sigmab_coldstart,errmsg,errflg) ! use machine , only : kind_phys use funcphys , only : fpvs @@ -100,7 +101,7 @@ 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,do_mynnedmf + & progsigma,do_mynnedmf,sigmab_coldstart real(kind=kind_phys), intent(in) :: nthresh,betadcu,betamcu, & & betascu real(kind=kind_phys), intent(in) :: ca_deep(:) @@ -2915,7 +2916,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & if(progsigma)then !Initial computations, dynamic q-tendency - if(first_time_step .and. .not.restart)then + if(first_time_step .and. (.not.restart .or. sigmab_coldstart))then do k = 1,km do i = 1,im qadv(i,k)=0. diff --git a/physics/CONV/SAMF/samfdeepcnv.meta b/physics/CONV/SAMF/samfdeepcnv.meta index 2dbd4407c..f015de39e 100644 --- a/physics/CONV/SAMF/samfdeepcnv.meta +++ b/physics/CONV/SAMF/samfdeepcnv.meta @@ -488,6 +488,13 @@ dimensions = () type = logical intent = in +[sigmab_coldstart] + standard_name = flag_to_cold_start_for_sigmab_init + long_name = flag to cold start for sigmab initialization + 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 diff --git a/physics/CONV/progsigma_calc.f90 b/physics/CONV/progsigma_calc.f90 index 469df49f6..5ab471002 100644 --- a/physics/CONV/progsigma_calc.f90 +++ b/physics/CONV/progsigma_calc.f90 @@ -54,7 +54,7 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& real(kind=kind_phys) :: gcvalmx,epsilon,ZZ,cvg,mcon,buy2, & fdqb,dtdyn,dxlim,rmulacvg,tem, & - DEN,dp1,invdelt + DEN,dp1,invdelt,sigmind_new !Parameters gcvalmx = 0.1 @@ -63,6 +63,12 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& km1=km-1 invdelt = 1./delt + if (flag_init) then + sigmind_new=0.0 + else + sigmind_new=sigmind + end if + !Initialization 2D do k = 1,km do i = 1,im @@ -168,13 +174,13 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& enddo !sigmab - if(flag_init .and. .not. flag_restart)then - do i = 1,im - if(cnvflg(i))then - sigmab(i)=0.03 - endif - enddo - else +! if(flag_init .and. .not. flag_restart)then +! do i = 1,im +! if(cnvflg(i))then +! sigmab(i)=0.03 +! endif +! enddo +! else do i = 1,im if(cnvflg(i))then DEN=MIN(termC(i)+termB(i),1.E8) @@ -186,11 +192,11 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& sigmab(i)=(ZZ*(termA(i)+cvg))/(DEN+(1.0-ZZ)) if(sigmab(i)>0.)then sigmab(i)=MIN(sigmab(i),0.95) - sigmab(i)=MAX(sigmab(i),0.01) + sigmab(i)=MAX(sigmab(i),sigmind_new) endif endif!cnvflg enddo - endif +! endif do k=1,km do i=1,im @@ -219,7 +225,7 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& do i= 1, im if(cnvflg(i)) then sigmab(i)=sigmab(i)/betadcu - sigmab(i)=MAX(sigmind,sigmab(i)) + sigmab(i)=MAX(sigmind_new,sigmab(i)) endif enddo endif From 8302de4afc9b693974d26d98f6d15cbcda65e93a Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Mon, 16 Sep 2024 13:40:09 +0000 Subject: [PATCH 2/4] format fix --- physics/CONV/SAMF/samfdeepcnv.f | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/physics/CONV/SAMF/samfdeepcnv.f b/physics/CONV/SAMF/samfdeepcnv.f index 00553b351..beeafcd14 100644 --- a/physics/CONV/SAMF/samfdeepcnv.f +++ b/physics/CONV/SAMF/samfdeepcnv.f @@ -12,11 +12,10 @@ module samfdeepcnv contains subroutine samfdeepcnv_init(imfdeepcnv,imfdeepcnv_samf, & - & sigmab_coldstart,errmsg, errflg) + & errmsg, errflg) integer, intent(in) :: imfdeepcnv integer, intent(in) :: imfdeepcnv_samf - logical, intent(in) :: sigmab_coldstart character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg @@ -2916,7 +2915,8 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & if(progsigma)then !Initial computations, dynamic q-tendency - if(first_time_step .and. (.not.restart .or. sigmab_coldstart))then + if(first_time_step .and. (.not.restart + & .or. sigmab_coldstart))then do k = 1,km do i = 1,im qadv(i,k)=0. From a2f5f8337be64f941121424bd6ec14a90976f946 Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Thu, 19 Sep 2024 18:32:35 +0000 Subject: [PATCH 3/4] code cleanup --- physics/CONV/progsigma_calc.f90 | 7 ------- 1 file changed, 7 deletions(-) diff --git a/physics/CONV/progsigma_calc.f90 b/physics/CONV/progsigma_calc.f90 index 5ab471002..2b38ffe51 100644 --- a/physics/CONV/progsigma_calc.f90 +++ b/physics/CONV/progsigma_calc.f90 @@ -174,13 +174,6 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& enddo !sigmab -! if(flag_init .and. .not. flag_restart)then -! do i = 1,im -! if(cnvflg(i))then -! sigmab(i)=0.03 -! endif -! enddo -! else do i = 1,im if(cnvflg(i))then DEN=MIN(termC(i)+termB(i),1.E8) From b2d503256ababff56b0ba1b03bb7ee4e8c5ccf83 Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Tue, 24 Sep 2024 17:40:24 +0000 Subject: [PATCH 4/4] code clean up #2 --- physics/CONV/progsigma_calc.f90 | 1 - 1 file changed, 1 deletion(-) diff --git a/physics/CONV/progsigma_calc.f90 b/physics/CONV/progsigma_calc.f90 index 2b38ffe51..f1415e89f 100644 --- a/physics/CONV/progsigma_calc.f90 +++ b/physics/CONV/progsigma_calc.f90 @@ -189,7 +189,6 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,& endif endif!cnvflg enddo -! endif do k=1,km do i=1,im