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