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: diff --git a/physics/progsigma_calc.f90 b/physics/progsigma_calc.f90 index 0b37c30c9..eaa1d3fda 100644 --- a/physics/progsigma_calc.f90 +++ b/physics/progsigma_calc.f90 @@ -54,7 +54,7 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart, & epsilon=1.E-11 km1=km-1 betadcu = 2.0 - betascu = 3.6 + betascu = 8.0 invdelt = 1./delt !Initialization 2D @@ -210,17 +210,18 @@ 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.03,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 diff --git a/physics/samfdeepcnv.f b/physics/samfdeepcnv.f index 4ba887353..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 @@ -3519,9 +3521,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 +3539,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 1b648c109..645024536 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 (progsigma) then + dxcrt=10.e3 + else + dxcrt=15.e3 + endif + c----------------------------------------------------------------------- if (.not.hwrf_samfshal) then !> ## Determine whether to perform aerosol transport @@ -2449,9 +2455,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