/[lmdze]/trunk/libf/phylmd/Radlwsw/sw2s.f
ViewVC logotype

Contents of /trunk/libf/phylmd/Radlwsw/sw2s.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 71 - (show annotations)
Mon Jul 8 18:12:18 2013 UTC (10 years, 9 months ago) by guez
File size: 15893 byte(s)
No reason to call inidissip in ce0l.

In inidissip, set random seed to 1 beacuse PGI compiler does not
accept all zeros.

dq was computed needlessly in caladvtrac. Arguments masse and dq of
calfis not used.

Replaced real*8 by double precision.

Pass arrays with inverted order of vertical levels to conflx instead
of creating local variables for this inside conflx.

1 SUBROUTINE SW2S ( KNU
2 S , PAER , flag_aer, tauae, pizae, cgae
3 S , PAKI, PALBD, PALBP, PCG , PCLD, PCLEAR, PCLDSW
4 S , PDSIG ,POMEGA,POZ , PRMU , PSEC , PTAU
5 S , PUD ,PWV , PQS
6 S , PFDOWN,PFUP )
7 use dimens_m
8 use dimphy
9 use raddim
10 use radepsi
11 IMPLICIT none
12 C
13 C ------------------------------------------------------------------
14 C PURPOSE.
15 C --------
16 C
17 C THIS ROUTINE COMPUTES THE SHORTWAVE RADIATION FLUXES IN THE
18 C SECOND SPECTRAL INTERVAL FOLLOWING FOUQUART AND BONNEL (1980).
19 C
20 C METHOD.
21 C -------
22 C
23 C 1. COMPUTES REFLECTIVITY/TRANSMISSIVITY CORRESPONDING TO
24 C CONTINUUM SCATTERING
25 C 2. COMPUTES REFLECTIVITY/TRANSMISSIVITY CORRESPONDING FOR
26 C A GREY MOLECULAR ABSORPTION
27 C 3. LAPLACE TRANSFORM ON THE PREVIOUS TO GET EFFECTIVE AMOUNTS
28 C OF ABSORBERS
29 C 4. APPLY H2O AND U.M.G. TRANSMISSION FUNCTIONS
30 C 5. MULTIPLY BY OZONE TRANSMISSION FUNCTION
31 C
32 C REFERENCE.
33 C ----------
34 C
35 C SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT
36 C DOCUMENTATION, AND FOUQUART AND BONNEL (1980)
37 C
38 C AUTHOR.
39 C -------
40 C JEAN-JACQUES MORCRETTE *ECMWF*
41 C
42 C MODIFICATIONS.
43 C --------------
44 C ORIGINAL : 89-07-14
45 C 94-11-15 J.-J. MORCRETTE DIRECT/DIFFUSE ALBEDO
46 C ------------------------------------------------------------------
47 C* ARGUMENTS:
48 C
49 INTEGER KNU
50 c-OB
51 double precision flag_aer
52 double precision tauae(kdlon,kflev,2)
53 double precision pizae(kdlon,kflev,2)
54 double precision cgae(kdlon,kflev,2)
55 DOUBLE PRECISION PAER(KDLON,KFLEV,5)
56 DOUBLE PRECISION PAKI(KDLON,2)
57 DOUBLE PRECISION PALBD(KDLON,2)
58 DOUBLE PRECISION PALBP(KDLON,2)
59 DOUBLE PRECISION PCG(KDLON,2,KFLEV)
60 DOUBLE PRECISION PCLD(KDLON,KFLEV)
61 DOUBLE PRECISION PCLDSW(KDLON,KFLEV)
62 DOUBLE PRECISION PCLEAR(KDLON)
63 DOUBLE PRECISION PDSIG(KDLON,KFLEV)
64 DOUBLE PRECISION POMEGA(KDLON,2,KFLEV)
65 DOUBLE PRECISION POZ(KDLON,KFLEV)
66 DOUBLE PRECISION PQS(KDLON,KFLEV)
67 DOUBLE PRECISION PRMU(KDLON)
68 DOUBLE PRECISION PSEC(KDLON)
69 DOUBLE PRECISION PTAU(KDLON,2,KFLEV)
70 DOUBLE PRECISION PUD(KDLON,5,KFLEV+1)
71 DOUBLE PRECISION PWV(KDLON,KFLEV)
72 C
73 DOUBLE PRECISION PFDOWN(KDLON,KFLEV+1)
74 DOUBLE PRECISION PFUP(KDLON,KFLEV+1)
75 C
76 C* LOCAL VARIABLES:
77 C
78 INTEGER IIND2(2), IIND3(3)
79 DOUBLE PRECISION ZCGAZ(KDLON,KFLEV)
80 DOUBLE PRECISION ZFD(KDLON,KFLEV+1)
81 DOUBLE PRECISION ZFU(KDLON,KFLEV+1)
82 DOUBLE PRECISION ZG(KDLON)
83 DOUBLE PRECISION ZGG(KDLON)
84 DOUBLE PRECISION ZPIZAZ(KDLON,KFLEV)
85 DOUBLE PRECISION ZRAYL(KDLON)
86 DOUBLE PRECISION ZRAY1(KDLON,KFLEV+1)
87 DOUBLE PRECISION ZRAY2(KDLON,KFLEV+1)
88 DOUBLE PRECISION ZREF(KDLON)
89 DOUBLE PRECISION ZREFZ(KDLON,2,KFLEV+1)
90 DOUBLE PRECISION ZRE1(KDLON)
91 DOUBLE PRECISION ZRE2(KDLON)
92 DOUBLE PRECISION ZRJ(KDLON,6,KFLEV+1)
93 DOUBLE PRECISION ZRJ0(KDLON,6,KFLEV+1)
94 DOUBLE PRECISION ZRK(KDLON,6,KFLEV+1)
95 DOUBLE PRECISION ZRK0(KDLON,6,KFLEV+1)
96 DOUBLE PRECISION ZRL(KDLON,8)
97 DOUBLE PRECISION ZRMUE(KDLON,KFLEV+1)
98 DOUBLE PRECISION ZRMU0(KDLON,KFLEV+1)
99 DOUBLE PRECISION ZRMUZ(KDLON)
100 DOUBLE PRECISION ZRNEB(KDLON)
101 DOUBLE PRECISION ZRUEF(KDLON,8)
102 DOUBLE PRECISION ZR1(KDLON)
103 DOUBLE PRECISION ZR2(KDLON,2)
104 DOUBLE PRECISION ZR3(KDLON,3)
105 DOUBLE PRECISION ZR4(KDLON)
106 DOUBLE PRECISION ZR21(KDLON)
107 DOUBLE PRECISION ZR22(KDLON)
108 DOUBLE PRECISION ZS(KDLON)
109 DOUBLE PRECISION ZTAUAZ(KDLON,KFLEV)
110 DOUBLE PRECISION ZTO1(KDLON)
111 DOUBLE PRECISION ZTR(KDLON,2,KFLEV+1)
112 DOUBLE PRECISION ZTRA1(KDLON,KFLEV+1)
113 DOUBLE PRECISION ZTRA2(KDLON,KFLEV+1)
114 DOUBLE PRECISION ZTR1(KDLON)
115 DOUBLE PRECISION ZTR2(KDLON)
116 DOUBLE PRECISION ZW(KDLON)
117 DOUBLE PRECISION ZW1(KDLON)
118 DOUBLE PRECISION ZW2(KDLON,2)
119 DOUBLE PRECISION ZW3(KDLON,3)
120 DOUBLE PRECISION ZW4(KDLON)
121 DOUBLE PRECISION ZW5(KDLON)
122 C
123 INTEGER jl, jk, k, jaj, ikm1, ikl, jn, jabs, jkm1
124 INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs
125 DOUBLE PRECISION ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11
126 C
127 C* Prescribed Data:
128 C
129 DOUBLE PRECISION RSUN(2)
130 SAVE RSUN
131 DOUBLE PRECISION RRAY(2,6)
132 SAVE RRAY
133 DATA RSUN(1) / 0.441676 /
134 DATA RSUN(2) / 0.558324 /
135 DATA (RRAY(1,K),K=1,6) /
136 S .428937E-01, .890743E+00,-.288555E+01,
137 S .522744E+01,-.469173E+01, .161645E+01/
138 DATA (RRAY(2,K),K=1,6) /
139 S .697200E-02, .173297E-01,-.850903E-01,
140 S .248261E+00,-.302031E+00, .129662E+00/
141 C
142 C ------------------------------------------------------------------
143 C
144 C* 1. SECOND SPECTRAL INTERVAL (0.68-4.00 MICRON)
145 C -------------------------------------------
146 C
147 100 CONTINUE
148 C
149 C
150 C* 1.1 OPTICAL THICKNESS FOR RAYLEIGH SCATTERING
151 C -----------------------------------------
152 C
153 110 CONTINUE
154 C
155 DO 111 JL = 1, KDLON
156 ZRMUM1 = 1. - PRMU(JL)
157 ZRAYL(JL) = RRAY(KNU,1) + ZRMUM1 * (RRAY(KNU,2) + ZRMUM1
158 S * (RRAY(KNU,3) + ZRMUM1 * (RRAY(KNU,4) + ZRMUM1
159 S * (RRAY(KNU,5) + ZRMUM1 * RRAY(KNU,6) ))))
160 111 CONTINUE
161 C
162 C
163 C ------------------------------------------------------------------
164 C
165 C* 2. CONTINUUM SCATTERING CALCULATIONS
166 C ---------------------------------
167 C
168 200 CONTINUE
169 C
170 C* 2.1 CLEAR-SKY FRACTION OF THE COLUMN
171 C --------------------------------
172 C
173 210 CONTINUE
174 C
175 CALL SWCLR ( KNU
176 S , PAER , flag_aer, tauae, pizae, cgae
177 S , PALBP , PDSIG , ZRAYL, PSEC
178 S , ZCGAZ , ZPIZAZ, ZRAY1 , ZRAY2, ZREFZ, ZRJ0
179 S , ZRK0 , ZRMU0 , ZTAUAZ, ZTRA1, ZTRA2)
180 C
181 C
182 C* 2.2 CLOUDY FRACTION OF THE COLUMN
183 C -----------------------------
184 C
185 220 CONTINUE
186 C
187 CALL SWR ( KNU
188 S , PALBD , PCG , PCLD , PDSIG, POMEGA, ZRAYL
189 S , PSEC , PTAU
190 S , ZCGAZ , ZPIZAZ, ZRAY1, ZRAY2, ZREFZ , ZRJ , ZRK, ZRMUE
191 S , ZTAUAZ, ZTRA1 , ZTRA2)
192 C
193 C
194 C ------------------------------------------------------------------
195 C
196 C* 3. SCATTERING CALCULATIONS WITH GREY MOLECULAR ABSORPTION
197 C ------------------------------------------------------
198 C
199 300 CONTINUE
200 C
201 JN = 2
202 C
203 DO 361 JABS=1,2
204 C
205 C
206 C* 3.1 SURFACE CONDITIONS
207 C ------------------
208 C
209 310 CONTINUE
210 C
211 DO 311 JL = 1, KDLON
212 ZREFZ(JL,2,1) = PALBD(JL,KNU)
213 ZREFZ(JL,1,1) = PALBD(JL,KNU)
214 311 CONTINUE
215 C
216 C
217 C* 3.2 INTRODUCING CLOUD EFFECTS
218 C -------------------------
219 C
220 320 CONTINUE
221 C
222 DO 324 JK = 2 , KFLEV+1
223 JKM1 = JK - 1
224 IKL=KFLEV+1-JKM1
225 DO 322 JL = 1, KDLON
226 ZRNEB(JL) = PCLD(JL,JKM1)
227 IF (JABS.EQ.1 .AND. ZRNEB(JL).GT.2.*ZEELOG) THEN
228 ZWH2O=MAX(PWV(JL,JKM1),ZEELOG)
229 ZCNEB=MAX(ZEELOG,MIN(ZRNEB(JL),1.-ZEELOG))
230 ZBB=PUD(JL,JABS,JKM1)*PQS(JL,JKM1)/ZWH2O
231 ZAA=MAX((PUD(JL,JABS,JKM1)-ZCNEB*ZBB)/(1.-ZCNEB),ZEELOG)
232 ELSE
233 ZAA=PUD(JL,JABS,JKM1)
234 ZBB=ZAA
235 END IF
236 ZRKI = PAKI(JL,JABS)
237 ZS(JL) = EXP(-ZRKI * ZAA * 1.66)
238 ZG(JL) = EXP(-ZRKI * ZAA / ZRMUE(JL,JK))
239 ZTR1(JL) = 0.
240 ZRE1(JL) = 0.
241 ZTR2(JL) = 0.
242 ZRE2(JL) = 0.
243 C
244 ZW(JL)= POMEGA(JL,KNU,JKM1)
245 ZTO1(JL) = PTAU(JL,KNU,JKM1) / ZW(JL)
246 S + ZTAUAZ(JL,JKM1) / ZPIZAZ(JL,JKM1)
247 S + ZBB * ZRKI
248
249 ZR21(JL) = PTAU(JL,KNU,JKM1) + ZTAUAZ(JL,JKM1)
250 ZR22(JL) = PTAU(JL,KNU,JKM1) / ZR21(JL)
251 ZGG(JL) = ZR22(JL) * PCG(JL,KNU,JKM1)
252 S + (1. - ZR22(JL)) * ZCGAZ(JL,JKM1)
253 ZW(JL) = ZR21(JL) / ZTO1(JL)
254 ZREF(JL) = ZREFZ(JL,1,JKM1)
255 ZRMUZ(JL) = ZRMUE(JL,JK)
256 322 CONTINUE
257 C
258 CALL SWDE(ZGG, ZREF, ZRMUZ, ZTO1, ZW,
259 S ZRE1, ZRE2, ZTR1, ZTR2)
260 C
261 DO 323 JL = 1, KDLON
262 C
263 ZREFZ(JL,2,JK) = (1.-ZRNEB(JL)) * (ZRAY1(JL,JKM1)
264 S + ZREFZ(JL,2,JKM1) * ZTRA1(JL,JKM1)
265 S * ZTRA2(JL,JKM1) ) * ZG(JL) * ZS(JL)
266 S + ZRNEB(JL) * ZRE1(JL)
267 C
268 ZTR(JL,2,JKM1)=ZRNEB(JL)*ZTR1(JL)
269 S + (ZTRA1(JL,JKM1)) * ZG(JL) * (1.-ZRNEB(JL))
270 C
271 ZREFZ(JL,1,JK)=(1.-ZRNEB(JL))*(ZRAY1(JL,JKM1)
272 S +ZREFZ(JL,1,JKM1)*ZTRA1(JL,JKM1)*ZTRA2(JL,JKM1)
273 S /(1.-ZRAY2(JL,JKM1)*ZREFZ(JL,1,JKM1)))*ZG(JL)*ZS(JL)
274 S + ZRNEB(JL) * ZRE2(JL)
275 C
276 ZTR(JL,1,JKM1)= ZRNEB(JL) * ZTR2(JL)
277 S + (ZTRA1(JL,JKM1)/(1.-ZRAY2(JL,JKM1)
278 S * ZREFZ(JL,1,JKM1)))
279 S * ZG(JL) * (1. -ZRNEB(JL))
280 C
281 323 CONTINUE
282 324 CONTINUE
283 C
284 C* 3.3 REFLECT./TRANSMISSIVITY BETWEEN SURFACE AND LEVEL
285 C -------------------------------------------------
286 C
287 330 CONTINUE
288 C
289 DO 351 JREF=1,2
290 C
291 JN = JN + 1
292 C
293 DO 331 JL = 1, KDLON
294 ZRJ(JL,JN,KFLEV+1) = 1.
295 ZRK(JL,JN,KFLEV+1) = ZREFZ(JL,JREF,KFLEV+1)
296 331 CONTINUE
297 C
298 DO 333 JK = 1 , KFLEV
299 JKL = KFLEV+1 - JK
300 JKLP1 = JKL + 1
301 DO 332 JL = 1, KDLON
302 ZRE11 = ZRJ(JL,JN,JKLP1) * ZTR(JL,JREF,JKL)
303 ZRJ(JL,JN,JKL) = ZRE11
304 ZRK(JL,JN,JKL) = ZRE11 * ZREFZ(JL,JREF,JKL)
305 332 CONTINUE
306 333 CONTINUE
307 351 CONTINUE
308 361 CONTINUE
309 C
310 C
311 C ------------------------------------------------------------------
312 C
313 C* 4. INVERT GREY AND CONTINUUM FLUXES
314 C --------------------------------
315 C
316 400 CONTINUE
317 C
318 C
319 C* 4.1 UPWARD (ZRK) AND DOWNWARD (ZRJ) PSEUDO-FLUXES
320 C ---------------------------------------------
321 C
322 410 CONTINUE
323 C
324 DO 414 JK = 1 , KFLEV+1
325 DO 413 JAJ = 1 , 5 , 2
326 JAJP = JAJ + 1
327 DO 412 JL = 1, KDLON
328 ZRJ(JL,JAJ,JK)= ZRJ(JL,JAJ,JK) - ZRJ(JL,JAJP,JK)
329 ZRK(JL,JAJ,JK)= ZRK(JL,JAJ,JK) - ZRK(JL,JAJP,JK)
330 ZRJ(JL,JAJ,JK)= MAX( ZRJ(JL,JAJ,JK) , ZEELOG )
331 ZRK(JL,JAJ,JK)= MAX( ZRK(JL,JAJ,JK) , ZEELOG )
332 412 CONTINUE
333 413 CONTINUE
334 414 CONTINUE
335 C
336 DO 417 JK = 1 , KFLEV+1
337 DO 416 JAJ = 2 , 6 , 2
338 DO 415 JL = 1, KDLON
339 ZRJ(JL,JAJ,JK)= MAX( ZRJ(JL,JAJ,JK) , ZEELOG )
340 ZRK(JL,JAJ,JK)= MAX( ZRK(JL,JAJ,JK) , ZEELOG )
341 415 CONTINUE
342 416 CONTINUE
343 417 CONTINUE
344 C
345 C* 4.2 EFFECTIVE ABSORBER AMOUNTS BY INVERSE LAPLACE
346 C ---------------------------------------------
347 C
348 420 CONTINUE
349 C
350 DO 437 JK = 1 , KFLEV+1
351 JKKI = 1
352 DO 425 JAJ = 1 , 2
353 IIND2(1)=JAJ
354 IIND2(2)=JAJ
355 DO 424 JN = 1 , 2
356 JN2J = JN + 2 * JAJ
357 JKKP4 = JKKI + 4
358 C
359 C* 4.2.1 EFFECTIVE ABSORBER AMOUNTS
360 C --------------------------
361 C
362 4210 CONTINUE
363 C
364 DO 4211 JL = 1, KDLON
365 ZW2(JL,1) = LOG( ZRJ(JL,JN,JK) / ZRJ(JL,JN2J,JK))
366 S / PAKI(JL,JAJ)
367 ZW2(JL,2) = LOG( ZRK(JL,JN,JK) / ZRK(JL,JN2J,JK))
368 S / PAKI(JL,JAJ)
369 4211 CONTINUE
370 C
371 C* 4.2.2 TRANSMISSION FUNCTION
372 C ---------------------
373 C
374 4220 CONTINUE
375 C
376 CALL SWTT1(KNU, 2, IIND2, ZW2, ZR2)
377 C
378 DO 4221 JL = 1, KDLON
379 ZRL(JL,JKKI) = ZR2(JL,1)
380 ZRUEF(JL,JKKI) = ZW2(JL,1)
381 ZRL(JL,JKKP4) = ZR2(JL,2)
382 ZRUEF(JL,JKKP4) = ZW2(JL,2)
383 4221 CONTINUE
384 C
385 JKKI=JKKI+1
386 424 CONTINUE
387 425 CONTINUE
388 C
389 C* 4.3 UPWARD AND DOWNWARD FLUXES WITH H2O AND UMG ABSORPTION
390 C ------------------------------------------------------
391 C
392 430 CONTINUE
393 C
394 DO 431 JL = 1, KDLON
395 PFDOWN(JL,JK) = ZRJ(JL,1,JK) * ZRL(JL,1) * ZRL(JL,3)
396 S + ZRJ(JL,2,JK) * ZRL(JL,2) * ZRL(JL,4)
397 PFUP(JL,JK) = ZRK(JL,1,JK) * ZRL(JL,5) * ZRL(JL,7)
398 S + ZRK(JL,2,JK) * ZRL(JL,6) * ZRL(JL,8)
399 431 CONTINUE
400 437 CONTINUE
401 C
402 C
403 C ------------------------------------------------------------------
404 C
405 C* 5. MOLECULAR ABSORPTION ON CLEAR-SKY FLUXES
406 C ----------------------------------------
407 C
408 500 CONTINUE
409 C
410 C
411 C* 5.1 DOWNWARD FLUXES
412 C ---------------
413 C
414 510 CONTINUE
415 C
416 JAJ = 2
417 IIND3(1)=1
418 IIND3(2)=2
419 IIND3(3)=3
420 C
421 DO 511 JL = 1, KDLON
422 ZW3(JL,1)=0.
423 ZW3(JL,2)=0.
424 ZW3(JL,3)=0.
425 ZW4(JL) =0.
426 ZW5(JL) =0.
427 ZR4(JL) =1.
428 ZFD(JL,KFLEV+1)= ZRJ0(JL,JAJ,KFLEV+1)
429 511 CONTINUE
430 DO 514 JK = 1 , KFLEV
431 IKL = KFLEV+1-JK
432 DO 512 JL = 1, KDLON
433 ZW3(JL,1)=ZW3(JL,1)+PUD(JL,1,IKL)/ZRMU0(JL,IKL)
434 ZW3(JL,2)=ZW3(JL,2)+PUD(JL,2,IKL)/ZRMU0(JL,IKL)
435 ZW3(JL,3)=ZW3(JL,3)+POZ(JL, IKL)/ZRMU0(JL,IKL)
436 ZW4(JL) =ZW4(JL) +PUD(JL,4,IKL)/ZRMU0(JL,IKL)
437 ZW5(JL) =ZW5(JL) +PUD(JL,5,IKL)/ZRMU0(JL,IKL)
438 512 CONTINUE
439 C
440 CALL SWTT1(KNU, 3, IIND3, ZW3, ZR3)
441 C
442 DO 513 JL = 1, KDLON
443 C ZR4(JL) = EXP(-RSWCE*ZW4(JL)-RSWCP*ZW5(JL))
444 ZFD(JL,IKL) = ZR3(JL,1)*ZR3(JL,2)*ZR3(JL,3)*ZR4(JL)
445 S * ZRJ0(JL,JAJ,IKL)
446 513 CONTINUE
447 514 CONTINUE
448 C
449 C
450 C* 5.2 UPWARD FLUXES
451 C -------------
452 C
453 520 CONTINUE
454 C
455 DO 525 JL = 1, KDLON
456 ZFU(JL,1) = ZFD(JL,1)*PALBP(JL,KNU)
457 525 CONTINUE
458 C
459 DO 528 JK = 2 , KFLEV+1
460 IKM1=JK-1
461 DO 526 JL = 1, KDLON
462 ZW3(JL,1)=ZW3(JL,1)+PUD(JL,1,IKM1)*1.66
463 ZW3(JL,2)=ZW3(JL,2)+PUD(JL,2,IKM1)*1.66
464 ZW3(JL,3)=ZW3(JL,3)+POZ(JL, IKM1)*1.66
465 ZW4(JL) =ZW4(JL) +PUD(JL,4,IKM1)*1.66
466 ZW5(JL) =ZW5(JL) +PUD(JL,5,IKM1)*1.66
467 526 CONTINUE
468 C
469 CALL SWTT1(KNU, 3, IIND3, ZW3, ZR3)
470 C
471 DO 527 JL = 1, KDLON
472 C ZR4(JL) = EXP(-RSWCE*ZW4(JL)-RSWCP*ZW5(JL))
473 ZFU(JL,JK) = ZR3(JL,1)*ZR3(JL,2)*ZR3(JL,3)*ZR4(JL)
474 S * ZRK0(JL,JAJ,JK)
475 527 CONTINUE
476 528 CONTINUE
477 C
478 C
479 C ------------------------------------------------------------------
480 C
481 C* 6. INTRODUCTION OF OZONE AND H2O CONTINUUM ABSORPTION
482 C --------------------------------------------------
483 C
484 600 CONTINUE
485 IABS=3
486 C
487 C* 6.1 DOWNWARD FLUXES
488 C ---------------
489 C
490 610 CONTINUE
491 DO 611 JL = 1, KDLON
492 ZW1(JL)=0.
493 ZW4(JL)=0.
494 ZW5(JL)=0.
495 ZR1(JL)=0.
496 PFDOWN(JL,KFLEV+1) = ((1.-PCLEAR(JL))*PFDOWN(JL,KFLEV+1)
497 S + PCLEAR(JL) * ZFD(JL,KFLEV+1)) * RSUN(KNU)
498 611 CONTINUE
499 C
500 DO 614 JK = 1 , KFLEV
501 IKL=KFLEV+1-JK
502 DO 612 JL = 1, KDLON
503 ZW1(JL) = ZW1(JL)+POZ(JL, IKL)/ZRMUE(JL,IKL)
504 ZW4(JL) = ZW4(JL)+PUD(JL,4,IKL)/ZRMUE(JL,IKL)
505 ZW5(JL) = ZW5(JL)+PUD(JL,5,IKL)/ZRMUE(JL,IKL)
506 C ZR4(JL) = EXP(-RSWCE*ZW4(JL)-RSWCP*ZW5(JL))
507 612 CONTINUE
508 C
509 CALL SWTT(KNU, IABS, ZW1, ZR1)
510 C
511 DO 613 JL = 1, KDLON
512 PFDOWN(JL,IKL) = ((1.-PCLEAR(JL))*ZR1(JL)*ZR4(JL)*PFDOWN(JL,IKL)
513 S +PCLEAR(JL)*ZFD(JL,IKL)) * RSUN(KNU)
514 613 CONTINUE
515 614 CONTINUE
516 C
517 C
518 C* 6.2 UPWARD FLUXES
519 C -------------
520 C
521 620 CONTINUE
522 DO 621 JL = 1, KDLON
523 PFUP(JL,1) = ((1.-PCLEAR(JL))*ZR1(JL)*ZR4(JL) * PFUP(JL,1)
524 S +PCLEAR(JL)*ZFU(JL,1)) * RSUN(KNU)
525 621 CONTINUE
526 C
527 DO 624 JK = 2 , KFLEV+1
528 IKM1=JK-1
529 DO 622 JL = 1, KDLON
530 ZW1(JL) = ZW1(JL)+POZ(JL ,IKM1)*1.66
531 ZW4(JL) = ZW4(JL)+PUD(JL,4,IKM1)*1.66
532 ZW5(JL) = ZW5(JL)+PUD(JL,5,IKM1)*1.66
533 C ZR4(JL) = EXP(-RSWCE*ZW4(JL)-RSWCP*ZW5(JL))
534 622 CONTINUE
535 C
536 CALL SWTT(KNU, IABS, ZW1, ZR1)
537 C
538 DO 623 JL = 1, KDLON
539 PFUP(JL,JK) = ((1.-PCLEAR(JL))*ZR1(JL)*ZR4(JL) * PFUP(JL,JK)
540 S +PCLEAR(JL)*ZFU(JL,JK)) * RSUN(KNU)
541 623 CONTINUE
542 624 CONTINUE
543 C
544 C ------------------------------------------------------------------
545 C
546 RETURN
547 END

  ViewVC Help
Powered by ViewVC 1.1.21