/[MITgcm]/MITgcm/verification/aim.5l_LatLon/code/phy_convmf.F
ViewVC logotype

Contents of /MITgcm/verification/aim.5l_LatLon/code/phy_convmf.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Mon Jun 18 17:39:59 2001 UTC (22 years, 11 months ago) by cnh
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +2 -2 lines
FILE REMOVED
Add to main branch of
  o CS atmos with AIM physics
  o Multi-threaded AIM physics for LatLon and CS tests
  o Tidied up monitor() output

1 C $Header: /u/gcmpack/models/MITgcmUV/verification/aim.5l_LatLon/code/phy_convmf.F,v 1.2 2001/05/29 14:01:49 adcroft Exp $
2 C $Name: $
3
4 cmolt SUBROUTINE CONVMF (PSA,SE,QA,QSAT,
5 SUBROUTINE CONVMF (PSA,TA,QA,QSAT,
6 * IDEPTH,CBMF,PRECNV,DFSE,DFQA)
7 C--
8 C-- SUBROUTINE CONVMF (PSA,SE,QA,QSAT,
9 C-- * IDEPTH,CBMF,PRECNV,DFSE,DFQA)
10 C--
11 C-- Purpose: Compute convective fluxes of dry static energy and moisture
12 C-- using a simplified mass-flux scheme
13 C-- Input: PSA = norm. surface pressure [p/p0] (2-dim)
14 C-- SE = dry static energy (3-dim)
15 C-- QA = specific humidity [g/kg] (3-dim)
16 C-- QSAT = saturation spec. hum. [g/kg] (3-dim)
17 C-- Output: IDEPTH = convection depth in layers (2-dim)
18 C-- CBMF = cloud-base mass flux (2-dim)
19 C-- PRECNV = convective precipitation [g/(m^2 s)] (2-dim)
20 C-- DFSE = net flux of d.s.en. into each atm. layer (3-dim)
21 C-- DFQA = net flux of sp.hum. into each atm. layer (3-dim)
22 C--
23
24 IMPLICIT rEAL*8 ( A-H,O-Z)
25
26 C Resolution parameters
27 C
28 #include "atparam.h"
29 #include "atparam1.h"
30 #include "Lev_def.h"
31 C
32 PARAMETER ( NLON=IX, NLAT=IL, NLEV=KX, NGP=NLON*NLAT )
33 C
34 C Physical constants + functions of sigma and latitude
35 C
36 #include "com_physcon.h"
37 C
38 C Convection constants
39 C
40 #include "com_cnvcon.h"
41 C
42 REAL PSA(NGP), SE(NGP,NLEV), QA(NGP,NLEV), QSAT(NGP,NLEV)
43 C
44 INTEGER IDEPTH(NGP)
45 REAL CBMF(NGP), PRECNV(NGP), DFSE(NGP,NLEV), DFQA(NGP,NLEV)
46 C
47 INTEGER ITOP(NGP)
48 REAL SM(NGP,NLEV), ENTR(NGP,2:NLEV-1)
49 REAL FM0(NGP), DENTR(NGP)
50 C
51 REAL Th(NGP,NLEV), Ta(NGP,NLEV)
52 REAL dThdp(NGP,NLEV), dThdpHat(NGP,NLEV)
53 REAL stab(NGP,NLEV)
54 REAL Prefw(NLEV), Prefs(NLEV)
55 DATA Prefs / 75., 250., 500., 775., 950./
56 DATA Prefw / 0., 150., 350., 650., 900./
57 REAL Pground
58 DATA pground /1000./
59 REAL FDMUS
60 C
61 C 1. Initialization of output and workspace arrays
62 C
63 DO J=1,NGP
64 FM0(J)=0.
65 IF ( NLEVxy(J) .NE. 0 ) THEN
66 FM0(J)=P0*DSIG(NLEVxy(J))/(GG*TRCNV*3600)
67 ENDIF
68 DENTR(J)=ENTMAX/(SIG(NLEV-1)-0.5)
69 ENDDO
70 C
71 DO K=1,NLEV
72 DO J=1,NGP
73 DFSE(J,K)=0.0
74 DFQA(J,K)=0.0
75 ENDDO
76 ENDDO
77 C
78 C
79 DO J=1,NGP
80 ITOP(J) =NLEVxy(J)
81 CBMF(J) =0.0
82 PRECNV(J)=0.0
83 ENDDO
84 C
85 C Saturation moist static energy
86 cmolt DO J=1,NGP
87 cmolt DO K=1,NLEVxy(J)
88 cmolt SM(J,K)=SE(J,K)+ALHC*QSAT(J,K)
89 cmolt ENDDO
90 cmolt ENDDO
91 C
92 C Entrainment profile (up to sigma = 0.5)
93 DO J=1,NGP
94 DO K=2,NLEVxy(J)-1
95 ENTR(J,K)=MAX(0.,SIG(K)-0.5)*DENTR(J)
96 ENDDO
97 ENDDO
98 C
99 C-- 2. Check of conditions for convection
100 C
101 C 2.1 Conditional instability
102 C
103 cmolt DO J=1,NGP
104 cmolt DO K=NLEVxy(J)-2,2,-1
105 cmolt SMB=SM(J,K)+WVI(K,2)*(SM(J,K+1)-SM(J,K))
106 cmolt IF (SM(J,NLEVxy(J)).GT.SMB) ITOP(J)=K
107 cmolt ENDDO
108 cmolt ENDDO
109 C
110 C New writing of the Conditional stability
111 C ----------------------------------------
112 DO J=1,NGP
113 DO k=1,NLEVxy(J)
114 Th(J,K)=Ta(J,K)*(Pground/Prefs(k))**(RD/CP)
115 ENDDO
116 ENDDO
117 C
118 DO J=1,NGP
119 dThdp(J,1)=0.
120 IF ( NLEVxy(J) .NE. 0 ) THEN
121 dThdp(J,NLEVxy(J))=0.
122 ENDIF
123 DO k=2,NLEVxy(J)
124 dThdp(J,K-1)=(Th(J,K-1)-Th(J,K))
125 & *((Prefw(k)/Pground)**(RD/CP))*CP
126 ENDDO
127 ENDDO
128 C
129 DO J=1,NGP
130 IF ( NLEVxy(J) .NE. 0 ) THEN
131 dThdpHat(J,NLEVxy(J))=dThdp(J,NLEVxy(J))
132 ENDIF
133 ENDDO
134 C
135 DO J=1,NGP
136 DO k=NLEVxy(J)-1,2,-1
137 dThdpHat(J,K)=dThdpHat(J,K+1)+dThdp(J,k)
138 ENDDO
139 ENDDO
140 C
141 DO J=1,NGP
142 DO k=2,NLEVxy(J)-1
143 stab(J,K)=dThdpHat(J,K)+ALHC*(QSAT(J,K)-QSAT(J,NLEVxy(J)))
144 & -WVI(K,2)*(dThdp(J,K) +ALHC*(QSAT(J,K) -QSAT(J,K+1)) )
145 ENDDO
146 ENDDO
147 C
148 DO J=1,NGP
149 DO K=NLEVxy(J)-2,2,-1
150 if(stab(J,K).lt.0.) ITOP(J)=K
151 ENDDO
152 ENDDO
153 C
154 C 2.2 Humidity exceeding prescribed threshold
155 C
156 DO J=1,NGP
157 IF ( NLEVxy(J) .NE. 0 ) THEN
158 IF (QA(J,NLEVxy(J)).LT.RHBL*QSAT(J,NLEVxy(J)))
159 & ITOP(J)=NLEVxy(J)
160 ENDIF
161 IDEPTH(J)=NLEVxy(J)-ITOP(J)
162 ENDDO
163 C
164 C-- 3. Convection over selected grid-points
165 C
166 DO 300 J=1,NGP
167 IF (ITOP(J).EQ.NLEVxy(J)) GO TO 300
168 C
169 C 3.1 Boundary layer (cloud base)
170 C
171 K =NLEVxy(J)
172 K1=K-1
173 C
174 C Dry static energy and moisture at upper boundary
175 cch SB=SE(J,K1)+WVI(K1,2)*(SE(J,K)-SE(J,K1))
176 QB=QA(J,K1)+WVI(K1,2)*(QA(J,K)-QA(J,K1))
177 cch QB=QA(J,K1)
178 C
179 C Cloud-base mass flux
180 DQSAT=MAX(QSAT(J,K)-QB,0.05*QSAT(J,K))
181 FMASS=FM0(J)*PSA(J)*(QA(J,K)-RHBL*QSAT(J,K))/DQSAT
182 CBMF(J)=FMASS
183 C
184 C Upward fluxes at upper boundary
185 cch FUS=FMASS*SE(J,K)
186 c_jmc FUQ=FMASS*QSAT(J,K)
187 FUQ=FMASS*MAX( QSAT(J,K), MIN(QB,QA(J,K)) )
188 C
189 C Downward fluxes at upper boundary
190 cch FDS=FMASS*SB
191 FDQ=FMASS*QB
192 C
193 C Net flux of dry static energy and moisture
194 cch DFSE(J,K)=FDS-FUS
195 DFSE(J,K)=FMASS*dThdp(J,K1)*(1-WVI(K1,2))
196 FDMUS=FMASS*dThdp(J,K1)*(1-WVI(K1,2))
197 DFQA(J,K)=FDQ-FUQ
198 C
199 C 3.2 Intermediate layers (entrainment)
200 C
201 DO K=NLEVxy(J)-1,ITOP(J)+1,-1
202 K1=K-1
203 C
204 C Fluxes at lower boundary
205 cch DFSE(J,K)=FUS-FDS
206 DFQA(J,K)=FUQ-FDQ
207 C
208 C Mass entrainment
209 ENMASS=ENTR(J,K)*PSA(J)*FMASS
210 FMASS=FMASS+ENMASS
211 C
212 C Upward fluxes at upper boundary
213 cch FUS=FUS+ENMASS*SE(J,K)
214 FUQ=FUQ+ENMASS*QA(J,K)
215 C
216 C Downward fluxes at upper boundary
217 cch SB=SE(J,K1)+WVI(K1,2)*(SE(J,K)-SE(J,K1))
218 QB=QA(J,K1)+WVI(K1,2)*(QA(J,K)-QA(J,K1))
219 cch QB=QA(J,K1)
220 cch FDS=FMASS*SB
221 FDQ=FMASS*QB
222 C
223 C Net flux of dry static energy and moisture
224 cch DFSE(J,K)=DFSE(J,K)+FDS-FUS
225 DFSE(J,K)=FMASS*(1-WVI(K1,2))*dThdp(J,K1)+
226 & (FMASS-ENMASS)*WVI(K,2)*dThdp(J,K)
227 FDMUS=FDMUS+ FMASS*(1-WVI(K1,2))*dThdp(J,K1)+
228 & (FMASS-ENMASS)*WVI(K,2)*dThdp(J,K)
229 DFQA(J,K)=DFQA(J,K)+FDQ-FUQ
230 C
231 ENDDO
232 c
233 C 3.3 Top layer (condensation and detrainment)
234 C
235 K=ITOP(J)
236 C
237 C Flux of convective precipitation
238 QSATB=QSAT(J,K)+WVI(K,2)*(QSAT(J,K+1)-QSAT(J,K))
239 PRECNV(J)=MAX(FUQ-FMASS*QSATB,0.0)
240 C
241 C Net flux of dry static energy and moisture
242 cch DFSE(J,K)=FUS-FDS+ALHC*PRECNV(J)
243 DFSE(J,K)=-FDMUS+ALHC*PRECNV(J)
244 DFQA(J,K)=FUQ-FDQ-PRECNV(J)
245 C
246 300 CONTINUE
247 C
248 RETURN
249 END

  ViewVC Help
Powered by ViewVC 1.1.22