Skip to content

Commit 66048d8

Browse files
Modifying samfdeepcnv.f, samfdeepcnv.meta, samfshalcnv.f, samfshalcnv.meta so that convective adjustment time can be tunable, introducing two parameters cat_adj_deep and cat_adj_shal for this
1 parent 6b39199 commit 66048d8

4 files changed

Lines changed: 29 additions & 4 deletions

File tree

‎physics/CONV/SAMF/samfdeepcnv.f‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
8585
& clam,c0s,c1,betal,betas,evef,pgcon,asolfac,cscale, &
8686
& do_ca, ca_closure, ca_entr, ca_trigger, nthresh,ca_deep, &
8787
& rainevap,sigmain,sigmaout,omegain,omegaout,betadcu,betamcu, &
88-
& betascu,maxMF,do_mynnedmf,sigmab_coldstart,errmsg,errflg)
88+
& betascu,maxMF,do_mynnedmf,sigmab_coldstart,cat_adj_deep, &
89+
& errmsg,errflg)
8990

9091
!
9192
use machine , only : kind_phys
@@ -139,6 +140,9 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
139140
& evef, pgcon
140141
character(len=*), intent(out) :: errmsg
141142
integer, intent(out) :: errflg
143+
144+
! for HAFS
145+
real(kind_phys), intent(in) :: cat_adj_deep
142146
!
143147
!------local variables
144148
integer i, indx, jmn, k, kk, km1, n
@@ -2952,7 +2956,8 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
29522956
umean(i) = max(umean(i), 1.)
29532957
tauadv = gdx(i) / umean(i)
29542958
advfac(i) = tauadv / dtconv(i)
2955-
advfac(i) = min(advfac(i), 1.)
2959+
advfac(i) = min(cat_adj_deep*advfac(i), 1.)
2960+
!advfac(i) = min(0.85*advfac(i), 1.) !shin
29562961
endif
29572962
enddo
29582963

‎physics/CONV/SAMF/samfdeepcnv.meta‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,14 @@
762762
type = real
763763
kind = kind_phys
764764
intent = out
765+
[cat_adj_deep]
766+
standard_name = Adjustment_for_convective_advection_time_for_deep
767+
long_name = Adjustment for convective advection time for deep
768+
units = none
769+
dimensions = ()
770+
type = real
771+
kind = kind_phys
772+
intent = in
765773
[errmsg]
766774
standard_name = ccpp_error_message
767775
long_name = error message for error handling in CCPP

‎physics/CONV/SAMF/samfshalcnv.f‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
5959
& dot,ncloud,hpbl,ud_mf,dt_mf,cnvw,cnvc, &
6060
& clam,c0s,c1,evef,pgcon,asolfac,hwrf_samfshal, &
6161
& sigmain,sigmaout,omegain,omegaout,betadcu,betamcu,betascu, &
62-
& errmsg,errflg)
62+
& cat_adj_shal,errmsg,errflg)
6363
!
6464
use machine , only : kind_phys
6565
use funcphys , only : fpvs
@@ -100,6 +100,9 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
100100
& restart,progsigma,progomega
101101
character(len=*), intent(out) :: errmsg
102102
integer, intent(out) :: errflg
103+
104+
! for HAFS
105+
real(kind_phys), intent(in) :: cat_adj_shal
103106
!
104107
! local variables
105108
integer i,j,indx, k, kk, km1, n
@@ -1992,7 +1995,8 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
19921995
umean(i) = max(umean(i), 1.)
19931996
tauadv = gdx(i) / umean(i)
19941997
advfac(i) = tauadv / dtconv(i)
1995-
advfac(i) = min(advfac(i), 1.)
1998+
advfac(i) = min(cat_adj_shal*advfac(i), 1.)
1999+
!advfac(i) = min(0.85*advfac(i), 1.) !shin
19962000
endif
19972001
enddo
19982002
c

‎physics/CONV/SAMF/samfshalcnv.meta‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,14 @@
550550
dimensions = ()
551551
type = real
552552
intent = in
553+
[cat_adj_shal]
554+
standard_name = Adjustment_for_convective_advection_time_for_shallow
555+
long_name = Adjustment for convective advection time for shallow
556+
units = none
557+
dimensions = ()
558+
type = real
559+
kind = kind_phys
560+
intent = in
553561
[errmsg]
554562
standard_name = ccpp_error_message
555563
long_name = error message for error handling in CCPP

0 commit comments

Comments
 (0)