Skip to content

Commit 427c77b

Browse files
authored
Merge pull request NCAR#73 from haiqinli/ufs/dev-c3
Community Convective Cloud (C3) scheme
2 parents 90c7089 + a6e9eb9 commit 427c77b

19 files changed

+619
-596
lines changed

physics/GFS_rrtmg_pre.F90

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module GFS_rrtmg_pre
1818
!!
1919
!>\section rrtmg_pre_gen General Algorithm
2020
subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
21-
ltp, imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_unified, me, ncnd, ntrac, &
21+
ltp, imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, me, ncnd, ntrac, &
2222
num_p3d, npdf3d, &
2323
ncnvcld3d,ntqv, ntcw,ntiw, ntlnc, ntinc, ntrnc, ntsnc, ntccn, top_at_1,&
2424
ntrw, ntsw, ntgl, nthl, ntwa, ntoz, ntsmoke, ntdust, ntcoarsepm, &
@@ -44,7 +44,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
4444
gasvmr_o2, gasvmr_co, gasvmr_cfc11, gasvmr_cfc12, gasvmr_cfc22, &
4545
gasvmr_ccl4, gasvmr_cfc113, aerodp,ext550, clouds6, clouds7, clouds8, &
4646
clouds9, cldsa, cldfra, cldfra2d, lwp_ex,iwp_ex, lwp_fc,iwp_fc, &
47-
faersw1, faersw2, faersw3, faerlw1, faerlw2, faerlw3, alpha, &
47+
faersw1, faersw2, faersw3, faerlw1, faerlw2, faerlw3, alpha, rrfs_sd, &
4848
aero_dir_fdb, fdb_coef, spp_wts_rad, spp_rad, ico2, errmsg, errflg)
4949

5050
use machine, only: kind_phys
@@ -84,7 +84,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
8484

8585
integer, intent(in) :: im, levs, lm, lmk, lmp, ltp, &
8686
n_var_lndp, imfdeepcnv, &
87-
imfdeepcnv_gf, imfdeepcnv_unified, &
87+
imfdeepcnv_gf, imfdeepcnv_c3, &
8888
me, ncnd, ntrac, &
8989
num_p3d, npdf3d, ncnvcld3d, ntqv, &
9090
ntcw, ntiw, ntlnc, ntinc, &
@@ -126,7 +126,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
126126
uni_cld, effr_in, do_mynnedmf, &
127127
lmfshal, lmfdeep2, pert_clds, lcrick,&
128128
lcnorm, top_at_1, lextop, mraerosol
129-
logical, intent(in) :: aero_dir_fdb
129+
logical, intent(in) :: rrfs_sd, aero_dir_fdb
130130

131131
logical, intent(in) :: nssl_ccn_on, nssl_invertccn
132132
integer, intent(in) :: spp_rad
@@ -640,7 +640,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
640640
endif
641641

642642
!>--- add smoke and dust ---
643-
if (aero_dir_fdb) then
643+
if (rrfs_sd .and. aero_dir_fdb) then
644644
do k=1,lmk
645645
do i=1,im
646646
aer_nm(i,k,1 )=aer_nm(i,k,1 )+ qgrs(i,k,ntdust)*fdb_coef(1)*1.e-9 ! dust bin1
@@ -819,7 +819,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,&
819819
enddo
820820
endif
821821
elseif (imp_physics == imp_physics_gfdl) then ! GFDL MP
822-
if ((imfdeepcnv==imfdeepcnv_gf .or. imfdeepcnv==imfdeepcnv_unified) .and. kdt>1) then
822+
if ((imfdeepcnv==imfdeepcnv_gf .or. imfdeepcnv==imfdeepcnv_c3) .and. kdt>1) then
823823
do k=1,lm
824824
k1 = k + kd
825825
do i=1,im

physics/GFS_rrtmg_pre.meta

