@@ -30,21 +30,31 @@ module cu_c3_driver
30
30
! ! \htmlinclude cu_c3_driver_init.html
31
31
! !
32
32
subroutine cu_c3_driver_init (imfshalcnv , imfshalcnv_c3 , imfdeepcnv , &
33
- imfdeepcnv_c3 ,mpirank , mpiroot , errmsg , errflg )
33
+ imfdeepcnv_c3 ,progsigma , cnx , mpirank , mpiroot , &
34
+ errmsg , errflg )
34
35
35
36
implicit none
36
37
37
38
integer , intent (in ) :: imfshalcnv, imfshalcnv_c3
38
39
integer , intent (in ) :: imfdeepcnv, imfdeepcnv_c3
39
40
integer , intent (in ) :: mpirank
40
41
integer , intent (in ) :: mpiroot
42
+ integer , intent (in ) :: cnx
43
+ logical , intent (inout ) :: progsigma
41
44
character (len=* ), intent ( out ) :: errmsg
42
45
integer , intent ( out ) :: errflg
43
46
44
47
! initialize ccpp error handling variables
45
48
errmsg = ' '
46
49
errflg = 0
47
50
51
+ if (progsigma)then
52
+ if (cnx < 384 )then
53
+ progsigma= .false.
54
+ write (* ,* )' Forcing prognostic closure to .false. due to coarse resolution'
55
+ endif
56
+ endif
57
+
48
58
end subroutine cu_c3_driver_init
49
59
50
60
!
@@ -58,7 +68,7 @@ end subroutine cu_c3_driver_init
58
68
! !
59
69
! >\section gen_c3_driver Grell-Freitas Cumulus Scheme Driver General Algorithm
60
70
subroutine cu_c3_driver_run (ntracer ,garea ,im ,km ,dt ,flag_init ,flag_restart ,&
61
- do_ca ,progsigma ,cnx , cactiv ,cactiv_m ,g ,cp ,fv ,r_d ,xlv ,r_v ,forcet , &
71
+ do_ca ,progsigma ,cactiv ,cactiv_m ,g ,cp ,fv ,r_d ,xlv ,r_v ,forcet , &
62
72
forceqv_spechum ,phil ,delp ,raincv ,tmf ,qmicro ,sigmain , &
63
73
betascu ,betamcu ,betadcu ,qv_spechum ,t ,cld1d ,us ,vs ,t2di ,w , &
64
74
qv2di_spechum ,p2di ,psuri , &
@@ -93,14 +103,14 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,&
93
103
integer :: ishallow_g3 ! depend on imfshalcnv
94
104
!- ------------------------------------------------------------
95
105
integer :: its,ite, jts,jte, kts,kte
96
- integer , intent (in ) :: im,km,ntracer,cnx
106
+ integer , intent (in ) :: im,km,ntracer
97
107
integer , intent (in ) :: ichoice_in,ichoicem_in,ichoice_s_in
98
108
logical , intent (in ) :: flag_init, flag_restart, do_mynnedmf
99
109
logical , intent (in ) :: flag_for_scnv_generic_tend,flag_for_dcnv_generic_tend, &
100
110
do_ca
101
111
real (kind= kind_phys), intent (in ) :: g,cp,fv,r_d,xlv,r_v,betascu,betamcu,betadcu
102
112
logical , intent (in ) :: ldiag3d
103
- logical , intent (inout ) :: progsigma
113
+ logical , intent (in ) :: progsigma
104
114
real (kind= kind_phys), intent (inout ) :: dtend(:,:,:)
105
115
! $acc declare copy(dtend)
106
116
integer , intent (in ) :: dtidx(:,:), &
@@ -280,14 +290,6 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,&
280
290
! $acc end kernels
281
291
endif
282
292
283
-
284
- if (progsigma)then
285
- if (cnx < 384 )then
286
- progsigma= .false.
287
- write (* ,* )' Forcing prognostic closure to .false. due to coarse resolution'
288
- endif
289
- endif
290
-
291
293
if (ldiag3d) then
292
294
if (flag_for_dcnv_generic_tend) then
293
295
cliw_deep_idx= 0
0 commit comments