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

Contents of /trunk/libf/phylmd/Radlwsw/lwvb.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: 9424 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 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 DOUBLE PRECISION PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS
50 DOUBLE PRECISION PADJD(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
51 DOUBLE PRECISION PADJU(KDLON,KFLEV+1) ! CONTRIBUTION BY ADJACENT LAYERS
52 DOUBLE PRECISION PB(KDLON,Ninter,KFLEV+1) ! SPECTRAL HALF-LEVEL PLANCK FUNCTIONS
53 DOUBLE PRECISION PBINT(KDLON,KFLEV+1) ! HALF-LEVEL PLANCK FUNCTIONS
54 DOUBLE PRECISION PBSUR(KDLON,Ninter) ! SPECTRAL SURFACE PLANCK FUNCTION
55 DOUBLE PRECISION PBSUI(KDLON) ! SURFACE PLANCK FUNCTION
56 DOUBLE PRECISION PBTOP(KDLON,Ninter) ! SPECTRAL T.O.A. PLANCK FUNCTION
57 DOUBLE PRECISION PDISD(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
58 DOUBLE PRECISION PDISU(KDLON,KFLEV+1) ! CONTRIBUTION BY DISTANT LAYERS
59 DOUBLE PRECISION PEMIS(KDLON) ! SURFACE EMISSIVITY
60 DOUBLE PRECISION PPMB(KDLON,KFLEV+1) ! PRESSURE MB
61 DOUBLE PRECISION PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
62 DOUBLE PRECISION PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS
63 DOUBLE PRECISION PGASUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
64 DOUBLE PRECISION PGBSUR(KDLON,8,2) ! SURFACE PADE APPROXIMANTS
65 DOUBLE PRECISION PGATOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
66 DOUBLE PRECISION PGBTOP(KDLON,8,2) ! T.O.A. PADE APPROXIMANTS
67 C
68 DOUBLE PRECISION PFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
69 DOUBLE PRECISION PCTS(KDLON,KFLEV) ! COOLING-TO-SPACE TERM
70 C
71 C* LOCAL VARIABLES:
72 C
73 DOUBLE PRECISION ZBGND(KDLON)
74 DOUBLE PRECISION ZFD(KDLON)
75 DOUBLE PRECISION ZFN10(KDLON)
76 DOUBLE PRECISION ZFU(KDLON)
77 DOUBLE PRECISION ZTT(KDLON,NTRA)
78 DOUBLE PRECISION ZTT1(KDLON,NTRA)
79 DOUBLE PRECISION ZTT2(KDLON,NTRA)
80 DOUBLE PRECISION ZUU(KDLON,NUA)
81 DOUBLE PRECISION ZCNSOL(KDLON)
82 DOUBLE PRECISION ZCNTOP(KDLON)
83 C
84 INTEGER jk, jl, ja
85 INTEGER jstra, jstru
86 INTEGER ind1, ind2, ind3, ind4, in, jlim
87 DOUBLE PRECISION 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