Skip to content

Commit

Permalink
deep conv: add timescale_grid_factor parameter
Browse files Browse the repository at this point in the history
Jongil suggested we remove the grid dependence of the convective
timescale. The time scale is currently proportional to

(1 + 1 / 75 km dx)

Adjust the scaling to be (1 + timescale_grid_factor * dx) so we can use
different grid scalings for coarse resolution.
  • Loading branch information
nbren12 committed May 28, 2021
1 parent 674dd11 commit aa4cf43
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
4 changes: 3 additions & 1 deletion FV3/gfsphysics/GFS_layer/GFS_physics_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3595,7 +3595,9 @@ subroutine GFS_physics_driver &
Model%c1_deep, Model%betal_deep, Model%betas_deep, &
Model%evfact_deep, Model%evfactl_deep, &
Model%pgcon_deep, Model%asolfac_deep,&
Model%cinpcrmx, Model%cinpcrmn, Model%cinacrmn)
Model%cinpcrmx, Model%cinpcrmn, Model%cinacrmn,&
Model%timescale_grid_factor,&
)
! if (lprnt) print *,' rain1=',rain1(ipr)
!elseif (Model%imfdeepcnv == 3) then
! if (Model%me==0) then
Expand Down
5 changes: 4 additions & 1 deletion FV3/gfsphysics/GFS_layer/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,7 @@ module GFS_typedefs
real(kind=kind_phys) :: cinpcrmx
real(kind=kind_phys) :: cinpcrmn
real(kind=kind_phys) :: cinacrmn
real(kind=kind_phys) :: timescale_grid_factor
real(kind=kind_phys) :: clam_deep !< c_e for deep convection (Han and Pan, 2011, eq(6))
real(kind=kind_phys) :: c0s_deep !< convective rain conversion parameter
real(kind=kind_phys) :: c1_deep !< conversion parameter of detrainment from liquid water into grid-scale cloud water
Expand Down Expand Up @@ -3131,6 +3132,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: cinpcrmx = 180.0
real(kind=kind_phys) :: cinpcrmn = 120.0
real(kind=kind_phys) :: cinacrmn = -120.0
real(kind=kind_phys) :: timescale_grid_factor = 1.33333e-05

!--- aerosol scavenging factors
character(len=20) :: fscav_aero(20) = 'default'
Expand Down Expand Up @@ -3230,7 +3232,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
fscav_aero, &
sst_perturbation, &
override_surface_radiative_fluxes, use_climatological_sst, &
cinpcrmx, cinpcrmn, cinacrmn
cinpcrmx, cinpcrmn, cinacrmn, timescale_grid_factor


!--- other parameters
Expand Down Expand Up @@ -3614,6 +3616,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%cinpcrmn = cinpcrmn
Model%cinpcrmx = cinpcrmx
Model%cinacrmn = cinacrmn
Model%timescale_grid_factor = timescale_grid_factor
Model%clam_deep = clam_deep
Model%c0s_deep = c0s_deep
Model%c1_deep = c1_deep
Expand Down
6 changes: 4 additions & 2 deletions FV3/gfsphysics/physics/samfdeepcnv.f
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ subroutine samfdeepcnv(im,ix,km,delt,itc,ntc,ntk,ntr,delp,
! & QLCN, QICN, w_upi, cf_upi, CNV_MFD, CNV_PRC3,
& CNV_DQLDT,CLCN,CNV_FICE,CNV_NDROP,CNV_NICE,mp_phys,
& clam,c0s,c1,betal,betas,evfact,evfactl,pgcon,asolfac,
& cinpcrmx, cinpcrmn, cinacrmn)
& cinpcrmx, cinpcrmn, cinacrmn, timescale_grid_factor)
!
use machine , only : kind_phys
use funcphys , only : fpvs
Expand All @@ -114,6 +114,8 @@ subroutine samfdeepcnv(im,ix,km,delt,itc,ntc,ntk,ntr,delp,
& rn(im), cnvw(ix,km), cnvc(ix,km),
& ud_mf(im,km),dd_mf(im,km), dt_mf(im,km)


real(kind=kind_phys) timescale_grid_factor
real(kind=kind_phys) clam, c0s, c1,
& betal, betas, asolfac,
& evfact, evfactl, pgcon, cinpcrmn, cinpcrmx
Expand Down Expand Up @@ -2273,7 +2275,7 @@ subroutine samfdeepcnv(im,ix,km,delt,itc,ntc,ntk,ntr,delp,
if(cnvflg(i)) then
tem = zi(i,ktcon1(i)) - zi(i,kbcon1(i))
dtconv(i) = tem / wc(i)
tfac = 1. + gdx(i) / 75000.
tfac = 1. + timescale_grid_factor * gdx(i)
dtconv(i) = tfac * dtconv(i)
dtconv(i) = max(dtconv(i),dtmin)
dtconv(i) = min(dtconv(i),dtmax)
Expand Down

0 comments on commit aa4cf43

Please sign in to comment.