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

Annotation of /trunk/libf/phylmd/Radlwsw/lwvb.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (hide annotations)
Wed Mar 3 13:23:49 2010 UTC (14 years, 4 months ago) by guez
File size: 9114 byte(s)
Created directory "phylmd/Radlwsw". Split "radlwsw.f" in files
containing a single procedure.

Removed variable "itaufinp1" in "leapfrog".

1 guez 24 SUBROUTINE LWVB(KUAER,KTRAER, KLIM
2     R , PABCU,PADJD,PADJU,PB,PBINT,PBSUI,PBSUR,PBTOP
3     R , PDISD,PDISU,PEMIS,PPMB
4     R , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP
5     S , PCTS,PFLUC)
6     use dimens_m
7     use dimphy
8     use raddim
9     use radopt
10     use raddimlw
11     IMPLICIT none
12     C
13     C-----------------------------------------------------------------------
14     C PURPOSE.
15     C --------
16     C INTRODUCES THE EFFECTS OF THE BOUNDARIES IN THE VERTICAL
17     C INTEGRATION
18     C
19     C METHOD.
20     C -------
21     C
22     C 1. COMPUTES THE ENERGY EXCHANGE WITH TOP AND SURFACE OF THE
23     C ATMOSPHERE
24     C 2. COMPUTES THE COOLING-TO-SPACE AND HEATING-FROM-GROUND
25     C TERMS FOR THE APPROXIMATE COOLING RATE ABOVE 10 HPA
26     C 3. ADDS UP ALL CONTRIBUTIONS TO GET THE CLEAR-SKY FLUXES
27     C
28     C REFERENCE.
29     C ----------
30     C
31     C SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
32     C ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
33     C
34     C AUTHOR.
35     C -------
36     C JEAN-JACQUES MORCRETTE *ECMWF*
37     C
38     C MODIFICATIONS.
39     C --------------
40     C ORIGINAL : 89-07-14
41     C Voigt lines (loop 2413 to 2427) - JJM & PhD - 01/96
42     C-----------------------------------------------------------------------
43     C
44     C* 0.1 ARGUMENTS
45     C ---------
46     C
47     INTEGER KUAER,KTRAER, KLIM
48     C
49     REAL*8 PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
50     REAL*8 PADJD(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
51     REAL*8 PADJU(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
52     REAL*8 PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS
53     REAL*8 PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS
54     REAL*8 PBSUR(KDLON,Ninter) ! SPECTRAL SURFACE PLANCK FUNCTION
55     REAL*8 PBSUI(KDLON) ! SURFACE PLANCK FUNCTION
56     REAL*8 PBTOP(KDLON,Ninter) ! SPECTRAL T.O.A. PLANCK FUNCTION
57     REAL*8 PDISD(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
58     REAL*8 PDISU(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
59     REAL*8 PEMIS(KDLON) ! SURFACE EMISSIVITY
60     REAL*8 PPMB(KDLON,KFLEV+1) ! PRESSURE MB
61     REAL*8 PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
62     REAL*8 PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
63     REAL*8 PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
64     REAL*8 PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
65     REAL*8 PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
66     REAL*8 PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
67     C
68     REAL*8 PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
69     REAL*8 PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM
70     C
71     C* LOCAL VARIABLES:
72     C
73     REAL*8 ZBGND(KDLON)
74     REAL*8 ZFD(KDLON)
75     REAL*8 ZFN10(KDLON)
76     REAL*8 ZFU(KDLON)
77     REAL*8 ZTT(KDLON,NTRA)
78     REAL*8 ZTT1(KDLON,NTRA)
79     REAL*8 ZTT2(KDLON,NTRA)
80     REAL*8 ZUU(KDLON,NUA)
81     REAL*8 ZCNSOL(KDLON)
82     REAL*8 ZCNTOP(KDLON)
83     C
84     INTEGER jk, jl, ja
85     INTEGER jstra, jstru
86     INTEGER ind1, ind2, ind3, ind4, in, jlim
87     REAL*8 zctstr
88     C-----------------------------------------------------------------------
89     C
90     C* 1. INITIALIZATION
91     C --------------
92     C
93     100 CONTINUE
94     C
95     C
96     C* 1.2 INITIALIZE TRANSMISSION FUNCTIONS
97     C ---------------------------------
98     C
99     120 CONTINUE
100     C
101     DO 122 JA=1,NTRA
102     DO 121 JL=1, KDLON
103     ZTT (JL,JA)=1.0
104     ZTT1(JL,JA)=1.0
105     ZTT2(JL,JA)=1.0
106     121 CONTINUE
107     122 CONTINUE
108     C
109     DO 124 JA=1,NUA
110     DO 123 JL=1, KDLON
111     ZUU(JL,JA)=1.0
112     123 CONTINUE
113     124 CONTINUE
114     C
115     C ------------------------------------------------------------------
116     C
117     C* 2. VERTICAL INTEGRATION
118     C --------------------
119     C
120     200 CONTINUE
121     C
122     IND1=0
123     IND3=0
124     IND4=1
125     IND2=1
126     C
127     C
128     C* 2.3 EXCHANGE WITH TOP OF THE ATMOSPHERE
129     C -----------------------------------
130     C
131     230 CONTINUE
132     C
133     DO 235 JK = 1 , KFLEV
134     IN=(JK-1)*NG1P1+1
135     C
136     DO 232 JA=1,KUAER
137     DO 231 JL=1, KDLON
138     ZUU(JL,JA)=PABCU(JL,JA,IN)
139     231 CONTINUE
140     232 CONTINUE
141     C
142     C
143     CALL LWTT(PGATOP(1,1,1), PGBTOP(1,1,1), ZUU, ZTT)
144     C
145     DO 234 JL = 1, KDLON
146     ZCNTOP(JL)=PBTOP(JL,1)*ZTT(JL,1) *ZTT(JL,10)
147     2 +PBTOP(JL,2)*ZTT(JL,2)*ZTT(JL,7)*ZTT(JL,11)
148     3 +PBTOP(JL,3)*ZTT(JL,4)*ZTT(JL,8)*ZTT(JL,12)
149     4 +PBTOP(JL,4)*ZTT(JL,5)*ZTT(JL,9)*ZTT(JL,13)
150     5 +PBTOP(JL,5)*ZTT(JL,3) *ZTT(JL,14)
151     6 +PBTOP(JL,6)*ZTT(JL,6) *ZTT(JL,15)
152     ZFD(JL)=ZCNTOP(JL)-PBINT(JL,JK)-PDISD(JL,JK)-PADJD(JL,JK)
153     PFLUC(JL,2,JK)=ZFD(JL)
154     234 CONTINUE
155     C
156     235 CONTINUE
157     C
158     JK = KFLEV+1
159     IN=(JK-1)*NG1P1+1
160     C
161     DO 236 JL = 1, KDLON
162     ZCNTOP(JL)= PBTOP(JL,1)
163     1 + PBTOP(JL,2)
164     2 + PBTOP(JL,3)
165     3 + PBTOP(JL,4)
166     4 + PBTOP(JL,5)
167     5 + PBTOP(JL,6)
168     ZFD(JL)=ZCNTOP(JL)-PBINT(JL,JK)-PDISD(JL,JK)-PADJD(JL,JK)
169     PFLUC(JL,2,JK)=ZFD(JL)
170     236 CONTINUE
171     C
172     C* 2.4 COOLING-TO-SPACE OF LAYERS ABOVE 10 HPA
173     C ---------------------------------------
174     C
175     240 CONTINUE
176     C
177     C
178     C* 2.4.1 INITIALIZATION
179     C --------------
180     C
181     2410 CONTINUE
182     C
183     JLIM = KFLEV
184     C
185     IF (.NOT.LEVOIGT) THEN
186     DO 2412 JK = KFLEV,1,-1
187     IF(PPMB(1,JK).LT.10.0) THEN
188     JLIM=JK
189     ENDIF
190     2412 CONTINUE
191     ENDIF
192     KLIM=JLIM
193     C
194     IF (.NOT.LEVOIGT) THEN
195     DO 2414 JA=1,KTRAER
196     DO 2413 JL=1, KDLON
197     ZTT1(JL,JA)=1.0
198     2413 CONTINUE
199     2414 CONTINUE
200     C
201     C* 2.4.2 LOOP OVER LAYERS ABOVE 10 HPA
202     C -----------------------------
203     C
204     2420 CONTINUE
205     C
206     DO 2427 JSTRA = KFLEV,JLIM,-1
207     JSTRU=(JSTRA-1)*NG1P1+1
208     C
209     DO 2423 JA=1,KUAER
210     DO 2422 JL=1, KDLON
211     ZUU(JL,JA)=PABCU(JL,JA,JSTRU)
212     2422 CONTINUE
213     2423 CONTINUE
214     C
215     C
216     CALL LWTT(PGA(1,1,1,JSTRA), PGB(1,1,1,JSTRA), ZUU, ZTT)
217     C
218     DO 2424 JL = 1, KDLON
219     ZCTSTR =
220     1 (PB(JL,1,JSTRA)+PB(JL,1,JSTRA+1))
221     1 *(ZTT1(JL,1) *ZTT1(JL,10)
222     1 - ZTT (JL,1) *ZTT (JL,10))
223     2 +(PB(JL,2,JSTRA)+PB(JL,2,JSTRA+1))
224     2 *(ZTT1(JL,2)*ZTT1(JL,7)*ZTT1(JL,11)
225     2 - ZTT (JL,2)*ZTT (JL,7)*ZTT (JL,11))
226     3 +(PB(JL,3,JSTRA)+PB(JL,3,JSTRA+1))
227     3 *(ZTT1(JL,4)*ZTT1(JL,8)*ZTT1(JL,12)
228     3 - ZTT (JL,4)*ZTT (JL,8)*ZTT (JL,12))
229     4 +(PB(JL,4,JSTRA)+PB(JL,4,JSTRA+1))
230     4 *(ZTT1(JL,5)*ZTT1(JL,9)*ZTT1(JL,13)
231     4 - ZTT (JL,5)*ZTT (JL,9)*ZTT (JL,13))
232     5 +(PB(JL,5,JSTRA)+PB(JL,5,JSTRA+1))
233     5 *(ZTT1(JL,3) *ZTT1(JL,14)
234     5 - ZTT (JL,3) *ZTT (JL,14))
235     6 +(PB(JL,6,JSTRA)+PB(JL,6,JSTRA+1))
236     6 *(ZTT1(JL,6) *ZTT1(JL,15)
237     6 - ZTT (JL,6) *ZTT (JL,15))
238     PCTS(JL,JSTRA)=ZCTSTR*0.5
239     2424 CONTINUE
240     DO 2426 JA=1,KTRAER
241     DO 2425 JL=1, KDLON
242     ZTT1(JL,JA)=ZTT(JL,JA)
243     2425 CONTINUE
244     2426 CONTINUE
245     2427 CONTINUE
246     ENDIF
247     C Mise a zero de securite pour PCTS en cas de LEVOIGT
248     IF(LEVOIGT)THEN
249     DO 2429 JSTRA = 1,KFLEV
250     DO 2428 JL = 1, KDLON
251     PCTS(JL,JSTRA)=0.
252     2428 CONTINUE
253     2429 CONTINUE
254     ENDIF
255     C
256     C
257     C* 2.5 EXCHANGE WITH LOWER LIMIT
258     C -------------------------
259     C
260     250 CONTINUE
261     C
262     DO 251 JL = 1, KDLON
263     ZBGND(JL)=PBSUI(JL)*PEMIS(JL)-(1.-PEMIS(JL))
264     S *PFLUC(JL,2,1)-PBINT(JL,1)
265     251 CONTINUE
266     C
267     JK = 1
268     IN=(JK-1)*NG1P1+1
269     C
270     DO 252 JL = 1, KDLON
271     ZCNSOL(JL)=PBSUR(JL,1)
272     1 +PBSUR(JL,2)
273     2 +PBSUR(JL,3)
274     3 +PBSUR(JL,4)
275     4 +PBSUR(JL,5)
276     5 +PBSUR(JL,6)
277     ZCNSOL(JL)=ZCNSOL(JL)*ZBGND(JL)/PBSUI(JL)
278     ZFU(JL)=ZCNSOL(JL)+PBINT(JL,JK)-PDISU(JL,JK)-PADJU(JL,JK)
279     PFLUC(JL,1,JK)=ZFU(JL)
280     252 CONTINUE
281     C
282     DO 257 JK = 2 , KFLEV+1
283     IN=(JK-1)*NG1P1+1
284     C
285     C
286     DO 255 JA=1,KUAER
287     DO 254 JL=1, KDLON
288     ZUU(JL,JA)=PABCU(JL,JA,1)-PABCU(JL,JA,IN)
289     254 CONTINUE
290     255 CONTINUE
291     C
292     C
293     CALL LWTT(PGASUR(1,1,1), PGBSUR(1,1,1), ZUU, ZTT)
294     C
295     DO 256 JL = 1, KDLON
296     ZCNSOL(JL)=PBSUR(JL,1)*ZTT(JL,1) *ZTT(JL,10)
297     2 +PBSUR(JL,2)*ZTT(JL,2)*ZTT(JL,7)*ZTT(JL,11)
298     3 +PBSUR(JL,3)*ZTT(JL,4)*ZTT(JL,8)*ZTT(JL,12)
299     4 +PBSUR(JL,4)*ZTT(JL,5)*ZTT(JL,9)*ZTT(JL,13)
300     5 +PBSUR(JL,5)*ZTT(JL,3) *ZTT(JL,14)
301     6 +PBSUR(JL,6)*ZTT(JL,6) *ZTT(JL,15)
302     ZCNSOL(JL)=ZCNSOL(JL)*ZBGND(JL)/PBSUI(JL)
303     ZFU(JL)=ZCNSOL(JL)+PBINT(JL,JK)-PDISU(JL,JK)-PADJU(JL,JK)
304     PFLUC(JL,1,JK)=ZFU(JL)
305     256 CONTINUE
306     C
307     C
308     257 CONTINUE
309     C
310     C
311     C
312     C* 2.7 CLEAR-SKY FLUXES
313     C ----------------
314     C
315     270 CONTINUE
316     C
317     IF (.NOT.LEVOIGT) THEN
318     DO 271 JL = 1, KDLON
319     ZFN10(JL) = PFLUC(JL,1,JLIM) + PFLUC(JL,2,JLIM)
320     271 CONTINUE
321     DO 273 JK = JLIM+1,KFLEV+1
322     DO 272 JL = 1, KDLON
323     ZFN10(JL) = ZFN10(JL) + PCTS(JL,JK-1)
324     PFLUC(JL,1,JK) = ZFN10(JL)
325     PFLUC(JL,2,JK) = 0.
326     272 CONTINUE
327     273 CONTINUE
328     ENDIF
329     C
330     C ------------------------------------------------------------------
331     C
332     RETURN
333     END

  ViewVC Help
Powered by ViewVC 1.1.21