/[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.3 - (show annotations) (download)
Mon Apr 23 21:20:17 2007 UTC (18 years, 3 months ago) by jscott
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +9 -7 lines
bring igsm atmos code up to date

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

  ViewVC Help
Powered by ViewVC 1.1.22