/[MITgcm]/MITgcm_contrib/jscott/igsm/src/condse.F
ViewVC logotype

Contents of /MITgcm_contrib/jscott/igsm/src/condse.F

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


Revision 1.1 - (show annotations) (download)
Fri Aug 11 19:35:30 2006 UTC (18 years, 11 months ago) by jscott
Branch: MAIN
atm2d package

1
2 #include "ctrparam.h"
3
4 ! ==========================================================
5 !
6 ! CONDSE.F: THIS SUBROUTINE ADDS THE CONTRIBUTIONS TO
7 ! TEMPERATURE AND HUMIDITY CAUSED BY CONDENSATION.
8 !
9 ! ----------------------------------------------------------
10 !
11 ! Author of Chemistry Modules: Chien Wang
12 !
13 ! ----------------------------------------------------------
14 !
15 ! Revision History:
16 !
17 ! When Who What
18 ! ---- ---------- -------
19 ! 073100 Chien Wang repack based on CliChem3 and add cpp
20 ! 091901 Chien Wang make argument of dlog be in r8 format
21 ! 092001 Chien Wang add bc and oc
22 ! 100201 Chien Wang Eice =0.35
23 ! 062404 Chien Wang combine bc, oc code with Andrei's
24 ! ==========================================================
25
26 SUBROUTINE CONDSE(mndriver) 3001.
27 C**** 3002.
28 C**** THIS SUBROUTINE ADDS THE CONTRIBUTIONS TO TEMPERATURE AND 3003.
29 C**** HUMIDITY CAUSED BY CONDENSATION. 3004.
30 C**** 3005.
31
32 #include "BD2G04.COM" 3006.
33 C
34 #if ( defined OCEAN_3D || defined ML_2D)
35 #include "AGRID.COM"
36 C#include "HRD4OCN.COM"
37 #endif
38
39 #if ( defined CLM )
40 #include "CLM.COM"
41 #endif
42 c
43 #if ( defined CPL_CHEM )
44 !
45 #include "chem_para"
46 #include "chem_com"
47
48 dimension xcfc11 (n3d)
49 dimension xcfc12 (n3d)
50 dimension xxn2o (n3d)
51 dimension xo3 (n3d)
52 dimension xco (n3d)
53 dimension xzco2 (n3d)
54 dimension xxno (n3d)
55 dimension xxno2 (n3d)
56 dimension xxn2o5 (n3d)
57 dimension xhno3 (n3d)
58 dimension xch4 (n3d)
59 dimension xch2o (n3d)
60 dimension xso2 (n3d)
61 dimension xh2so4 (n3d)
62 dimension xh2o2 (n3d)
63
64 dimension xhfc134a (n3d)
65 dimension xpfc (n3d)
66 dimension xsf6 (n3d)
67
68 dimension xbc (n3d)
69 dimension xoc (n3d)
70
71 dimension prec_cnv (nlev)
72 dimension prec_str (nlev)
73 !
74 #endif
75
76 COMMON/SPEC2/KM,KINC,COEK,C3LAND(IO0,JM0),C3OICE(IO0,JM0) 3006.1
77 * ,C3LICE(IO0,JM0),WMGE(IO0,JM0) 3006.2
78 COMMON U,V,T,P,Q 3007.
79 COMMON/WORK1/CONV(IM0,JM0,LM0),PK(IM0,JM0,LM0),PREC(IM0,JM0)
80 & ,TPREC(IM0,JM0), 3008.
81 * UC(IM0,JM0,LM0),VC(IM0,JM0,LM0) 3009.
82 COMMON/WORK2/CLDSS(IM0,JM0,LM0),CLDMC(IM0,JM0,LM0),UCLD(72,9)
83 &,VCLD(72,9), 3010.
84 * ID(8),PL(36),PLE(37),PLK(36),TH(36),TL(36),QL(180), 3011.
85 * UL(8,36),UPL(72,36),VPL(72,36),UPUP(72),VPUP(72), 3012.
86 * UUP(8),RA(8),FMXA(36),DSE(36),TCLA(36),TCUP(36), 3013.
87 * X(72),SIGMA1(36),AJ8(36),AJ13(36),AJ50(36) ,CXCD(36) 3014.
88 * ,DFMX(36),FCD(36),AETA(36),XCD(36),TO(36),QO(36) 3015.
89 COMMON/EPARA/VTH(JM0,LM0),WTH(JM0,LM0),VU(JM0,LM0),VV(JM0,LM0),
90 & DQSDT(JM0,LM0) 3015.5
91 * ,DWV(JM0),PHIT(JM0,LM0),TPRIM2(JM0,LM0),WU(JM0,LM0),CKS,CKN 3015.51
92 * ,WQ(JM0,LM0),VQ(JM0,LM0) 3015.52
93 common/fixcld/cldssm(JM0,LM0,0:13),cldmcm(JM0,LM0,0:13),
94 & CLDSST(JM0,LM0),
95 & CLDMCT(JM0,LM0)
96 DIMENSION XA(1,JM0),XB(1,JM0),CSDATA(JM0,LM0),CMDATA(JM0,LM0) 3015.53
97 DIMENSION SHL(180),SHSAT(36),TSAV(36),SIGMA2(36),TX(1,JM0,LM0) 3015.54
98 *,QSAV(LM0)
99 EQUIVALENCE (SHL(1),QL(1)) 3015.55
100 c DATA CSDATA/ 3015.56
101 c * 24.2,20.9,49.2,41.5,42.2,52.3,54.4,52.3,44.6,30.7,26.6,24.6, 3015.57
102 c * 24.4,26.4,26.0,29.4,35.2,46.3,45.7,36.3,25.4,32.6,38.3,22.3, 3015.58
103 c * 10.2,11.1,32.8,11.2,14.6,24.0,12.1,.1,4*0., 3015.59
104 c * 5*0.,11.9,37.0,34.2,23.3,19.7,21.2,16.5, 3015.6
105 c * 9.5,10.0,25.3,.1,8*0., 3015.61
106 c * 9*0.,.2,13.7,14.7, 3015.62
107 c * 9.2,9.5,31.5,.7,8*0., 3015.63
108 c * 7*0.,.2,.6,.1,19.6,12.3, 3015.64
109 c * 22.8,39.0,53.0,4.9,7.8,29.4,16.8,5*0., 3015.65
110 c * 5*0.,4.3,36.4,37.6,17.3,17.1,46.7,29.4, 3015.66
111 c * 13.4,18.7,20.7,15.8,25.4,27.9,25.9,3.1,2.1,2.5,1.7,.4, 3015.67
112 c * .8,3.1,3.2,3.6,3.6,11.8,29.5,29.7,25.0,18.3,15.7,16.2, 3015.68
113 c * 9.9,15.3,20.2,20.3,20.8,19.8,12.7,8.3,12.4,22.8,23.8,19.1, 3015.69
114 c * 22.2,26.9,26.5,20.7,15.3,17.2,18.9,19.7,21.4,19.7,12.5,10.2, 3015.7
115 c * 3.5,5.4,9.7,10.8,9.9,7.2,3.5,2.1,1.1,1.1,3.2,6.8, 3015.71
116 c * 8.3,7.2,5.2,5.7,7.4,8.6,8.2,9.9,11.5,9.2,4.6,4.4,24*0. 3015.72
117 c & /
118 c & ,242*0.
119 c * ,48*0./
120 c DATA CMDATA/ 3015.73
121 c * 12*0., 3015.74
122 c * 12*0., 3015.75
123 c * 3.0,2.6,2.5,4.2,13.7,11.2,6.7,4.3,6.5,8.8,6.4,5.1, 3015.76
124 c * 4.5,4.8,7.2,6.3,6.4,6.0,12.1,12.7,13.5,5.6,3.0,3.3, 3015.77
125 c * 2.8,1.9,2.5,2.4,5.5,3.9,7.0,4.1,5.3,8.0,6.1,5.0, 3015.78
126 c * 4.5,4.8,7.1,5.5,4.9,4.7,3.6,5.0,15.3,3.9,1.4,2.1, 3015.79
127 c * 4.5,3.2,5.1,14.0,20.8,12.6,9.8,3.6,4.0,7.1,5.9,4.7, 3015.8
128 c * 4.3,4.8,7.0,4.4,3.6,6.7,13.0,14.6,27.1,10.2,2.0,3.4, 3015.81
129 c * 4.7,4.3,8.7,20.1,23.2,24.4,16.4,3.6,4.0,7.1,5.9,4.7, 3015.82
130 c * 4.3,4.8,7.0,4.4,3.6,9.3,29.5,19.7,39.4,17.6,3.4,4.8, 3015.83
131 c * 0.,0.,0.,6.9,18.5,23.8,15.7,3.9,4.0,7.2,5.9,4.7, 3015.84
132 c * 4.3,4.8,7.0,4.4,3.5,11.2,24.7,19.0,18.5,0.,0.,0., 3015.85
133 c * 7*0.,.1,1.1,6.3,5.5,4.3, 3015.86
134 c * 4.0,4.9,7.1,2.2,.5,7*0.,48*0. 3015.87
135 c & /
136 c & ,242*0.,48*0./
137 c * ,48*0./
138 common/COMCLD/READGHG,PCLOUD
139 integer PCLOUD
140 DIMENSION DSG0(36) 3016.
141 LOGICAL POLE,SKIPDI,SKIPIF,HPRNT,CONDL 3017.
142 & ,INIRINST,BARINST,PRNT
143 common/conprn/HPRNT,JPR,LPR
144 DATA QUP,DSIGUP,CLH/3*0./ 3018.
145 DATA RVAP/461.5/ 3019.
146 DATA TF/273.16/,TI/233.16/,IFIRST/1/ 3020.
147 dimension RHKP(LM0,jm0),RHNEW(JM0)
148 QSAT(TM,PR)=.622*EXP(AXCONS+ELHX*BXCONS*(BYTF-1./TM))/PR 3021.
149 QSA1(TM,PR)=.622*EXP(AXQSAT-BXQSAT/TM)/PR 3021.5
150 ERFCPI(XX)=.5-XX*(.548-XX*XX*(.139-.0171*XX*XX)) 3022.
151
152 #if ( defined CPL_CHEM )
153 !
154 ! --- Formula for calculating the Henry's Law Constant
155 !
156 ehenry (AAA,BBB,TM) = AAA*exp(BBB*(1./TM - 0.0033557))
157
158 !
159 ! --- Formula for calculating ratio of aqueous to gaseous
160 ! R = Ha*R*T*L
161
162 ! 020196
163
164 raq2gas(ehenryx, TM, qqq) = max(0.0,
165 & 8.2e-5*ehenryx*TM*qqq)
166 !
167 #endif
168
169 C**** 3023.
170 C**** FDATA 2 LAND COVERAGE (1) 3024.
171 C**** 3025.
172 C**** ODATA 2 RATIO OF LAND ICE COVERAGE TO LAND COVERAGE (1) 3026.
173 C**** 3027.
174 C**** GDATA 11 AGE OF SNOW (DAYS) 3028.
175 C**** 3029.
176 C**** COMPUTE GLOBAL PARAMETERS 3030.
177 IDACC(1)=IDACC(1)+1 3031.
178 IF (IFIRST.NE.1) GO TO 50 3032.
179 SKIPDI=.TRUE. 3031.1
180 c SKIPDI=.FALSE.
181 SKIPIF=.TRUE. 3031.2
182 c SKIPIF=.FALSE.
183 INIRINST=.false.
184 INIRINST=.true.
185 BARINST=.false.
186 BARINST=.true.
187 JDIFTS=1
188 JDIFTN=JM
189 LMDIFT=3
190 c LMDIFT=LM
191 EDLET=1.
192 EDLEQ=1.
193 TWOPI=6.283185
194 c HPRNT=.FALSE.
195 print *,' convection before condensation'
196 print *,' PCLOUD=',PCLOUD
197 print *,' RHNEW is a function of latitude'
198 if(SKIPDI)then
199 print *,' without vert. diff. for T and Q '
200 else
201 print *,' vert. diff. for T and Q in',LMDIFT,' layers '
202 print *,' from ',LAT(JDIFTS)*360./TWOPI,' to ',
203 * LAT(JDIFTN)*360./TWOPI
204 print *,' EDLET=',EDLET,' EDLEQ=',EDLEQ
205 endif
206 if(SKIPIF)then
207 print *,' without vert. diff. for U and V'
208 else
209 print *,' vert. diff. for U and V in 3 layers '
210 endif
211 if(INIRINST)then
212 print *,' with correction for SYMMETRIC INSTABILITY'
213 else
214 print *,' without correction for SYMMETRIC INSTABILITY'
215 end if
216 if(BARINST)then
217 print *,' with correction for BAROTROPIC INSTABILITY'
218 else
219 print *,' without correction for BAROTROPIC INSTABILITY'
220 end if
221 IFIRST=0 3033.
222 NTRACE=0 3033.1
223 JDAY00=JDAY-1
224 DTCNDS=NCNDS*DT 3034.
225 RH0OLD=.80 3034.1
226 c RH0OLD=.65
227 RH0=0.9
228 RH45=0.8
229 RH0=0.925 ! 2359
230 RH45=0.875 ! 2359
231 print *,' RH0=',RH0,' RH45=',RH45
232 RHAV=0.5*(RH0+RH45)
233 DRH=0.5*(RH0-RH45)
234 do j = 1,jm0
235
236 rhrad = 3.14159*(-90.+4.*(j-1))/180.
237 RHNEW(j) = RHAV+DRH*cos(4.*rhrad)
238
239 do l=1,3 ! Low clouds
240 RHKP(l,j)=0.8*RHNEW(j) ! 2352
241 RHKP(l,j)=0.825*RHNEW(j) ! 2353
242 RHKP(l,j)=0.85*RHNEW(j) ! 2354
243 RHKP(l,j)=0.875*RHNEW(j) ! 2357
244 RHKP(l,j)=0.9*RHNEW(j) ! 2358
245 RHKP(l,j)=0.925*RHNEW(j) ! 2367
246 #if ( !defined CLM )
247 RHKP(l,j)=0.95*RHNEW(j) ! 2905.06
248 RHKP(l,j)=0.9375*RHNEW(j) ! 2906.06
249 #endif
250 enddo
251 do l=4,6 ! Middle clouds
252 ! do l=4,5 ! Middle clouds 2355
253 RHKP(l,j)=0.9*RHNEW(j) ! 2352
254 RHKP(l,j)=0.875*RHNEW(j) ! 2358
255 RHKP(l,j)=0.925*RHNEW(j) ! 2366
256 RHKP(l,j)=0.95*RHNEW(j) ! 2367
257 enddo
258 do l=7,9 ! High clouds
259 ! do l=6,9 ! High clouds 2355
260 RHKP(l,j)=0.9*RHNEW(j) ! 2352
261 RHKP(l,j)=0.925*RHNEW(j) ! 2353
262 RHKP(l,j)=0.95*RHNEW(j) ! 2354
263 RHKP(l,j)=0.975*RHNEW(j) ! 2357
264 RHKP(l,j)=0.985*RHNEW(j) ! 2358
265 #if ( !defined CLM )
266 RHKP(l,j)=0.99*RHNEW(j) ! 2905.06
267 RHKP(l,j)=0.995*RHNEW(j) ! 2906.06
268 #endif
269 enddo
270 do l=10,LM
271 RHKP(l,j)=1.1
272 enddo
273 enddo
274 print *, ' RHNEW=',RHNEW
275 print *, ' RHNEW for j=23,34,46'
276 print '3x,3f10.4',RHNEW(23),RHNEW(34),RHNEW(46)
277 print *, ' RHKP/RHNEW '
278 do l=lm,1,-1
279 print 'i3,2f10.4',l,SIG(L)*P(1,23)+PTOP,RHKP(l,23)/RHNEW(23)
280 enddo
281 CSCALE=.6 3034.3
282 IQ1=IM/4+1 3035.
283 IQ2=IM/2+1 3036.
284 SHA=RGAS/KAPA 3037.
285 BXCONS=.622/RGAS 3038.
286 AXCONS=DLOG(6.1071) 3039.
287 CLHE=LHE/SHA 3040.
288 BYTF=1./TF 3041.
289 DTPERD=DTCNDS/SDAY 3042.
290 AGESNX=1.-DTPERD/50. 3043.
291 C**** PARAMETERS USED FOR CONVECTION 3044.
292 print *,' RHMAX=',RHMAX
293 RVX=0. 3045.
294 BX=RHMAX/DTCNDS 3046.
295 IMBY2=1 3047.
296 NMAX=MIN(IMBY2,17) 3048.
297 NMIN=MIN(IQ1,7) 3049.
298 BYDELN=1./(NMAX+1-NMIN) 3050.
299 SL1=0. 3051.
300 SL4=0. 3052.
301 DO 10 N=NMIN,NMAX 3053.
302 ! ALOGN=DLOG(FLOAT(N)) 3054.
303 ALOGN=LOG(dble(N))
304 SL1=SL1+ALOGN 3055.
305 10 SL4=SL4+ALOGN*ALOGN 3056.
306 SL4=SL4-SL1*SL1*BYDELN 3057.
307 SL1=SL1*BYDELN 3058.
308 LMCMM1=LMCM-1 3059.
309 DSG0(1)=DSIG(1) 3060.
310 DO 40 L=1,LMM1 3061.
311 WT=1./(L+1) 3062.
312 40 DSG0(L+1)=(1.-WT)*DSG0(L)+WT*DSIG(L+1) 3063.
313 50 IF(DOPK.NE.1.) GO TO 58 3064.
314 C**** CALCULATE PK = P**KAPA 3065.
315 DO 55 J=1,JM 3066.
316 DO 55 I=1,IM 3067.
317 SP=P(I,J) 3068.
318 DO 55 L=1,LM 3069.
319 PK(I,J,L)=EXPBYK(SIG(L)*SP+PTOP) 3070.
320 55 TX(I,J,L)=T(I,J,L)*PK(I,J,L) 3070.1
321 DOPK=0. 3071.
322 58 CONTINUE 3072.
323 if(HPRNT)then
324 print *,' condse 1'
325 print *,' T(J,L)=',T(1,JPR,LPR),' Q(J,L)=',Q(1,JPR,LPR)
326 print *,' V(J,L)=',V(1,JPR,LPR),' V(J+1,L)=',V(1,JPR+1,LPR)
327 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
328 endif
329 C 3072.1
330 C DO INTERNAL FRICTION FIRST 3072.11
331 C 3072.12
332 IF (SKIPIF) GO TO 66 3072.13
333 FMU=2. 3072.14
334 FCOEF=GRAV*GRAV*FMU*DTCNDS/RGAS 3072.15
335 c DO 65 J=JDIF,JM-JDIF+2 3072.16
336 do 65 J=2,JM
337 I=IM 3072.17
338 DO 65 IPINC=1,IM 3072.18
339 SP=.25*(P(I,J)+P(IPINC,J)+P(I,J-1)+P(IPINC,J-1)) 3072.19
340 FCOEF1=FCOEF/(SP*SP) 3072.2
341 UDN=U(I,J,1) 3072.21
342 VDN=V(I,J,1) 3072.22
343 TDN=.25*(TX(I,J,1)+TX(IPINC,J,1)+TX(I,J-1,1)+TX(IPINC,J-1,1)) 3072.23
344 c DO 60 L=2,LM 3072.24
345 DO 60 L=2,3
346 LM1=L-1 3072.25
347 UTP=U(I,J,L) 3072.26
348 VUP=V(I,J,L) 3072.27
349 TUP=.25*(TX(I,J,L)+TX(IPINC,J,L)+TX(I,J-1,L)+TX(IPINC,J-1,L)) 3072.28
350 PEUV=SIGE(L)*SP+PTOP 3072.29
351 RHO=PEUV/(RGAS*.5*(TUP+TDN)) 3072.3
352 TEMP=FCOEF1*(UTP-UDN)*RHO*RHO*RGAS/DSIGO(LM1) 3072.31
353 U(I,J,L)=U(I,J,L)-TEMP/DSIG(L) 3072.32
354 U(I,J,LM1)=U(I,J,LM1)+TEMP/DSIG(LM1) 3072.33
355 TEMP=FCOEF1*(VUP-VDN)*RHO*RHO*RGAS/DSIGO(LM1) 3072.34
356 V(I,J,L)=V(I,J,L)-TEMP/DSIG(L) 3072.35
357 V(I,J,LM1)=V(I,J,LM1)+TEMP/DSIG(LM1) 3072.36
358 UDN=UTP 3072.37
359 VDN=VUP 3072.38
360 60 TDN=TUP 3072.39
361 65 I=IPINC 3072.4
362 66 CONTINUE 3072.41
363 if(HPRNT)then
364 print *,' condse 2'
365 print *,' J=',JPR,' L=',LPR
366 print *,' T(J,L)=',T(1,JPR,LPR),' Q(J,L)=',Q(1,JPR,LPR)
367 print *,' V(J,L)=',V(1,JPR,LPR),' V(J+1,L)=',V(1,JPR+1,LPR)
368 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
369 endif
370 C 3072.5
371 C PARA. SYMMETRIC INSTABILITY AND BAROTROPIC INSTABILITY 3072.51
372 C 3072.52
373 c JHALF=JM/2 3072.53
374 c JHAM1=JHALF-1 3072.54
375 c JHAP3=JHALF+3 3072.55
376 c JHAP2=JHALF+2 3072.56
377 JVHALF=JM/2+1
378 JBAND=4
379 if(JM.eq.46)JBAND=8
380 JIB=JVHALF-JBAND
381 JIE=JVHALF+JBAND-1
382 JBB=JIB
383 JBE=JIE+1
384 DO 168 NITER=1,3 3072.57
385 if(HPRNT)then
386 print *,' condse 2.1 NITER=',NITER
387 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
388 endif
389 if(INIRINST) then
390 c DO 69 J=JHAM1,JHAP2 3072.58
391 DO 69 J=JIB,JIE
392 FTEM=F(J)/DXYP(J) 3072.59
393 DO 69 L=1,LM 3072.6
394 DUDY=(U(1,J+1,L)*COSV(J+1)-U(1,J,L)*COSV(J))/DYP(J)/COSP(J) 3072.61
395 CRI=FTEM*(FTEM-DUDY) 3072.62
396 IF(CRI.GE.0.) GO TO 69 3072.63
397 if(HPRNT.and.(J.eq.JPR.or.J.eq.JPR-1))then
398 print *,' TAU=',TAU,' J=',J,' L=',L,' NITER=',NITER,' f=',FTEM
399 print *,' COSV(J)=',COSV(J),' COSV(J+1)=',COSV(J+1)
400 print *,' DYP(J)=',DYP(J),' COSP(J)=',COSP(J)
401 print *,' f-dudy=',FTEM-DUDY,' (f-dudy)/f',(FTEM-DUDY)/FTEM
402 print *,' U(J,L)=',U(1,J,L),' U(J+1,L)=',U(1,J+1,L)
403 endif
404 USUM=U(1,J+1,L)*COSV(J+1)+U(1,J,L)*COSV(J) 3072.64
405 U(1,J+1,L)=.5*(FTEM*COSP(J)*DYP(J)+USUM)/COSV(J+1) 3072.65
406 U(1,J,L)=(USUM-U(1,J+1,L)*COSV(J+1))/COSV(J) 3072.66
407 if(HPRNT.and.(J.eq.JPR.or.J.eq.JPR-1))then
408 print *,' USUM=',USUM
409 print *,' U(J,L)=',U(1,J,L),' U(J+1,L)=',U(1,J+1,L)
410 print *,' USUMN=',U(1,J+1,L)*COSV(J+1)+U(1,J,L)*COSV(J)
411 endif
412 69 CONTINUE 3072.67
413 end if ! INIRINST
414 if(BARINST) then
415 C BAROTROPIC INSTABILITY 3072.68
416 c DO 68 J=JHAM1,JHAP3 3072.69
417 DO 68 J=JBB,JBE
418 BETA=(F(J)/DXYP(J)-F(J-1)/DXYP(J-1))/DYV(J) 3072.7
419 DO 68 L=1,LM 3072.73
420 PSI=BETA-(U(1,J+1,L)*COSV(J+1)-U(1,J,L)*COSV(J))/ 3072.74
421 * (DYP(J)*DYP(J)*COSP(J))+(U(1,J,L)*COSV(J)- 3072.75
422 * U(1,J-1,L)*COSV(J-1))/(DYP(J-1)*DYP(J-1)*COSP(J-1)) 3072.76
423 IF(PSI.GE.0.) GO TO 68 3072.77
424 if(HPRNT.and.(J.eq.JPR.or.J.eq.JPR-1.or.J.eq.JPR+1))then
425 print *,' TAU=',TAU,' J=',J,' L=',L,'NITER=',NITER
426 print *,' BETA=',BETA,' PSI=',PSI,' PSI/BETA=',PSI/BETA
427 print *,' BETAP1=',BETAP1,' BETAM1=',BETAM1
428 print *,' U(J-1,L)=',U(1,J-1,L)
429 print *,' U(J,L)=',U(1,J,L),' U(J+1,L)=',U(1,J+1,L)
430 endif
431 USUM=U(1,J,L)*COSV(J)+U(1,J+1,L)*COSV(J+1)+U(1,J-1,L)*COSV(J-1) 3072.86
432 IF ( J.NE.JM/2+1)THEN
433 BJJ=1./COSP(J)/DYV(J)
434 BJM1=1./COSP(J-1)/DYV(J)
435 DJP1=COSV(J)*(BJJ+2.*BJM1)/(COSV(J+1)*(BJJ-BJM1))
436 CJP1=(BETA*DYV(J)-USUM*BJM1)/(COSV(J+1)*(BJJ-BJM1))
437 DJM1=COSV(J)*(BJM1+2.*BJJ)/(COSV(J-1)*(BJM1-BJJ))
438 CJM1=(BETA*DYV(J)-USUM*BJJ)/(COSV(J-1)*(BJM1-BJJ))
439 U(1,J,L)=(COSV(J+1)*DJP1*(U(1,J+1,L)-CJP1)+COSV(J)*U(1,J,L)+
440 * COSV(J-1)*DJM1*(U(1,J-1,L)-CJM1))/
441 * (COSV(J+1)*DJP1**2+COSV(J)+COSV(J-1)*DJM1**2)
442 U(1,J+1,L)=DJP1*U(1,J,L)+CJP1
443 U(1,J-1,L)=DJM1*U(1,J,L)+CJM1
444 ELSE
445 U(1,J,L)=(USUM-BETA*COSP(J)*DYV(J)**2)/(3.*COSV(J))
446 U(1,J+1,L)=1./COSV(J-1)*(USUM-COSV(J)*U(1,J,L)-
447 * COSV(J-1)*(U(1,J-1,L)-U(1,J+1,L)))/
448 * (1.+COSV(J+1)/COSV(J-1))
449 U(1,J-1,L)=(USUM-COSV(J)*U(1,J,L)-COSV(J+1)*U(1,J+1,L))/
450 * COSV(J-1)
451 ENDIF
452 if(HPRNT.and.(J.eq.JPR.or.J.eq.JPR-1.or.J.eq.JPR+1))then
453 print *,' TAU=',TAU,' J=',J,' L=',L,'NITER=',NITER
454 print *,' USUM=',USUM
455 print *,' COSV(J-1)=',COSV(J-1),' FUNM=',FUNM
456 print *,' COSP(J)=',COSP(J),' COSP(J-1)=',COSP(J-1)
457 print *,' DYV(J)=',DYV(J)
458 print *,' U(J-1,L)=',U(1,J-1,L)
459 print *,' U(J,L)=',U(1,J,L),' U(J+1,L)=',U(1,J+1,L)
460 print *,' USUMN=',U(1,J,L)*COSV(J)+U(1,J+1,L)*COSV(J+1)+
461 * U(1,J-1,L)*COSV(J-1)
462 endif
463 68 CONTINUE 3072.96
464 if(HPRNT)then
465 print *,' condse 2.2 NITER=',NITER
466 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
467 endif
468 end if ! BARINST
469 168 continue
470 if(HPRNT)then
471 print *,' condse 3'
472 print *,' T(J,L)=',T(1,JPR,LPR),' Q(J,L)=',Q(1,JPR,LPR)
473 print *,' V(J,L)=',V(1,JPR,LPR),' V(J+1,L)=',V(1,JPR+1,LPR)
474 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
475 endif
476 C**** SAVE UC AND VC, AND ZERO OUT CLDSS AND CLDMC 3073.
477 70 DO 75 L=1,LM 3074.
478 DO 75 J=1,JM 3075.
479 DO 75 I=1,IM 3076.
480 UC(I,J,L)=U(I,J,L) 3077.
481 VC(I,J,L)=V(I,J,L) 3078.
482 CLDSS(I,J,L)=0. 3079.
483 75 CLDMC(I,J,L)=0. 3080.
484 IHOUR=1.5+TOFDAY 3081.
485 C**** 3082.
486 C**** MAIN J LOOP 3083.
487 C**** 3084.
488 DO 810 J=1,JM 3085.
489 JHALF=JM/2 3085.5
490 COEKD=CKS 3085.6
491 IF(J.GT.JHALF) COEKD=CKN 3085.7
492 IF ((J-1)*(JM-J).NE.0) GO TO 90 3086.
493 C**** CONDITIONS AT THE POLES 3087.
494 POLE=.TRUE. 3088.
495 IMAX=1 3089.
496 IF(J.EQ.JM) GO TO 80 3090.
497 JP=2 3091.
498 JVPO=2 3092.
499 RAPO=2.*RAPVN(1) 3093.
500 RA(1)=RAPO
501 GO TO 160 3094.
502 80 JP=JMM1 3095.
503 JVPO=JM 3096.
504 RAPO=2.*RAPVS(JM) 3097.
505 RA(1)=RAPO
506 GO TO 160 3098.
507 C**** CONDITIONS AT NON-POLAR POINTS 3099.
508 90 POLE=.FALSE. 3100.
509 JP=J 3101.
510 IMAX=IM 3102.
511 DO 100 K=1,2 3103.
512 RA(K)=RAPVS(J) 3104.
513 100 RA(K+2)=RAPVN(J) 3105.
514 C**** STANDARD DEVIATION FOR TEMPERATURE 3106.
515 160 DO 150 L=1,LM 3107.
516 TVAR=0. 3108.
517 SUMT=0. 3109.
518 PKJ=0. 3110.
519 DO 110 I=1,IM 3111.
520 PKJ=PKJ+PK(I,JP,L) 3112.
521 110 SUMT=SUMT+T(I,JP,L) 3113.
522 IF(KM.EQ.1) GO TO 149 3113.5
523 DO 120 I=1,IM 3114.
524 TDEV=T(I,JP,L)-SUMT/FIM 3115.
525 X(I)=TDEV 3116.
526 120 TVAR=TVAR+TDEV*TDEV 3117.
527 TVAR=TVAR/FIM 3118.
528 c CALL FRTR(X) 3119.
529 SL2=0. 3120.
530 SL3=0. 3121.
531 DO 130 N=NMIN,NMAX 3122.
532 c ALOGA=DLOG(X(N)+1.E-20) 3123.
533 ALOGA=LOG(X(N)+1.E-20)
534 SL2=SL2+ALOGA 3124.
535 FN=N
536 130 SL3=SL3+ALOGA*LOG(FN)
537 c 130 SL3=SL3+ALOGA*DLOG(FLOAT(N)) 3125.
538 SLOPE=(SL1*SL2-SL3)/SL4 3126.
539 IF (SLOPE.LT.1.67) SLOPE=1.67 3127.
540 IF (SLOPE.GT.3.) SLOPE=3. 3128.
541 SUMXN=0. 3129.
542 DO 140 N=1,IMBY2 3130.
543 140 SUMXN=SUMXN+X(N) 3131.
544 SUMAMK=0. 3132.
545 DO 145 N=NMIN,NMAX 3133.
546 145 SUMAMK=SUMAMK+X(N)*(N**SLOPE) 3134.
547 SLOPM1=SLOPE-1. 3135.
548 XEPE=2.*SUMAMK*BYDELN/((SUMXN+1.E-20)*SLOPM1*(IQ2**SLOPM1)) 3136.
549 149 SIGMA1(L)=1.4142*SQRT(TPRIM2(JP,L))*PKJ/FIM 3137.
550 SIGMA2(L)=SIGMA1(L) 3137.1
551 ! SIGMA2(L)=2.*PKJ/FIM
552 150 CONTINUE 3138.
553 C**** 3139.
554 C**** MAIN I LOOP 3140.
555 C**** 3141.
556 IM1=IM 3142.
557 DO 700 I=1,IMAX 3143.
558 JR=J
559 C**** 3145.
560 C**** SET UP VERTICAL ARRAYS, OMITTING THE J AND I SUBSCRIPTS 3146.
561 C**** 3147.
562 PLAND=FDATA(I,J,2) 3148.
563 PWATER=1.-PLAND
564 POICE=ODATA(I,J,2)*(1.-PLAND) 3149.
565 POCEAN=(1.-PLAND)-POICE 3150.
566 if(POCEAN.LE.1.E-5)then
567 POCEAN=0.
568 POICE=PWATER
569 endif
570 ! 07/22/2005
571 if (pland.lt.1.0)then
572 PRLAND=prlnd2total(j,mndriver)
573 PROCEAN=(1.-pland*prlnd2total(j,mndriver))
574 & /(1.-pland)
575 else
576 PRLAND=1.0
577 PROCEAN=0.0
578 endif
579 !
580 C**** PRESSURES, AND PRESSURE TO THE KAPA 3151.
581 SP=P(I,J) 3152.
582 DO 170 L=1,LM 3153.
583 PL(L)=SIG(L)*SP+PTOP 3154.
584 PLK(L)=PK(I,J,L) 3155.
585 C**** TEMPERATURES 3156.
586 TH(L)=T(I,J,L) 3157.
587 TL(L)=TH(L)*PLK(L) 3158.
588 QL(L)=Q(I,J,L) 3158.1
589 TSAV(L)=TL(L)
590 QSAV(L)=QL(L)
591
592 #if ( defined CPL_CHEM )
593 !
594 xcfc11(l)=cfc11(i,j,l)
595 xcfc12(l)=cfc12(i,j,l)
596 xxn2o (l)=xn2o (i,j,l)
597 xo3 (l)=o3 (i,j,l)
598 xco (l)=co (i,j,l)
599 xzco2 (l)=zco2 (i,j,l)
600 xxno (l)=xno (i,j,l)
601 xxno2 (l)=xno2 (i,j,l)
602 xxn2o5(l)=xn2o5(i,j,l)
603 xhno3 (l)=hno3 (i,j,l)
604 xch4 (l)=ch4 (i,j,l)
605 xch2o (l)=ch2o (i,j,l)
606 xso2 (l)=so2 (i,j,l)
607 xh2so4(l)=h2so4(i,j,l)
608 c 062295
609 xh2o2 (l)=h2o2 (i,j,l)
610
611 ! === if hfc, pfc, and sf6 are included:
612 #ifdef INC_3GASES
613 ! === 032698
614 xhfc134a(l) = hfc134a(i,j,l)
615 xpfc (l) = pfc(i,j,l)
616 xsf6 (l) = sf6(i,j,l)
617 ! ===
618 #endif
619
620 xbc (l) = bcarbon(i,j,l)
621 xoc (l) = ocarbon(i,j,l)
622 !
623 #endif
624
625 170 CONTINUE
626 if(HPRNT)then
627 print *,' condse after 170 J=',J
628 print *,' SP=',SP
629 print *,(TH(L),L=1,LM)
630 print *,(QL(L),L=1,LM)
631 endif
632 C 3158.11
633 C DO VERTICAL HEAT AND MOISTURE DIFFUSION FIRST 3158.12
634 C 3158.13
635 IF (SKIPDI) GO TO 195 3158.14
636 IF(J.LT.JDIFTS.OR.J.GT.JDIFTN) GO TO 195
637 DO 190 LM1=2,LMDIFT 3158.15
638 L=LM1-1 3158.16
639 DTETA=(TH(LM1)-TH(L))*(PLK(LM1)+PLK(L))*.5 3158.17
640 DZUP=SP*DSIG(LM1)*RGAS*TL(LM1)/(PL(LM1)*GRAV) 3158.18
641 DZDN=SP*DSIG(L)*RGAS*TL(L)/(PL(L)*GRAV) 3158.19
642 c EDLE=2. 3158.2
643 TEMP=DTCNDS*(DSIG(LM1)+DSIG(L))/(DZUP+DZDN)**2. 3158.21
644 FLE=-2.*EDLET*DTETA*TEMP 3158.22
645 TL(LM1)=TL(LM1)+FLE/DSIG(LM1) 3158.23
646 TL(L)=TL(L)-FLE/DSIG(L) 3158.24
647 TH(LM1)=TL(LM1)/PLK(LM1) 3158.25
648 TH(L)=TL(L)/PLK(L) 3158.26
649 DSH=QL(LM1)-QL(L) 3158.27
650 ELE=-2.*EDLEQ*DSH*TEMP 3158.28
651 QL(LM1)=QL(LM1)+ELE/DSIG(LM1) 3158.29
652 QL(L)=QL(L)-ELE/DSIG(L) 3158.3
653
654 #if ( defined CPL_CHEM )
655 !
656 xxx = -2.0*temp
657 xxm1= xxx/dsig(LM1)
658 xxL = xxx/dsig(L)
659
660 ele = (xcfc11(lm1)-xcfc11(l))
661 xcfc11(lm1)=xcfc11(lm1)+ele*xxm1
662 xcfc11(l) =xcfc11(l) -ele*xxL
663
664 ele = (xcfc12(lm1)-xcfc12(l))
665 xcfc12(lm1)=xcfc12(lm1)+ele*xxm1
666 xcfc12(l) =xcfc12(l) -ele*xxL
667
668 ele = (xxn2o (lm1)-xxn2o (l))
669 xxn2o (lm1)=xxn2o (lm1)+ele*xxm1
670 xxn2o (l) =xxn2o (l) -ele*xxL
671
672 ele = (xo3 (lm1)-xo3 (l))
673 xo3 (lm1)=xo3 (lm1)+ele*xxm1
674 xo3 (l) =xo3 (l) -ele*xxL
675
676 ele = (xco (lm1)-xco (l))
677 xco (lm1)=xco (lm1)+ele*xxm1
678 xco (l) =xco (l) -ele*xxL
679
680 ele = (xzco2 (lm1)-xzco2 (l))
681 xzco2 (lm1)=xzco2 (lm1)+ele*xxm1
682 xzco2 (l) =xzco2 (l) -ele*xxL
683
684 ele = (xxno (lm1)-xxno (l))
685 xxno (lm1)=xxno (lm1)+ele*xxm1
686 xxno (l) =xxno (l) -ele*xxL
687
688 ele = (xxno2 (lm1)-xxno2 (l))
689 xxno2 (lm1)=xxno2 (lm1)+ele*xxm1
690 xxno2 (l) =xxno2 (l) -ele*xxL
691
692 ele = (xxn2o5(lm1)-xxn2o5(l))
693 xxn2o5(lm1)=xxn2o5(lm1)+ele*xxm1
694 xxn2o5(l) =xxn2o5(l) -ele*xxL
695
696 ele = (xhno3 (lm1)-xhno3 (l))
697 xhno3 (lm1)=xhno3 (lm1)+ele*xxm1
698 xhno3 (l) =xhno3 (l) -ele*xxL
699
700 ele = (xch4 (lm1)-xch4 (l))
701 xch4 (lm1)=xch4 (lm1)+ele*xxm1
702 xch4 (l) =xch4 (l) -ele*xxL
703
704 ele = (xch2o (lm1)-xch2o (l))
705 xch2o (lm1)=xch2o (lm1)+ele*xxm1
706 xch2o (l) =xch2o (l) -ele*xxL
707
708 ele = (xso2 (lm1)-xso2 (l))
709 xso2 (lm1)=xso2 (lm1)+ele*xxm1
710 xso2 (l) =xso2 (l) -ele*xxL
711
712 ele = (xh2so4(lm1)-xh2so4(l))
713 xh2so4(lm1)=xh2so4(lm1)+ele*xxm1
714 xh2so4(l) =xh2so4(l) -ele*xxL
715
716 ! === if hfc, pfc, and sf6 are included:
717 #ifdef INC_3GASES
718 ! === 032698
719 ele = (xhfc134a(lm1)-xhfc134a(l))
720 xhfc134a(lm1)=xhfc134a(lm1)+ele*xxm1
721 xhfc134a(l) =xhfc134a(l) -ele*xxL
722
723 ele = (xpfc(lm1)-xpfc(l))
724 xpfc(lm1)=xpfc(lm1)+ele*xxm1
725 xpfc(l) =xpfc(l) -ele*xxL
726
727 ele = (xsf6(lm1)-xsf6(l))
728 xsf6(lm1)=xsf6(lm1)+ele*xxm1
729 xsf6(l) =xsf6(l) -ele*xxL
730 ! ===
731 #endif
732
733 ele = (xbc(lm1)-xbc(l))
734 xbc(lm1)=xbc(lm1)+ele*xxm1
735 xbc(l) =xbc(l) -ele*xxL
736
737 ele = (xoc(lm1)-xoc(l))
738 xoc(lm1)=xoc(lm1)+ele*xxm1
739 xoc(l) =xoc(l) -ele*xxL
740
741 c 062295
742 c ele = (xh2o2(lm1)-xh2o2(l))
743 c xh2o2(lm1)=xh2o2(lm1)+ele*xxm1
744 c xh2o2(l) =xh2o2(l) -ele*xxL
745
746 !
747 #endif
748
749 190 CONTINUE
750 c DO 181 L=1,LM
751 c AJL(J,L,55)=AJL(J,L,55)+(TL(L)-TSAV(L))*SP
752 c AJL(J,L,56)=AJL(J,L,56)+(QL(L)-QSAV(L))*SP
753 c 181 CONTINUE
754 195 CONTINUE 3158.31
755 c CONDL=.true.
756 c 824 if(CONDL) go to 871
757 DO 180 L=1,LM 3158.32
758 TSAV(L) =TL(L) 3158.5
759 QSAV(L)=QL(L)
760 AJ13(L)=0. 3159.
761 AJ50(L)=0. 3160.
762 C**** MOISTURE (SPECIFIC HUMIDITY) 3161.
763 QL(L)=QL(L) 3162.
764 XCD(L)=0. 3163.
765 DFMX(L)=0. 3164.
766 TO(L)=TL(L) 3165.
767 QO(L)=QL(L) 3166.
768 CXCD(L)=0. 3167.
769 180 CONTINUE 3168.
770 C**** INDICES FOR WINDS 3169.
771 ID(1)=I+(J-1)*IM 3172.
772 ID(2)=ID(1)+IM*JM*LM 3173.
773 ID(3)=I+J*IM 3176.
774 ID(4)=ID(3)+IM*JM*LM 3177.
775 C**** DETERMINE LATENT HEAT OF EVAPORATION OR SUBLIMATION 3178.
776 TPREC(I,J)=TL(1)-TF 3179.
777 ELHX=LHE 3179.5
778 IF (TPREC(I,J ).LT.0.) ELHX=LHS 3179.51
779 CLH=ELHX/SHA 3179.52
780 BXQSAT=ELHX*BXCONS 3179.53
781 AXQSAT=AXCONS+BXQSAT/TF 3179.54
782 GAMFAC=CLH*BXQSAT 3179.55
783 C**** 3180.
784 C**** CONVECTION AND CLOUDS 3181.
785 C**** 3182.
786 HCNDNS=0. 3183.
787 CMC=0. 3184.
788 DEPTH=0. 3185.
789 C**** INITIALIZE CONVECTION PARAMETERS 3186.
790 QSURF=BLDATA(I,J,3) 3187.
791 DO 225 L=1,LSSM 3188.
792 AJ8(L)=0. 3189.
793 SHSAT(L)=QSA1(TL(L),PL(L)) 3189.5
794 FMXA(L)=0. 3190.
795 IF(POLE) GO TO 222 3191.
796 DO 220 K=1,4 3192.
797 220 UL(K,L)=UC(ID(K),1,L) 3193.
798 GO TO 225 3194.
799 222 DO 223 IPO=1,IM 3195.
800 UPL(IPO,L)=UC(IPO,JVPO,L) 3196.
801 223 VPL(IPO,L)=VC(IPO,JVPO,L) 3197.
802 225 CONTINUE 3198.
803 232 PRCPMC=0. 3199.
804 DO 235 L=1,LMCMM1 3201.
805 LCOND=L 3202.
806 IF (SHSAT(LCOND).LT.QSURF) GO TO 238 3203.
807 235 CONTINUE 3204.
808 238 CONTINUE
809 prnt=j.eq.35
810 prnt=.false.
811 DO 370 LB=LCOND,LMCMM1 3205.
812 DTCRIT=1.8
813 SUMTT=0. 3207.
814 SUMQT=0. 3208.
815 SUMFMX=0. 3209.
816 EXPTUP=0. 3210.
817 QTCOND=0. 3211.
818 FCL=0. 3212.
819
820 #if ( defined CPL_CHEM )
821 !
822 sumcfc11=0.0
823 sumcfc12=0.0
824 sumxn2o =0.0
825 sumo3 =0.0
826 sumco =0.0
827 sumzco2 =0.0
828 sumxno =0.0
829 sumxno2 =0.0
830 sumxn2o5=0.0
831 sumhno3 =0.0
832 sumch4 =0.0
833 sumch2o =0.0
834 sumso2 =0.0
835 sumh2so4=0.0
836
837 #ifdef INC_3GASES
838 ! === 032698
839 sumhfc134a = 0.0
840 sumpfc = 0.0
841 sumsf6 = 0.0
842 #endif
843
844 sumbc = 0.0
845 sumoc = 0.0
846
847 ! 062295
848 ! sumh2o2 =0.0
849 !
850 #endif
851
852 C**** DIFFERENCES IN STATIC ENERGY AND PRELIMINARY CLOUD TEMPERATURES 3213.
853 DSE(LB)=0. 3214.
854 DRYSTE=0. 3215.
855 PDNK=PLK(LB) 3216.
856 SIGT=SIGMA2(LB) 3217.
857 TCLA(LB)=0. 3218.
858 BYSIGT=1./(SIGT+1.E-10) 3219.
859 if(prnt)then
860 print *,' TAU=',TAU
861 print *,' LB=',LB,SIGT,BYSIGT
862 endif
863 DO 240 L=LB,LMCMM1 3220.
864 DPHI=(PHIT(J,L)-PHIT(J,LB))/GRAV 3221.
865 BYTEM=BYSIGT 3222.
866 C IF(DPHI.LT..5*(DWV(J)+DWV(J+1))*COEKD) BYTEM=1.E10 3223.
867 PUPK=PLK(L+1) 3224.
868 THEDGE=THBAR(TH(L+1),TH(L)) 3225.
869 DRYSTE=DRYSTE+(TH(L+1)-THEDGE)*PUPK+(THEDGE-TH(L))*PDNK 3226.
870 DSE(L+1)=(DRYSTE+CLH*(SHSAT(L+1)-SHL(LB)))*BYTEM 3227.
871 IF (DSE(L+1).LT.DSE(L)) DSE(L+1)=DSE(L) 3228.
872 ! if(prnt)then
873 ! print 'i4,3f10.4',l,TH(L+1),THEDGE,TH(L)
874 ! print 'i4,2f10.4',l,DSE(L+1),DRYSTE*BYTEM
875 ! endif
876 TCLA(L+1)=TCLA(L)-TH(L+1)*(PDNK-PUPK) 3229.
877 240 PDNK=PUPK 3230.
878 if(prnt)then
879 do l=LB,LMCM
880 print 'i4,3f10.4',l,SIG(l),TH(l)*PLK(L),DSE(L)
881 enddo
882 endif
883 L=LMCMM1+2 3231.
884 245 L=L-1 3232.
885 C**** COMPARE STATIC ENERGIES TO FIND CRITICAL TEMPERATURE DEVIATION 3233.
886 C**** AND RISING MASS (FMX) 3234.
887 TLOLD=TL(L) 3235.
888 SHLOLD=SHL(L) 3236.
889
890 #if ( defined CPL_CHEM )
891 !
892 cfc11old=xcfc11(l)
893 cfc11cld=xcfc11(lb)
894
895 cfc12old=xcfc12(l)
896 cfc12cld=xcfc12(lb)
897
898 xn2oold =xxn2o (l)
899 xn2ocld =xxn2o (lb)
900
901 o3old =xo3 (l)
902 o3cld =xo3 (lb)
903
904 coold =xco (l)
905 cocld =xco (lb)
906
907 zco2old =xzco2 (l)
908 zco2cld =xzco2 (lb)
909
910 xnoold =xxno (l)
911 xnocld =xxno (lb)
912
913 xno2old =xxno2 (l)
914 xno2cld =xxno2 (lb)
915
916 xn2o5old=xxn2o5(l)
917 xn2o5cld=xxn2o5(lb)
918
919 hno3old =xhno3 (l)
920 hno3cld =xhno3 (lb)
921
922 ch4old =xch4 (l)
923 ch4cld =xch4 (lb)
924
925 ch2oold =xch2o (l)
926 ch2ocld =xch2o (lb)
927
928 so2old =xso2 (l)
929 so2cld =xso2 (lb)
930
931 h2so4old=xh2so4(l)
932 h2so4cld=xh2so4(lb)
933
934 ! === if hfc, pfc, and sf6 are included:
935 #ifdef INC_3GASES
936 ! === 032698
937 hfc134aold=xhfc134a(l)
938 hfc134acld=xhfc134a(lb)
939
940 pfcold=xpfc(l)
941 pfccld=xpfc(lb)
942
943 sf6old=xsf6(l)
944 sf6cld=xsf6(lb)
945 ! ===
946 #endif
947
948 bcold =xbc(l)
949 bccld =xbc(lb)
950
951 ocold =xoc(l)
952 occld =xoc(lb)
953
954 c 062295
955 c h2o2old =xh2o2(l)
956 c h2o2cld =xh2o2(lb)
957
958 !
959 #endif
960
961 DIFFSE=DSE(L) 3237.
962 FMX=0. 3238.
963 QCOND=0. 3239.
964 DSIGDN=DSIG(L) 3240.
965 RM=DSIG(LB)/DSIGDN 3241.
966 BYRM=1./RM 3242.
967 CUTOFF=0. 3243.
968 IF (RM.GT.1.01) CUTOFF=1.5+BYRM*(1.096*BYRM-2.596) 3244.
969 C**** CUTOFF RESTRICTS MASS EXCHANGE TO 50% OF THE THINNER LAYER 3245.
970 IF (DIFFSE.LT.CUTOFF) DIFFSE=CUTOFF 3246.
971 if(prnt)then
972 print *,'L=',L,DSE(l),DTCRIT
973 endif
974 IF (DTCRIT.LE.DIFFSE+.005) GO TO 269 3247.
975 C FMX =.5-.5*ERF(DIFFSE)-SUMFMX 3248.
976 FMX=ERFCPI(DIFFSE)-SUMFMX 3249.
977 DTCRIT=DIFFSE 3250.
978 if(prnt)then
979 print *,'L=',l,' FMX=',FMX
980 endif
981 C**** DETERMINE CLOUD TEMPERATURE BEFORE CONDENSATION 3251.
982 EXPTDN=EXP(-DTCRIT*DTCRIT) 3252.
983 DSTEN=.2881*SIGT/FMX*(EXPTDN-EXPTUP) 3253.
984 QWT=0. 3254.
985 TWT=1.-QWT 3255.
986 DTCL=(TL(LB)-TLOLD)+ TCLA(L) + DSTEN*TWT 3256.
987 SUMTT=SUMTT+FMX*(TL(LB)+DSTEN*TWT) 3257.
988 EXPTUP=EXPTDN 3258.
989
990 #if ( defined CPL_CHEM )
991 !
992 ! --- Accumulated total amount of Tracers:
993 !
994 sumcfc11=sumcfc11+fmx*cfc11cld
995 sumcfc12=sumcfc12+fmx*cfc12cld
996 sumxn2o =sumxn2o +fmx*xn2ocld
997 sumo3 =sumo3 +fmx*o3cld
998 sumco =sumco +fmx*cocld
999 sumzco2 =sumzco2 +fmx*zco2cld
1000 sumxno =sumxno +fmx*xnocld
1001 sumxno2 =sumxno2 +fmx*xno2cld
1002 sumxn2o5=sumxn2o5+fmx*xn2o5cld
1003 sumhno3 =sumhno3 +fmx*hno3cld
1004 sumch4 =sumch4 +fmx*ch4cld
1005 sumch2o =sumch2o +fmx*ch2ocld
1006 sumso2 =sumso2 +fmx*so2cld
1007 sumh2so4=sumh2so4+fmx*h2so4cld
1008
1009 ! === if hfc, pfc, and sf6 are included:
1010 #ifdef INC_3GASES
1011 ! === 032698
1012 sumhfc134a = sumhfc134a + fmx*hfc134acld
1013 sumpfc = sumpfc + fmx*pfccld
1014 sumsf6 = sumsf6 + fmx*sf6cld
1015 ! ===
1016 #endif
1017
1018 sumbc =sumbc + fmx*bccld
1019 sumoc =sumoc + fmx*occld
1020
1021 c 062295
1022 c sumh2o2 =sumh2o2+fmx*h2o2cld
1023 c
1024 !
1025 #endif
1026
1027 C**** FIND CONDENSATION AND CLOUD TEMPERATURE 3259.
1028 QCLOUD=SHL(LB)+QWT*DSTEN/CLH 3260.
1029 SUMQT=SUMQT+FMX*QCLOUD 3261.
1030 TCL=TLOLD+DTCL 3262.
1031 IF (QCLOUD.LE.QSA1(TCL,PL(L))) GO TO 266 3263.
1032
1033 #if ( defined CPL_CHEM )
1034 !
1035 dqtotal = 0.0
1036 !
1037 #endif
1038
1039 DO 265 N=1,3 3264.
1040 QSATCL=QSA1(TCL,PL(L)) 3265.
1041 GAMA=GAMFAC*QSATCL/(TCL*TCL) 3266.
1042 DQCOND=(QCLOUD-QSATCL)/(1.+GAMA) 3267.
1043 TCL=TCL+CLH*DQCOND 3268.
1044
1045 #if ( defined CPL_CHEM )
1046 !
1047 ! --- 062195
1048 !
1049 dqtotal = dqtotal + dqcond
1050 !
1051 #endif
1052
1053 QCOND =QCOND +DQCOND 3269.
1054 265 QCLOUD=QCLOUD-DQCOND 3270.
1055
1056 #if ( defined CPL_CHEM )
1057
1058 ! === convective precipitation
1059 prec_cnv(l) = dqtotal
1060
1061 !
1062 ! --- 062195:
1063 ! Calculate scavenging of gases by convection
1064 ! -- assume pH is around 5.0
1065 !
1066 ! let n(v) & s(VI) disolved almost completely
1067 ! by using a large Henry's Law constant:
1068 !
1069 ! 020196:
1070
1071 h2so4cld= h2so4cld
1072 & /(1.0 + raq2gas(1.e10, tl(l), dqtotal) )
1073
1074 hno3cld = hno3cld
1075 & /(1.0 + raq2gas(1.e10, tl(l), dqtotal) )
1076
1077
1078 ehenryx = ehenry (6.3e3,6412.34,tl(l))
1079 ch2ocld = ch2ocld
1080 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1081
1082 ehenryx = ehenry (1.23e3,3120.00,tl(l))
1083 so2cld = so2cld
1084 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1085
1086 !
1087 ! === Note: This calculation is not counted!
1088 ! Calculate H2O2 also:
1089
1090 ehenryx = ehenry (7.45,6620.00,tl(l))
1091 xh2o2(l)= xh2o2(l)
1092 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1093
1094 !
1095 ! === For radicals apply direct reduction to gaseous phase
1096 ! since convective transport is not involved
1097 ! Calculate HO, 062895:
1098
1099 ehenryx = ehenry (25.0,5280.00,tl(l))
1100 ho(i,j,l)= ho(i,j,l)
1101 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1102
1103 ! Calculate HO2, 062895:
1104
1105 ehenryx = ehenry (1.0e4,6640.00,tl(l)) !2nd reaction = 4.0
1106 ho2(i,j,l)= ho2(i,j,l)
1107 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1108
1109 !
1110 #endif
1111
1112 DTCL=DTCL+CLH*QCOND 3271.
1113 FCL=FCL+FMX 3272.
1114 266 CONTINUE 3273.
1115 269 SNWFMX=SUMFMX+FMX 3274.
1116 AJ8(L-1)=AJ8(L-1)+SNWFMX*DSIG(LB) 3275.
1117 C**** REEVAPORATE WATER CONDENSED IN HIGHER LAYERS 3276.
1118 270 IF (SNWFMX.EQ.0.) GO TO 303 3277.
1119 QCONDR=0. 3278.
1120 IF (SUMFMX.EQ.0.) GO TO 280 3279.
1121 QREEV=QTCOND/SUMFMX 3280.
1122 TFALL=THUP*PLK(L) 3281.
1123 TDN=TLOLD-CLH*QREEV 3282.
1124 SHDN=SHLOLD+QREEV 3283.
1125 IF (SHDN.LE.QSA1(TDN,PL(L)))GO TO 280 3284.
1126 QCX=SHLOLD 3285.
1127 TCX=TLOLD 3286.
1128 QCONDR=QREEV 3287.
1129 QREEV=0. 3288.
1130 DO 275 N=1,3 3289.
1131 QSATCL=QSA1(TCX,PL(L)) 3290.
1132 GAMA=GAMFAC*QSATCL/(TCX*TCX) 3291.
1133 DQREEV=(QSATCL-QCX)/(GAMA+1.) 3292.
1134 TCX=TCX-CLH*DQREEV 3293.
1135 QREEV=QREEV+DQREEV 3294.
1136 QCX=QCX+DQREEV 3295.
1137 275 CONTINUE 3296.
1138 QCONDR=QCONDR-QREEV 3297.
1139 280 QTCOND=QCOND*FMX+QCONDR*SUMFMX 3298.
1140 C**** MIX T,Q,U,TC IN LAYER L 3299.
1141 SHDN=SHLOLD 3300.
1142 DSH=RM*(FMX*(QCLOUD-SHDN)+SUMFMX*(SHUP+QREEV -SHDN)) 3301.
1143 SHL(L)=SHDN+DSH 3302.
1144
1145 #if ( defined CPL_CHEM )
1146 !
1147 xrm1 = rm*fmx
1148 xrm2 = rm*sumfmx
1149
1150 xcfc11(l)=
1151 & xrm1*(cfc11cld-cfc11old)
1152 & +xrm2*(cfc11up -cfc11old)
1153 & +cfc11old
1154
1155 xcfc12(l)=
1156 & xrm1*(cfc12cld-cfc12old)
1157 & +xrm2*(cfc12up -cfc12old)
1158 & +cfc12old
1159
1160 xxn2o(l)=
1161 & xrm1*(xn2ocld-xn2oold)
1162 & +xrm2*(xn2oup -xn2oold)
1163 & +xn2oold
1164
1165 xo3(l)=
1166 & xrm1*(o3cld-o3old)
1167 & +xrm2*(o3up -o3old)
1168 & +o3old
1169
1170 xco(l)=
1171 & xrm1*(cocld-coold)
1172 & +xrm2*(coup -coold)
1173 & +coold
1174
1175 xzco2(l)=
1176 & xrm1*(zco2cld-zco2old)
1177 & +xrm2*(zco2up -zco2old)
1178 & +zco2old
1179
1180 xxno(l)=
1181 & xrm1*(xnocld-xnoold)
1182 & +xrm2*(xnoup -xnoold)
1183 & +xnoold
1184
1185 xxno2(l)=
1186 & xrm1*(xno2cld-xno2old)
1187 & +xrm2*(xno2up -xno2old)
1188 & +xno2old
1189
1190 xxn2o5(l)=
1191 & xrm1*(xn2o5cld-xn2o5old)
1192 & +xrm2*(xn2o5up -xn2o5old)
1193 & +xn2o5old
1194
1195 xhno3(l)=
1196 & xrm1*(hno3cld-hno3old)
1197 & +xrm2*(hno3up -hno3old)
1198 & +hno3old
1199
1200 xch4(l)=
1201 & xrm1*(ch4cld-ch4old)
1202 & +xrm2*(ch4up -ch4old)
1203 & +ch4old
1204
1205 xch2o(l)=
1206 & xrm1*(ch2ocld-ch2oold)
1207 & +xrm2*(ch2oup -ch2oold)
1208 & +ch2oold
1209
1210 xso2(l)=
1211 & xrm1*(so2cld-so2old)
1212 & +xrm2*(so2up -so2old)
1213 & +so2old
1214
1215 xh2so4(l)=
1216 & xrm1*(h2so4cld-h2so4old)
1217 & +xrm2*(h2so4up -h2so4old)
1218 & +h2so4old
1219
1220 ! === if hfc, pfc, and sf6 are included:
1221 #ifdef INC_3GASES
1222 ! === 032698:
1223 xhfc134a(l)=
1224 & xrm1*(hfc134acld-hfc134aold)
1225 & +xrm2*(hfc134aup -hfc134aold)
1226 & +hfc134aold
1227
1228 xpfc(l)=
1229 & xrm1*(pfccld-pfcold)
1230 & +xrm2*(pfcup -pfcold)
1231 & +pfcold
1232
1233 xsf6(l)=
1234 & xrm1*(sf6cld-sf6old)
1235 & +xrm2*(sf6up -sf6old)
1236 & +sf6old
1237 ! ===
1238 #endif
1239
1240 xbc(l)=
1241 & xrm1*(bccld-bcold)
1242 & +xrm2*(bcup -bcold)
1243 & +bcold
1244
1245 xoc(l)=
1246 & xrm1*(occld-ocold)
1247 & +xrm2*(ocup -ocold)
1248 & +ocold
1249
1250 c 062295
1251 c xh2o2(l)=
1252 c & xrm1*(h2o2cld-h2o2old)
1253 c & +xrm2*(h2o2up -h2o2old)
1254 c & +h2o2old
1255
1256 !
1257 #endif
1258
1259 THDN=TH(L) 3303.
1260 DTL=RM*(FMX*DTCL+SUMFMX*(TFALL-TLOLD-CLH*QREEV)) 3304.
1261 TL(L)=TLOLD+DTL 3305.
1262 TH(L)=TL(L)/PLK(L) 3306.
1263 SHSAT(L)=QSA1(TL(L),PL(L)) 3307.
1264 IF(POLE) GO TO 287 3308.
1265 DO 285 K=1,4 3309.
1266 UDN =UL(K,L) 3310.
1267 UL(K,L)=UL(K,L)+RM*RA(K)*(FMX*(UL(K,LB)-UDN)+SUMFMX*(UUP(K)-UDN)) 3311.
1268 285 UUP(K)=UDN 3312.
1269 GO TO 290 3313.
1270 287 CONTINUE
1271 DO 288 IPOLE=1,IM 3314.
1272 UPDN=UPL(IPOLE,L) 3315.
1273 VPDN=VPL(IPOLE,L) 3316.
1274 UPL(IPOLE,L)=UPL(IPOLE,L)+RM*RA(1)*(FMX*(UPL(IPOLE,LB)-UPDN)+ 3317.
1275 * SUMFMX*(UPUP(IPOLE)-UPDN)) 3318.
1276 VPL(IPOLE,L)=VPL(IPOLE,L)+RM*RA(1)*(FMX*(VPL(IPOLE,LB)-VPDN)+ 3319.
1277 * SUMFMX*(VPUP(IPOLE)-VPDN)) 3320.
1278 UPUP(IPOLE)=UPDN 3321.
1279 288 VPUP(IPOLE)=VPDN 3322.
1280 290 IF(NTRACE.EQ.0) GO TO 295 3323.
1281 DO 293 K=1,NTRACE 3324.
1282 TCDN=SHL(L+K*39) 3325.
1283 SHL(L+K*39)=TCDN+RM*(FMX*(SHL(LB+K*39)-TCDN)+SUMFMX* 3326.
1284 * (TCUP(K)-TCDN)) 3327.
1285 293 TCUP(K)=TCDN 3328.
1286 295 CONTINUE 3329.
1287 SUMFMX=SNWFMX 3330.
1288 FMXA(L)=FMXA(L)+FCL*DSIG(LB) 3331.
1289 CLDMC(I,J,L)=FMXA(L)*BX 3332.
1290 IF (CLDMC(I,J,L).LT.0.) CLDMC(I,J,L)=0.
1291 c IF (CLDMC(I,J,L).LT.0.005) CLDMC(I,J,L)=0.005
1292 IF (CLDMC(I,J,L).GT.1.) CLDMC(I,J,L)=1. 3333.
1293 #if ( defined HR_DATA )
1294 if(L.le.4)then
1295 cmcyzhr(L,J)=CLDMC(I,J,L)
1296 endif
1297 #endif
1298 THUP=THDN 3334.
1299 SHUP=SHDN 3335.
1300 DSIGUP=DSIGDN 3336.
1301
1302 #if ( defined CPL_CHEM )
1303 !
1304 cfc11up = cfc11old
1305 cfc12up = cfc12old
1306 xn2oup = xn2oold
1307 o3up = o3old
1308 coup = coold
1309 zco2up = zco2old
1310 xnoup = xnoold
1311 xno2up = xno2old
1312 xn2o5up = xn2o5old
1313 hno3up = hno3old
1314 ch4up = ch4old
1315 ch2oup = ch2oold
1316 so2up = so2old
1317 h2so4up = h2so4old
1318
1319 ! === if hfc, pfc, and sf6 are included:
1320 #ifdef INC_3GASES
1321 ! === 032698
1322 hfc134aup = hfc134aold
1323 pfcup = pfcold
1324 sf6up = sf6old
1325 ! ===
1326 #endif
1327
1328 bcup =bcold
1329 ocup =ocold
1330
1331 ! 062295
1332 ! h2o2up =h2o2old
1333 !
1334 #endif
1335
1336 303 IF (L.GT.LB+1) GO TO 245 3337.
1337 IF (L.EQ.LB) GO TO 355 3338.
1338 L=LB 3339.
1339 RM=1. 3340.
1340 FMX=0. 3341.
1341 FCL=0. 3342.
1342 DSIGDN=DSIG(LB) 3343.
1343 TLOLD = (TL(LB)-SUMTT)/(1.-SUMFMX) 3344.
1344 SHLOLD=(SHL(LB)-SUMQT)/(1.-SUMFMX) 3345.
1345
1346 #if ( defined CPL_CHEM )
1347 !
1348 xhaha = 1./(1.-sumfmx)
1349 cfc11old=(xcfc11(lb)-sumcfc11)*xhaha
1350 cfc12old=(xcfc12(lb)-sumcfc12)*xhaha
1351 xn2oold =(xxn2o(lb)-sumxn2o) *xhaha
1352 o3old =(xo3(lb)-sumo3) *xhaha
1353 coold =(xco(lb)-sumco) *xhaha
1354 zco2old =(xzco2(lb)-sumzco2) *xhaha
1355 xnoold =(xxno(lb)-sumxno) *xhaha
1356 xno2old =(xxno2(lb)-sumxno2) *xhaha
1357 xn2o5old=(xxn2o5(lb)-sumxn2o5)*xhaha
1358 hno3old =(xhno3(lb)-sumhno3) *xhaha
1359 ch4old =(xch4(lb)-sumch4) *xhaha
1360 ch2oold =(xch2o(lb)-sumch2o) *xhaha
1361 so2old =(xso2(lb)-sumso2) *xhaha
1362 h2so4old=(xh2so4(lb)-sumh2so4)*xhaha
1363
1364 ! === if hfc, pfc, and sf6 are included:
1365 #ifdef INC_3GASES
1366 ! === 032698
1367 hfc134aold = (xhfc134a(lb)-sumhfc134a)
1368 & *xhaha
1369 pfcold = (xpfc(lb)-sumpfc)
1370 & *xhaha
1371 sf6old = (xsf6(lb)-sumsf6)
1372 & *xhaha
1373 ! ===
1374 #endif
1375
1376 bcold =(xbc(lb)-sumbc) *xhaha
1377 ocold =(xoc(lb)-sumoc) *xhaha
1378
1379 c 062295
1380 c h2o2old =(xh2o2(lb)-sumh2o2) *xhaha
1381 c
1382 !
1383 #endif
1384
1385 GO TO 270 3346.
1386 355 CONTINUE 3347.
1387 PRCPMC=PRCPMC+QTCOND*DSIGDN*SP 3348.
1388 370 CONTINUE 3349.
1389 216 DO 215 L=1,LTM 3409.
1390 DTL=TL(L)-TSAV(L) 3410.
1391 HCNDNS=HCNDNS+DTL*DSIG(L) 3411.
1392 AJL(J,L,13)=AJL(J,L,13)+DTL*SP 3412.
1393 AJL(J,L,57)=AJL(J,L,57)+(QL(L)-QSAV(L))*SP
1394 IF(J.GE.11.AND.J.LE.13) AIL(I,L,6)=AIL(I,L,6)+DTL*SP*DXYP(J) 3414.
1395 AJL(J,L,8)=AJL(J,L,8)+AJ8(L)*SP 3415.
1396 IF (POLE) GO TO 205 3416.
1397 DO 200 K=1,4 3417.
1398 200 U(ID(K),1,L)=U(ID(K),1,L)+(UL(K,L)-UC(ID(K),1,L)) 3418.
1399 GO TO 215 3419.
1400 205 DO 210 IPO=1,IM 3420.
1401 U(IPO,JVPO,L)=U(IPO,JVPO,L)+(UPL(IPO,L)-UC(IPO,JVPO,L)) 3421.
1402 210 V(IPO,JVPO,L)=V(IPO,JVPO,L)+(VPL(IPO,L)-VC(IPO,JVPO,L)) 3422.
1403 215 CONTINUE 3423.
1404 if(HPRNT)then
1405 print *,' condse 4'
1406 print *,' T(J,L)=',T(1,JPR,LPR),' Q(J,L)=',Q(1,JPR,LPR)
1407 print *,' V(J,L)=',V(1,JPR,LPR),' V(J+1,L)=',V(1,JPR+1,LPR)
1408 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
1409 endif
1410 do 873 L=1,LM
1411 if(PCLOUD.eq.1)then
1412 CLDMC(I,J,L)=CMDATA(J,L)*.01 3471.2
1413 elseif(PCLOUD.eq.6)then
1414 CLDMC(I,J,L)=CLDMCT(J,L)
1415 endif
1416 873 continue
1417 c go to 872
1418 871 CONTINUE
1419 C**** 3424.
1420 C**** LARGE SCALE PRECIPITATION 3425.
1421 C**** 3426.
1422 PRCPSS=0. 3427.
1423 CSS=0. 3429.
1424 DQUP=0. 3430.
1425 ELHXUP=LHE 3431.
1426 DO 304 LX=1,LM 3432.
1427 L=LM+1-LX 3433.
1428 TOLD=TL(L) 3434.
1429 QOLD=QL(L) 3435.
1430 ELHX= LHE 3436.
1431 IF(TOLD.LT.TI) ELHX= LHS 3437.
1432 IF (ELHXUP.EQ.LHS.AND.TOLD.LT.TF) ELHX=LHS 3438.
1433 EX=DQUP*DSIGUP/DSIG(L) 3439.
1434 TNEW=TOLD-CLH*EX 3440.
1435 QNEW=QOLD+EX 3441.
1436 DQUP=0. 3442.
1437 QSATL=QSAT(TNEW,PL(L)) 3443.
1438 ELHXUP=LHE 3444.
1439 C**** DETERMINE THE CLOUD COVER 3445.
1440 CC** IF (QNEW.LE.1.E-10) GO TO 300 3446.
1441 RHLL=QNEW/QSATL 3446.1
1442 AJL(J,L,58)=AJL(J,L,58)+RHLL*SP
1443 c AJL(J,L,59)=AJL(J,L,59)+(RHLL*SP)**2
1444 IF (QNEW.LE.1.E-10) GO TO 300
1445 RH0=RHKP(L,j)
1446 if(HPRNT)then
1447 if(L.eq.2)then
1448 print *,' condse CLDSS TAU=',TAU
1449 print *,TNEW,PL(L),QSATL
1450 print *,' RHLL=',RHLL,' RH0=',RH0
1451 endif
1452 endif
1453 if(RHLL.gt.RH0)then
1454 CLDSS(I,J,L)=(RHLL-RH0)/(1.-RH0) ! 2353.05
1455 ! CLDSS(I,J,L)=((RHLL-RH0)/(1.-RH0) )**2
1456 else
1457 CLDSS(I,J,L)=0.
1458 endif
1459 if(PCLOUD.eq.5)then
1460 RH0=RH0OLD
1461 CLDSS(I,J,L)=CSCALE*(RHLL-RH0)/(1.-RH0) 3446.2
1462 IF(PL(L).LT.400.) CLDSS(I,J,L)=.4166667*CLDSS(I,J,L) 3446.21
1463 endif
1464 if(PCLOUD.eq.1)then
1465 CLDSS(I,J,L)=CSDATA(J,L)*.01 3471.1
1466 elseif(PCLOUD.eq.6)then
1467 CLDSS(I,J,L)=CLDSST(J,L)
1468 endif
1469 #if ( defined HR_DATA )
1470 if(L.le.4)then
1471 pyzhr(L,J)=PL(L)
1472 tyzhr(L,J)=TL(L)
1473 rhyzhr(L,J)=RHLL
1474 cssyzhr(L,J)=CLDSS(I,J,L)
1475 endif
1476 #endif
1477 IF(CLDSS(I,J,L).GT.1.) CLDSS(I,J,L)=1. 3446.3
1478 IF(CLDSS(I,J,L).LT.0.0) CLDSS(I,J,L)=0.0 3446.4
1479 c IF(CLDSS(I,J,L).LT.0.005) CLDSS(I,J,L)=0.005
1480 300 IF (QNEW.LT.RHNEW(j)*QSATL) GO TO 302 3455.
1481 ELHX=LHE 3456.
1482 IF (TOLD.LT.TF) ELHX=LHS 3457.
1483 C RHNEW=1. 3458.
1484 CLH=ELHX/SHA 3459.
1485 GAMFAC=CLH*BXCONS*ELHX 3460.
1486
1487 #if ( defined CPL_CHEM )
1488 !
1489 dqtotal = 0.0
1490 !
1491 #endif
1492
1493 DO 301 N=1,3 3461.
1494 GAMA=GAMFAC*QSATL/(TNEW*TNEW) 3462.
1495 DQ1=(QNEW-QSATL*RHNEW(j))/(1.+GAMA*RHNEW(j)) 3463.
1496
1497 #if ( defined CPL_CHEM )
1498 !
1499 dqtotal = dqtotal + dq1
1500 !
1501 #endif
1502
1503 DQUP=DQUP+DQ1 3464.
1504 TNEW=TNEW+CLH*DQ1 3465.
1505 QNEW=QNEW-DQ1 3466.
1506 QSATL=QSAT(TNEW,PL(L)) 3467.
1507 301 CONTINUE
1508
1509 #if ( defined CPL_CHEM )
1510
1511 ! === stratform precipitation:
1512 prec_str(l) = dqtotal
1513
1514 !
1515 ! --- 062195:
1516 ! Calculate scavenging of gases by large-scale
1517 ! precipitation
1518 ! -- assume pH is around 5.0
1519 !
1520 ! let n(v) & s(VI) disolved almost completely
1521 ! by using a large Henry's Law constant:
1522 !
1523 ! 020196:
1524
1525 xh2so4(l)= xh2so4(l)
1526 & /(1.0 + raq2gas(1.e10, tl(l), dqtotal) )
1527
1528 xhno3(l) = xhno3(l)
1529 & /(1.0 + raq2gas(1.e10, tl(l), dqtotal) )
1530
1531 ehenryx = ehenry (6.3e3,6412.34,tl(l))
1532 xch2o(l) = xch2o(l)
1533 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1534
1535 ehenryx = ehenry (1.23e3,3120.00,tl(l))
1536 xso2(l) = xso2(l)
1537 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1538
1539 ! Calculate H2O2 also:
1540
1541 ehenryx = ehenry (7.45,6620.00,tl(l))
1542 xh2o2(l) = xh2o2(l)
1543 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1544
1545 ! Calculate HO, 062895:
1546
1547 ehenryx = ehenry (25.0,5280.00,tl(l))
1548 ho(i,j,l)= ho(i,j,l)
1549 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1550
1551 ! Calculate HO2, 062895:
1552
1553 ehenryx = ehenry (1.0e4,6640.00,tl(l)) !2nd reaction = 4.0
1554 ho2(i,j,l)= ho2(i,j,l)
1555 & /(1.0 + raq2gas(ehenryx, tl(l), dqtotal) )
1556
1557 !
1558 #endif
1559
1560 DSIGUP=DSIG(L) 3468.
1561 ELHXUP=ELHX 3469.
1562 302 TL(L)=TNEW 3470.
1563 QL(L)=QNEW 3471.
1564 C**** ACCUMULATE SOME DIAGNOSTICS 3472.
1565 HCNDNS=HCNDNS+(TNEW-TOLD)*DSIG(L) 3473.
1566 304 AJL(J,L,11)=AJL(J,L,11)+(TNEW-TOLD)*SP 3474.
1567 PRCPSS=DQUP*DSIG(1)*SP 3475.
1568 c CONDL=.FALSE.
1569 c GO TO 824
1570 c 872 CONTINUE
1571 ! 07/22/2005 different precipitation over land and ocean
1572 ! PRLAND and PROCEAN are ratios of precip
1573 ! over land and ocean to total precipitation
1574 !
1575 AJ(J,61)=AJ(J,61)+PRCPSS*POCEAN*PROCEAN 3476.
1576 BJ(J,61)=BJ(J,61)+PRCPSS*PLAND*PRLAND 3477.
1577 CJ(J,61)=CJ(J,61)+PRCPSS*POICE*PROCEAN 3478.
1578 DJ(JR,61)=DJ(JR,61)+PRCPSS*DXYP(J) 3479.
1579 305 AJ(J,62)=AJ(J,62)+PRCPMC*POCEAN*PROCEAN 3480.
1580 BJ(J,62)=BJ(J,62)+PRCPMC*PLAND*PRLAND 3481.
1581 CJ(J,62)=CJ(J,62)+PRCPMC*POICE*PROCEAN 3482.
1582 DJ(JR,62)=DJ(JR,62)+PRCPMC*DXYP(J) 3483.
1583 DO 390 KR=1,4 3484.
1584 IF(I.EQ.IJD6(1,KR).AND.J.EQ.IJD6(2,KR)) GO TO 392 3485.
1585 390 CONTINUE 3486.
1586 GO TO 400 3487.
1587 392 ADAILY(IHOUR,5,KR)=ADAILY(IHOUR,5,KR)+HCNDNS*SP 3488.
1588 ADAILY(IHOUR,49,KR)=ADAILY(IHOUR,49,KR)+PRCPMC+PRCPSS 3489.
1589 400 PRCP=(PRCPMC+PRCPSS)*100./GRAV 3490.
1590 PREC(I,J)=PRCP 3491.
1591 IF(TPREC(I,J).GE.0.) PRCP=0. 3492.
1592 GDATA(I,J,11)=(DTPERD+GDATA(I,J,11)*AGESNX)*EXP(-PRCP) 3493.
1593 C**** TOTAL HEATING AND MOISTURE ADJUSTMENT 3494.
1594 500 DO 530 L=1,LM 3495.
1595 T(I,J,L)=TL(L)/PLK(L) 3496.
1596
1597 #if ( defined CPL_CHEM )
1598 !
1599 cfc11(i,j,l)= xcfc11(l)
1600 cfc12(i,j,l)= xcfc12(l)
1601 xn2o (i,j,l)= xxn2o (l)
1602 o3 (i,j,l)= xo3 (l)
1603 co (i,j,l)= xco (l)
1604 zco2 (i,j,l)= xzco2 (l)
1605 xno (i,j,l)= xxno (l)
1606 xno2 (i,j,l)= xxno2 (l)
1607 xn2o5(i,j,l)= xxn2o5(l)
1608 hno3 (i,j,l)= xhno3 (l)
1609 ch4 (i,j,l)= xch4 (l)
1610 ch2o (i,j,l)= xch2o (l)
1611 so2 (i,j,l)= xso2 (l)
1612 h2so4(i,j,l)= xh2so4(l)
1613
1614 ! === if hfc, pfc, and sf6 are included:
1615 #ifdef INC_3GASES
1616 ! === 032698
1617 hfc134a(i,j,l) = xhfc134a(l)
1618 pfc(i,j,l) = xpfc(l)
1619 sf6(i,j,l) = xsf6(l)
1620 ! ===
1621 #endif
1622
1623 bcarbon (i,j,l)= xbc (l)
1624 ocarbon (i,j,l)= xoc (l)
1625
1626 ! 062295
1627 h2o2 (i,j,l)= xh2o2 (l)
1628 !
1629 #endif
1630
1631 530 Q(I,J,L)=QL(L) 3497.
1632
1633 !070804
1634 #if ( defined CPL_CHEM )
1635 !
1636 beta = 3600.0*0.15 ! dt*correction
1637 !beta = 1.0
1638 t_cnv = max(0.0, prec_cnv(nlev))
1639 t_str = max(0.0, prec_str(nlev))
1640 do k=nlev-1,1,-1
1641
1642 ! === accumulate precipitation
1643 !t_cnv = t_cnv + prec_cnv(k)
1644 !t_str = t_str + prec_str(k)
1645
1646 if ( TX(i,j,k) .le. 273.15 ) then ! Eice =0.35
1647 t_cnv = prec_cnv(k)*0.5
1648 t_str = prec_str(k)*0.5
1649 else
1650 t_cnv = prec_cnv(k)
1651 t_str = prec_str(k)
1652 end if
1653
1654 ! === Wet scavenging by convective precipiation:
1655 bcarbon(i,j,k) = bcarbon(i,j,k)
1656 & *(1.0 - 4.4913e-2*t_cnv*beta)
1657 if ( bcarbon(i,j,k) .lt. 0.0 ) bcarbon(i,j,k) = 0.0
1658 ocarbon(i,j,k) = ocarbon(i,j,k)
1659 & *(1.0 - 4.4913e-2*t_cnv*beta)
1660 if ( ocarbon(i,j,k) .lt. 0.0 ) ocarbon(i,j,k) = 0.0
1661
1662 ! === Wet scavenging by large scale precipitation:
1663 bcarbon(i,j,k) = bcarbon(i,j,k)
1664 & *(1.0 - 5.3946e-2*t_str*beta)
1665 if ( bcarbon(i,j,k) .lt. 0.0 ) bcarbon(i,j,k) = 0.0
1666 ocarbon(i,j,k) = ocarbon(i,j,k)
1667 & *(1.0 - 5.3946e-2*t_str*beta)
1668 if ( ocarbon(i,j,k) .lt. 0.0 ) ocarbon(i,j,k) = 0.0
1669 end do
1670
1671 !070804
1672 #endif
1673
1674 700 IM1=I 3498.
1675 #if ( defined CLM )
1676
1677 pred4tem(j)=pred4tem(j)+PREC(1,J)
1678 ewvd4tem(j)=ewvd4tem(j)+QL(1)*P(1,j)*SIG(1)*RVAP/RGAS
1679 npred4tem(j)=npred4tem(j)+1
1680
1681 c prhr(j)=PREC(1,J)
1682 c PRCP=(PRCPMC+PRCPSS)*100./GRAV 3490.
1683 pcpl4clm(j)=PRCPSS*100./GRAV
1684 pcpc4clm(j)=PRCPMC*100./GRAV
1685 tpr4clm(j)=TPREC(1,J)
1686 #endif
1687 C
1688 #if ( defined OCEAN_3D || defined ML_2D )
1689 tempr(j)=tempr(j)+TPREC(1,J)
1690 precip(j)=precip(j)+PREC(1,J)
1691 if(j.eq.-42)then
1692 print *,'FROM CONDSE'
1693 print *,'TPREC=',TPREC(1,J),' PREC=',PREC(1,J)
1694 endif
1695 ps4ocean(j)=ps4ocean(j)+(SP+PTOP)
1696 do l=1,lm
1697 qyz4ocean(j,l)=qyz4ocean(j,l)+QL(l)
1698 tyz4ocean(j,l)=tyz4ocean(j,l)+TL(l)
1699 enddo
1700 #endif
1701 c
1702
1703 C**** END OF MAIN LOOP FOR I INDEX 3499.
1704 810 CONTINUE 3500.
1705 C**** 3501.
1706 C**** END OF MAIN LOOP FOR J INDEX 3502.
1707 C**** 3503.
1708 C**** ADD IN CHANGE OF ANG. MOMENTUM BY MOIST CONVECTION FOR DIAGNOSTIC 3504.
1709 DO 880 L=1,LTM 3505.
1710 DO 880 J=2,JM 3506.
1711 DO 880 I=1,IM 3507.
1712 880 AJL(J,L,39)=AJL(J,L,39)+(U(I,J,L)-UC(I,J,L))*P(I,J) 3508.
1713 JDAY00=JDAY
1714 if(HPRNT)then
1715 print *,' condse 6'
1716 print *,' T(J,L)=',T(1,JPR,LPR),' Q(J,L)=',Q(1,JPR,LPR)
1717 print *,' V(J,L)=',V(1,JPR,LPR),' V(J+1,L)=',V(1,JPR+1,LPR)
1718 print *,' U(J,L)=',U(1,JPR,LPR),' U(J+1,L)=',U(1,JPR+1,LPR)
1719 endif
1720 C
1721
1722 #if ( defined CPL_CHEM )
1723 !
1724 ! --- Chemistry model patch 081795
1725 ! check negative values:
1726 !
1727 call chemcheck(cfc11)
1728 call chemcheck(cfc12)
1729 call chemcheck(xn2o )
1730 call chemcheck(o3 )
1731 call chemcheck(co )
1732 call chemcheck(zco2 )
1733 call chemcheck(xno )
1734 call chemcheck(xno2 )
1735 call chemcheck(xn2o5)
1736 call chemcheck(hno3 )
1737 call chemcheck(ch4 )
1738 call chemcheck(ch2o )
1739 call chemcheck(so2 )
1740 call chemcheck(h2so4)
1741 call chemcheck(h2o2 )
1742 call chemcheck(bcarbon)
1743 call chemcheck(ocarbon)
1744
1745 ! === if hfc, pfc, and sf6 are included:
1746 #ifdef INC_3GASES
1747 ! === 032698
1748 call chemcheck(hfc134a)
1749 call chemcheck(pfc)
1750 call chemcheck(sf6)
1751 ! ===
1752 #endif
1753 !
1754 #endif
1755
1756 RETURN 3509.
1757 END 3510.

  ViewVC Help
Powered by ViewVC 1.1.22