1 |
guez |
24 |
SUBROUTINE LWVN(KUAER,KTRAER |
2 |
|
|
R , PABCU,PDBSL,PGA,PGB |
3 |
|
|
S , PADJD,PADJU,PCNTRB,PDBDT) |
4 |
|
|
use dimens_m |
5 |
|
|
use dimphy |
6 |
|
|
use raddim |
7 |
|
|
use raddimlw |
8 |
|
|
IMPLICIT none |
9 |
|
|
C |
10 |
|
|
C----------------------------------------------------------------------- |
11 |
|
|
C PURPOSE. |
12 |
|
|
C -------- |
13 |
|
|
C CARRIES OUT THE VERTICAL INTEGRATION ON NEARBY LAYERS |
14 |
|
|
C TO GIVE LONGWAVE FLUXES OR RADIANCES |
15 |
|
|
C |
16 |
|
|
C METHOD. |
17 |
|
|
C ------- |
18 |
|
|
C |
19 |
|
|
C 1. PERFORMS THE VERTICAL INTEGRATION CORRESPONDING TO THE |
20 |
|
|
C CONTRIBUTIONS OF THE ADJACENT LAYERS USING A GAUSSIAN QUADRATURE |
21 |
|
|
C |
22 |
|
|
C REFERENCE. |
23 |
|
|
C ---------- |
24 |
|
|
C |
25 |
|
|
C SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND |
26 |
|
|
C ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS |
27 |
|
|
C |
28 |
|
|
C AUTHOR. |
29 |
|
|
C ------- |
30 |
|
|
C JEAN-JACQUES MORCRETTE *ECMWF* |
31 |
|
|
C |
32 |
|
|
C MODIFICATIONS. |
33 |
|
|
C -------------- |
34 |
|
|
C ORIGINAL : 89-07-14 |
35 |
|
|
C----------------------------------------------------------------------- |
36 |
|
|
C |
37 |
|
|
C* ARGUMENTS: |
38 |
|
|
C |
39 |
|
|
INTEGER KUAER,KTRAER |
40 |
|
|
C |
41 |
guez |
71 |
DOUBLE PRECISION PABCU(KDLON,NUA,3*KFLEV+1) ! ABSORBER AMOUNTS |
42 |
|
|
DOUBLE PRECISION PDBSL(KDLON,Ninter,KFLEV*2) ! SUB-LAYER PLANCK FUNCTION GRADIENT |
43 |
|
|
DOUBLE PRECISION PGA(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS |
44 |
|
|
DOUBLE PRECISION PGB(KDLON,8,2,KFLEV) ! PADE APPROXIMANTS |
45 |
guez |
24 |
C |
46 |
guez |
71 |
DOUBLE PRECISION PADJD(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS |
47 |
|
|
DOUBLE PRECISION PADJU(KDLON,KFLEV+1) ! CONTRIBUTION OF ADJACENT LAYERS |
48 |
|
|
DOUBLE PRECISION PCNTRB(KDLON,KFLEV+1,KFLEV+1) ! CLEAR-SKY ENERGY EXCHANGE MATRIX |
49 |
|
|
DOUBLE PRECISION PDBDT(KDLON,Ninter,KFLEV) ! LAYER PLANCK FUNCTION GRADIENT |
50 |
guez |
24 |
C |
51 |
|
|
C* LOCAL ARRAYS: |
52 |
|
|
C |
53 |
guez |
71 |
DOUBLE PRECISION ZGLAYD(KDLON) |
54 |
|
|
DOUBLE PRECISION ZGLAYU(KDLON) |
55 |
|
|
DOUBLE PRECISION ZTT(KDLON,NTRA) |
56 |
|
|
DOUBLE PRECISION ZTT1(KDLON,NTRA) |
57 |
|
|
DOUBLE PRECISION ZTT2(KDLON,NTRA) |
58 |
|
|
DOUBLE PRECISION ZUU(KDLON,NUA) |
59 |
guez |
24 |
C |
60 |
|
|
INTEGER jk, jl, ja, im12, ind, inu, ixu, jg |
61 |
|
|
INTEGER ixd, ibs, idd, imu, jk1, jk2, jnu |
62 |
guez |
71 |
DOUBLE PRECISION zwtr |
63 |
guez |
24 |
c |
64 |
|
|
C* Data Block: |
65 |
|
|
c |
66 |
guez |
71 |
DOUBLE PRECISION WG1(2) |
67 |
guez |
24 |
SAVE WG1 |
68 |
|
|
DATA (WG1(jk),jk=1,2) /1.0, 1.0/ |
69 |
|
|
C----------------------------------------------------------------------- |
70 |
|
|
C |
71 |
|
|
C* 1. INITIALIZATION |
72 |
|
|
C -------------- |
73 |
|
|
C |
74 |
|
|
100 CONTINUE |
75 |
|
|
C |
76 |
|
|
C* 1.1 INITIALIZE LAYER CONTRIBUTIONS |
77 |
|
|
C ------------------------------ |
78 |
|
|
C |
79 |
|
|
110 CONTINUE |
80 |
|
|
C |
81 |
|
|
DO 112 JK = 1 , KFLEV+1 |
82 |
|
|
DO 111 JL = 1, KDLON |
83 |
|
|
PADJD(JL,JK) = 0. |
84 |
|
|
PADJU(JL,JK) = 0. |
85 |
|
|
111 CONTINUE |
86 |
|
|
112 CONTINUE |
87 |
|
|
C |
88 |
|
|
C* 1.2 INITIALIZE TRANSMISSION FUNCTIONS |
89 |
|
|
C --------------------------------- |
90 |
|
|
C |
91 |
|
|
120 CONTINUE |
92 |
|
|
C |
93 |
|
|
DO 122 JA = 1 , NTRA |
94 |
|
|
DO 121 JL = 1, KDLON |
95 |
|
|
ZTT (JL,JA) = 1.0 |
96 |
|
|
ZTT1(JL,JA) = 1.0 |
97 |
|
|
ZTT2(JL,JA) = 1.0 |
98 |
|
|
121 CONTINUE |
99 |
|
|
122 CONTINUE |
100 |
|
|
C |
101 |
|
|
DO 124 JA = 1 , NUA |
102 |
|
|
DO 123 JL = 1, KDLON |
103 |
|
|
ZUU(JL,JA) = 0. |
104 |
|
|
123 CONTINUE |
105 |
|
|
124 CONTINUE |
106 |
|
|
C |
107 |
|
|
C ------------------------------------------------------------------ |
108 |
|
|
C |
109 |
|
|
C* 2. VERTICAL INTEGRATION |
110 |
|
|
C -------------------- |
111 |
|
|
C |
112 |
|
|
200 CONTINUE |
113 |
|
|
C |
114 |
|
|
C |
115 |
|
|
C* 2.1 CONTRIBUTION FROM ADJACENT LAYERS |
116 |
|
|
C --------------------------------- |
117 |
|
|
C |
118 |
|
|
210 CONTINUE |
119 |
|
|
C |
120 |
|
|
DO 215 JK = 1 , KFLEV |
121 |
|
|
C |
122 |
|
|
C* 2.1.1 DOWNWARD LAYERS |
123 |
|
|
C --------------- |
124 |
|
|
C |
125 |
|
|
2110 CONTINUE |
126 |
|
|
C |
127 |
|
|
IM12 = 2 * (JK - 1) |
128 |
|
|
IND = (JK - 1) * NG1P1 + 1 |
129 |
|
|
IXD = IND |
130 |
|
|
INU = JK * NG1P1 + 1 |
131 |
|
|
IXU = IND |
132 |
|
|
C |
133 |
|
|
DO 2111 JL = 1, KDLON |
134 |
|
|
ZGLAYD(JL) = 0. |
135 |
|
|
ZGLAYU(JL) = 0. |
136 |
|
|
2111 CONTINUE |
137 |
|
|
C |
138 |
|
|
DO 213 JG = 1 , NG1 |
139 |
|
|
IBS = IM12 + JG |
140 |
|
|
IDD = IXD + JG |
141 |
|
|
DO 2113 JA = 1 , KUAER |
142 |
|
|
DO 2112 JL = 1, KDLON |
143 |
|
|
ZUU(JL,JA) = PABCU(JL,JA,IND) - PABCU(JL,JA,IDD) |
144 |
|
|
2112 CONTINUE |
145 |
|
|
2113 CONTINUE |
146 |
|
|
C |
147 |
|
|
C |
148 |
|
|
CALL LWTT(PGA(1,1,1,JK), PGB(1,1,1,JK), ZUU, ZTT) |
149 |
|
|
C |
150 |
|
|
DO 2114 JL = 1, KDLON |
151 |
|
|
ZWTR=PDBSL(JL,1,IBS)*ZTT(JL,1) *ZTT(JL,10) |
152 |
|
|
S +PDBSL(JL,2,IBS)*ZTT(JL,2)*ZTT(JL,7)*ZTT(JL,11) |
153 |
|
|
S +PDBSL(JL,3,IBS)*ZTT(JL,4)*ZTT(JL,8)*ZTT(JL,12) |
154 |
|
|
S +PDBSL(JL,4,IBS)*ZTT(JL,5)*ZTT(JL,9)*ZTT(JL,13) |
155 |
|
|
S +PDBSL(JL,5,IBS)*ZTT(JL,3) *ZTT(JL,14) |
156 |
|
|
S +PDBSL(JL,6,IBS)*ZTT(JL,6) *ZTT(JL,15) |
157 |
|
|
ZGLAYD(JL)=ZGLAYD(JL)+ZWTR*WG1(JG) |
158 |
|
|
2114 CONTINUE |
159 |
|
|
C |
160 |
|
|
C* 2.1.2 DOWNWARD LAYERS |
161 |
|
|
C --------------- |
162 |
|
|
C |
163 |
|
|
2120 CONTINUE |
164 |
|
|
C |
165 |
|
|
IMU = IXU + JG |
166 |
|
|
DO 2122 JA = 1 , KUAER |
167 |
|
|
DO 2121 JL = 1, KDLON |
168 |
|
|
ZUU(JL,JA) = PABCU(JL,JA,IMU) - PABCU(JL,JA,INU) |
169 |
|
|
2121 CONTINUE |
170 |
|
|
2122 CONTINUE |
171 |
|
|
C |
172 |
|
|
C |
173 |
|
|
CALL LWTT(PGA(1,1,1,JK), PGB(1,1,1,JK), ZUU, ZTT) |
174 |
|
|
C |
175 |
|
|
DO 2123 JL = 1, KDLON |
176 |
|
|
ZWTR=PDBSL(JL,1,IBS)*ZTT(JL,1) *ZTT(JL,10) |
177 |
|
|
S +PDBSL(JL,2,IBS)*ZTT(JL,2)*ZTT(JL,7)*ZTT(JL,11) |
178 |
|
|
S +PDBSL(JL,3,IBS)*ZTT(JL,4)*ZTT(JL,8)*ZTT(JL,12) |
179 |
|
|
S +PDBSL(JL,4,IBS)*ZTT(JL,5)*ZTT(JL,9)*ZTT(JL,13) |
180 |
|
|
S +PDBSL(JL,5,IBS)*ZTT(JL,3) *ZTT(JL,14) |
181 |
|
|
S +PDBSL(JL,6,IBS)*ZTT(JL,6) *ZTT(JL,15) |
182 |
|
|
ZGLAYU(JL)=ZGLAYU(JL)+ZWTR*WG1(JG) |
183 |
|
|
2123 CONTINUE |
184 |
|
|
C |
185 |
|
|
213 CONTINUE |
186 |
|
|
C |
187 |
|
|
DO 214 JL = 1, KDLON |
188 |
|
|
PADJD(JL,JK) = ZGLAYD(JL) |
189 |
|
|
PCNTRB(JL,JK,JK+1) = ZGLAYD(JL) |
190 |
|
|
PADJU(JL,JK+1) = ZGLAYU(JL) |
191 |
|
|
PCNTRB(JL,JK+1,JK) = ZGLAYU(JL) |
192 |
|
|
PCNTRB(JL,JK ,JK) = 0.0 |
193 |
|
|
214 CONTINUE |
194 |
|
|
C |
195 |
|
|
215 CONTINUE |
196 |
|
|
C |
197 |
|
|
DO 218 JK = 1 , KFLEV |
198 |
|
|
JK2 = 2 * JK |
199 |
|
|
JK1 = JK2 - 1 |
200 |
|
|
DO 217 JNU = 1 , Ninter |
201 |
|
|
DO 216 JL = 1, KDLON |
202 |
|
|
PDBDT(JL,JNU,JK) = PDBSL(JL,JNU,JK1) + PDBSL(JL,JNU,JK2) |
203 |
|
|
216 CONTINUE |
204 |
|
|
217 CONTINUE |
205 |
|
|
218 CONTINUE |
206 |
|
|
C |
207 |
|
|
RETURN |
208 |
|
|
C |
209 |
|
|
END |