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

Annotation of /trunk/Sources/phylmd/Radlwsw/sw2s.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 71 - (hide annotations)
Mon Jul 8 18:12:18 2013 UTC (10 years, 10 months ago) by guez
Original Path: trunk/libf/phylmd/Radlwsw/sw2s.f
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 guez 24 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 guez 71 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 guez 24 C
73 guez 71 DOUBLE PRECISION PFDOWN(KDLON,KFLEV+1)
74     DOUBLE PRECISION PFUP(KDLON,KFLEV+1)
75 guez 24 C
76     C* LOCAL VARIABLES:
77     C
78     INTEGER IIND2(2), IIND3(3)
79 guez 71 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 guez 24 C
123     INTEGER jl, jk, k, jaj, ikm1, ikl, jn, jabs, jkm1
124     INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs
125 guez 71 DOUBLE PRECISION ZRMUM1, ZWH2O, ZCNEB, ZAA, ZBB, ZRKI, ZRE11
126 guez 24 C
127     C* Prescribed Data:
128     C
129 guez 71 DOUBLE PRECISION RSUN(2)
130 guez 24 SAVE RSUN
131 guez 71 DOUBLE PRECISION RRAY(2,6)
132 guez 24 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