diff --git a/FV3/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/FV3/gfsphysics/GFS_layer/GFS_physics_driver.F90 index d53696059..ee2b79306 100644 --- a/FV3/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/FV3/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -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 diff --git a/FV3/gfsphysics/GFS_layer/GFS_typedefs.F90 b/FV3/gfsphysics/GFS_layer/GFS_typedefs.F90 index ef3bb3ac9..865534f35 100644 --- a/FV3/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/FV3/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -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 @@ -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' @@ -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 @@ -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 diff --git a/FV3/gfsphysics/physics/samfdeepcnv.f b/FV3/gfsphysics/physics/samfdeepcnv.f index 66ae72935..cacbf5b87 100644 --- a/FV3/gfsphysics/physics/samfdeepcnv.f +++ b/FV3/gfsphysics/physics/samfdeepcnv.f @@ -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 @@ -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 @@ -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)