+10-3
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@
7979
dimensions = ()
8080
type = integer
8181
intent = in
82-
[imfdeepcnv_unified]
83-
standard_name = identifier_for_unified_deep_convection
84-
long_name = flag for Unified deep convection scheme
82+
[imfdeepcnv_c3]
83+
standard_name = identifier_for_c3_deep_convection
84+
long_name = flag for C3 deep convection scheme
8585
units = flag
8686
dimensions = ()
8787
type = integer
@@ -1466,6 +1466,13 @@
14661466
dimensions = ()
14671467
type = integer
14681468
intent = in
1469+
[rrfs_sd]
1470+
standard_name = do_smoke_coupling
1471+
long_name = flag controlling rrfs_sd collection (default off)
1472+
units = flag
1473+
dimensions = ()
1474+
type = logical
1475+
intent = in
14691476
[aero_dir_fdb]
14701477
standard_name = do_smoke_aerosol_direct_feedback
14711478
long_name = flag for smoke and dust radiation feedback

physics/GFS_suite_interstitial_3.F90

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ module GFS_suite_interstitial_3
1010
!!
1111
subroutine GFS_suite_interstitial_3_run (otsptflag, &
1212
im, levs, nn, cscnv,imfshalcnv, imfdeepcnv, &
13-
imfshalcnv_samf, imfdeepcnv_samf, imfdeepcnv_unified, &
14-
imfshalcnv_unified,progsigma, &
13+
imfshalcnv_samf, imfdeepcnv_samf, imfdeepcnv_c3, &
14+
imfshalcnv_c3,progsigma, &
1515
first_time_step, restart, &
1616
satmedmf, trans_trac, do_shoc, ltaerosol, ntrac, ntcw, &
1717
ntiw, ntclamt, ntrw, ntsw, ntrnc, ntsnc, ntgl, ntgnc, &
@@ -40,7 +40,7 @@ subroutine GFS_suite_interstitial_3_run (otsptflag, &
4040
logical, intent(in ) :: cscnv, satmedmf, trans_trac, do_shoc, ltaerosol, ras, progsigma
4141
logical, intent(in ) :: first_time_step, restart
4242
integer, intent(in ) :: imfshalcnv, imfdeepcnv, imfshalcnv_samf,imfdeepcnv_samf
43-
integer, intent(in ) :: imfshalcnv_unified,imfdeepcnv_unified
43+
integer, intent(in ) :: imfshalcnv_c3,imfdeepcnv_c3
4444
integer, intent(in) :: ntinc, ntlnc
4545
logical, intent(in) :: ldiag3d, qdiag3d
4646
integer, dimension(:,:), intent(in) :: dtidx
@@ -84,7 +84,7 @@ subroutine GFS_suite_interstitial_3_run (otsptflag, &
8484
! In case of using prognostic updraf area fraction, initialize area fraction here
8585
! since progsigma_calc is called from both deep and shallow schemes.
8686
if(((imfshalcnv == imfshalcnv_samf) .or. (imfdeepcnv == imfdeepcnv_samf) &
87-
.or. (imfshalcnv == imfshalcnv_unified) .or. (imfdeepcnv == imfdeepcnv_unified)) &
87+
.or. (imfshalcnv == imfshalcnv_c3) .or. (imfdeepcnv == imfdeepcnv_c3)) &
8888
.and. progsigma)then
8989
if(first_time_step .and. .not. restart)then
9090
do k=1,levs

physics/GFS_suite_interstitial_3.meta

+7-7
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@
5757
dimensions = ()
5858
type = integer
5959
intent = in
60-
[imfdeepcnv_unified]
61-
standard_name = identifier_for_unified_deep_convection
62-
long_name = flag for Unified deep convection scheme
60+
[imfdeepcnv_c3]
61+
standard_name = identifier_for_c3_deep_convection
62+
long_name = flag for C3 deep convection scheme
6363
units = flag
6464
dimensions = ()
6565
type = integer
@@ -78,9 +78,9 @@
7878
dimensions = ()
7979
type = integer
8080
intent = in
81-
[imfshalcnv_unified]
82-
standard_name = identifier_for_unified_shallow_convection
83-
long_name = flag for Unified shallow convection scheme
81+
[imfshalcnv_c3]
82+
standard_name = identifier_for_c3_shallow_convection
83+
long_name = flag for C3 shallow convection scheme
8484
units = flag
8585
dimensions = ()
8686
type = integer
@@ -542,4 +542,4 @@
542542
units = 1
543543
dimensions = ()
544544
type = integer
545-
intent = out
545+
intent = out

0 commit comments

Comments
 (0)