From ac98ffb881c4f794cd7c8c115851c5d566b368bf Mon Sep 17 00:00:00 2001 From: Lisa Bengtsson Date: Fri, 28 Oct 2022 18:28:09 +0000 Subject: [PATCH 1/5] parameteric updates in prognostic convection scheme --- physics/progsigma_calc.f90 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/physics/progsigma_calc.f90 b/physics/progsigma_calc.f90 index f83514f27..c23b40c87 100644 --- a/physics/progsigma_calc.f90 +++ b/physics/progsigma_calc.f90 @@ -55,8 +55,8 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart, & rmulacvg=10. epsilon=1.E-11 km1=km-1 - betadcu = 2.0 - betascu = 3.6 + betadcu = 1.5 + betascu = 5.2 invdelt = 1./delt !Initialization 2D @@ -217,12 +217,14 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart, & do i= 1, im if(cnvflg(i)) then sigmab(i)=sigmab(i)/betascu + sigmab(i)=MAX(0.01,sigmab(i)) endif enddo else do i= 1, im if(cnvflg(i)) then sigmab(i)=sigmab(i)/betadcu + sigmab(i)=MAX(0.01,sigmab(i)) endif enddo endif From 78b5fa53aab7f140c78f1cede69fa3dcbae742bd Mon Sep 17 00:00:00 2001 From: Lisa Bengtsson Date: Mon, 31 Oct 2022 21:20:52 +0000 Subject: [PATCH 2/5] update TKE contribution from cu for progsigma in deep and shallow cu --- physics/samfdeepcnv.f | 20 ++++++++++++++------ physics/samfshalcnv.f | 10 +++++++--- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/physics/samfdeepcnv.f b/physics/samfdeepcnv.f index 2bef2d729..6630dd256 100644 --- a/physics/samfdeepcnv.f +++ b/physics/samfdeepcnv.f @@ -3519,9 +3519,13 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & if(k > kb(i) .and. k < ktop(i)) then tem = 0.5 * (eta(i,k-1) + eta(i,k)) * xmb(i) tem1 = pfld(i,k) * 100. / (rd * t1(i,k)) - sigmagfm(i) = max(sigmagfm(i), betaw) - ptem = tem / (sigmagfm(i) * tem1) - qtr(i,k,ntk)=qtr(i,k,ntk)+0.5*sigmagfm(i)*ptem*ptem + if(progsigma)then + tem2 = sigmab(i) + else + tem2 = max(sigmagfm(i), betaw) + endif + ptem = tem / (tem2 * tem1) + qtr(i,k,ntk)=qtr(i,k,ntk)+0.5*tem2*ptem*ptem endif endif enddo @@ -3533,9 +3537,13 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & if(k > 1 .and. k <= jmin(i)) then tem = 0.5*edto(i)*(etad(i,k-1)+etad(i,k))*xmb(i) tem1 = pfld(i,k) * 100. / (rd * t1(i,k)) - sigmagfm(i) = max(sigmagfm(i), betaw) - ptem = tem / (sigmagfm(i) * tem1) - qtr(i,k,ntk)=qtr(i,k,ntk)+0.5*sigmagfm(i)*ptem*ptem + if(progsigma)then + tem2 = sigmab(i) + else + tem2 = max(sigmagfm(i), betaw) + endif + ptem = tem / (tem2 * tem1) + qtr(i,k,ntk)=qtr(i,k,ntk)+0.5*tem2*ptem*ptem endif endif enddo diff --git a/physics/samfshalcnv.f b/physics/samfshalcnv.f index 2031c0ae9..31e8ca083 100644 --- a/physics/samfshalcnv.f +++ b/physics/samfshalcnv.f @@ -2449,9 +2449,13 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & if(k > kb(i) .and. k < ktop(i)) then tem = 0.5 * (eta(i,k-1) + eta(i,k)) * xmb(i) tem1 = pfld(i,k) * 100. / (rd * t1(i,k)) - sigmagfm(i) = max(sigmagfm(i), betaw) - ptem = tem / (sigmagfm(i) * tem1) - qtr(i,k,ntk)=qtr(i,k,ntk)+0.5*sigmagfm(i)*ptem*ptem + if(progsigma)then + tem2 = sigmab(i) + else + tem2 = max(sigmagfm(i), betaw) + endif + ptem = tem / (tem2 * tem1) + qtr(i,k,ntk)=qtr(i,k,ntk)+0.5*tem2*ptem*ptem endif endif enddo From cffe3445e83dcfa8723a1338791ec6f7309c77be Mon Sep 17 00:00:00 2001 From: Lisa Bengtsson Date: Thu, 17 Nov 2022 15:17:45 +0000 Subject: [PATCH 3/5] Further tuning and refinement of prognostic closure --- physics/progsigma_calc.f90 | 7 +++---- physics/samfdeepcnv.f | 4 +++- physics/samfshalcnv.f | 8 +++++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/physics/progsigma_calc.f90 b/physics/progsigma_calc.f90 index 98aab07f0..eaa1d3fda 100644 --- a/physics/progsigma_calc.f90 +++ b/physics/progsigma_calc.f90 @@ -53,8 +53,8 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart, & rmulacvg=10. epsilon=1.E-11 km1=km-1 - betadcu = 1.5 - betascu = 5.2 + betadcu = 2.0 + betascu = 8.0 invdelt = 1./delt !Initialization 2D @@ -210,12 +210,11 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart, & enddo !Reduce area fraction before coupling back to mass-flux computation. - !This tuning could be addressed in updraft velocity equation instead. if(flag_shallow)then do i= 1, im if(cnvflg(i)) then sigmab(i)=sigmab(i)/betascu - sigmab(i)=MAX(0.01,sigmab(i)) + sigmab(i)=MAX(0.03,sigmab(i)) endif enddo else diff --git a/physics/samfdeepcnv.f b/physics/samfdeepcnv.f index 7a88c5f1b..2a3c256a9 100644 --- a/physics/samfdeepcnv.f +++ b/physics/samfdeepcnv.f @@ -238,7 +238,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & ! parameter(cinacrmx=-120.,cinacrmn=-120.) parameter(cinacrmx=-120.,cinacrmn=-80.) parameter(bet1=1.875,cd1=.506,f1=2.0,gam1=.5) - parameter(betaw=.03,dxcrtuf=15.e3) + parameter(betaw=.03) ! ! local variables and arrays @@ -2468,8 +2468,10 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & ! if(progsigma)then dxcrtas=30.e3 + dxcrtuf=10.e3 else dxcrtas=8.e3 + dxcrtuf=15.e3 endif diff --git a/physics/samfshalcnv.f b/physics/samfshalcnv.f index 7fdd2efd8..178cb5246 100644 --- a/physics/samfshalcnv.f +++ b/physics/samfshalcnv.f @@ -188,7 +188,7 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & parameter(cinacrmx=-120.,shevf=2.0) parameter(dtmax=10800.,dtmin=600.) parameter(bet1=1.875,cd1=.506,f1=2.0,gam1=.5) - parameter(betaw=.03,dxcrt=15.e3,dxcrtc0=9.e3) + parameter(betaw=.03,dxcrtc0=9.e3) parameter(h1=0.33333333) ! progsigma parameter(dxcrtas=30.e3) @@ -258,6 +258,12 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & cinacrmn=-80. endif + if (progisigma) then + dxcrt=10.e3 + else + dxcrt=15.e3 + endif + c----------------------------------------------------------------------- if (.not.hwrf_samfshal) then !> ## Determine whether to perform aerosol transport From d062c01bb66963e1400d7eac3ed226c8fc88e1c8 Mon Sep 17 00:00:00 2001 From: Lisa Bengtsson Date: Thu, 17 Nov 2022 21:21:24 +0000 Subject: [PATCH 4/5] correct a typo --- physics/samfshalcnv.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physics/samfshalcnv.f b/physics/samfshalcnv.f index 178cb5246..645024536 100644 --- a/physics/samfshalcnv.f +++ b/physics/samfshalcnv.f @@ -258,7 +258,7 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & cinacrmn=-80. endif - if (progisigma) then + if (progsigma) then dxcrt=10.e3 else dxcrt=15.e3 From 0e3c0a6ca87b8f7afbfc2cdeec063f772a685f0b Mon Sep 17 00:00:00 2001 From: dustinswales Date: Mon, 28 Nov 2022 11:48:37 -0700 Subject: [PATCH 5/5] Bug fix for CI tests. --- .github/workflows/ci_fv3_ccpp_prebuild.yml | 6 ++---- .github/workflows/ci_scm_ccpp_prebuild.yml | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci_fv3_ccpp_prebuild.yml b/.github/workflows/ci_fv3_ccpp_prebuild.yml index a32b66b7b..a5c2f8092 100644 --- a/.github/workflows/ci_fv3_ccpp_prebuild.yml +++ b/.github/workflows/ci_fv3_ccpp_prebuild.yml @@ -3,12 +3,10 @@ name: CI test to run FV3 ccpp_prebuild step on: [push, pull_request] jobs: - build-linux: + ccpp-prebuild-FV3: # The type of runner that the job will run on - runs-on: ubuntu-latest - strategy: - max-parallel: 5 + runs-on: ubuntu-20.04 steps: - name: Checkout current ccpp-physics code diff --git a/.github/workflows/ci_scm_ccpp_prebuild.yml b/.github/workflows/ci_scm_ccpp_prebuild.yml index 64fac3cd1..7c9d2300a 100644 --- a/.github/workflows/ci_scm_ccpp_prebuild.yml +++ b/.github/workflows/ci_scm_ccpp_prebuild.yml @@ -3,12 +3,10 @@ name: CI test to run SCM ccpp_prebuild step on: [push, pull_request] jobs: - build-linux: + ccpp-prebuild-SCM: # The type of runner that the job will run on - runs-on: ubuntu-latest - strategy: - max-parallel: 5 + runs-on: ubuntu-20.04 steps: