Skip to content

Commit

Permalink
Merge pull request NCAR#18 from lisa-bengtsson/progc_update
Browse files Browse the repository at this point in the history
Update to parametric values in prognostic convection for GFSv17
  • Loading branch information
ChunxiZhang-NOAA authored Dec 5, 2022
2 parents 9d45cd1 + eefb777 commit befc336
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 21 deletions.
6 changes: 2 additions & 4 deletions .github/workflows/ci_fv3_ccpp_prebuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/ci_scm_ccpp_prebuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
5 changes: 3 additions & 2 deletions physics/progsigma_calc.f90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
24 changes: 17 additions & 7 deletions physics/samfdeepcnv.f
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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


Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
18 changes: 14 additions & 4 deletions physics/samfshalcnv.f
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit befc336

Please sign in to comment.