/[lmdze]/trunk/dyn3d/advxp.f
ViewVC logotype

Contents of /trunk/dyn3d/advxp.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 76 - (show annotations)
Fri Nov 15 18:45:49 2013 UTC (10 years, 6 months ago) by guez
File size: 17567 byte(s)
Moved everything out of libf.
1 !
2 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/advxp.F,v 1.1.1.1 2004/05/19 12:53:06 lmdzadmin Exp $
3 !
4 SUBROUTINE ADVXP(LIMIT,DTX,PBARU,SM,S0,SSX,SY,SZ
5 . ,SSXX,SSXY,SSXZ,SYY,SYZ,SZZ,ntra)
6 use dimens_m
7 use paramet_m
8 use comconst
9 use disvert_m
10 IMPLICIT NONE
11 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
12 C C
13 C second-order moments (SOM) advection of tracer in X direction C
14 C C
15 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
16 C
17 C parametres principaux du modele
18 C
19
20 INTEGER ntra
21 c PARAMETER (ntra = 1)
22 C
23 C definition de la grille du modele
24 C
25 REAL dtx
26 REAL, intent(in):: pbaru ( iip1,jjp1,llm )
27 C
28 C moments: SM total mass in each grid box
29 C S0 mass of tracer in each grid box
30 C Si 1rst order moment in i direction
31 C Sij 2nd order moment in i and j directions
32 C
33 REAL SM(iip1,jjp1,llm)
34 + ,S0(iip1,jjp1,llm,ntra)
35 REAL SSX(iip1,jjp1,llm,ntra)
36 + ,SY(iip1,jjp1,llm,ntra)
37 + ,SZ(iip1,jjp1,llm,ntra)
38 REAL SSXX(iip1,jjp1,llm,ntra)
39 + ,SSXY(iip1,jjp1,llm,ntra)
40 + ,SSXZ(iip1,jjp1,llm,ntra)
41 + ,SYY(iip1,jjp1,llm,ntra)
42 + ,SYZ(iip1,jjp1,llm,ntra)
43 + ,SZZ(iip1,jjp1,llm,ntra)
44
45 C Local :
46 C -------
47
48 C mass fluxes across the boundaries (UGRI,VGRI,WGRI)
49 C mass fluxes in kg
50 C declaration :
51
52 REAL UGRI(iip1,jjp1,llm)
53
54 C Rem : VGRI et WGRI ne sont pas utilises dans
55 C cette subroutine ( advection en x uniquement )
56 C
57 C
58 C Tij are the moments for the current latitude and level
59 C
60 REAL TM (iim)
61 REAL T0 (iim,NTRA),TX (iim,NTRA)
62 REAL TY (iim,NTRA),TZ (iim,NTRA)
63 REAL TXX(iim,NTRA),TXY(iim,NTRA)
64 REAL TXZ(iim,NTRA),TYY(iim,NTRA)
65 REAL TYZ(iim,NTRA),TZZ(iim,NTRA)
66 C
67 C the moments F are similarly defined and used as temporary
68 C storage for portions of the grid boxes in transit
69 C
70 REAL FM (iim)
71 REAL F0 (iim,NTRA),FX (iim,NTRA)
72 REAL FY (iim,NTRA),FZ (iim,NTRA)
73 REAL FXX(iim,NTRA),FXY(iim,NTRA)
74 REAL FXZ(iim,NTRA),FYY(iim,NTRA)
75 REAL FYZ(iim,NTRA),FZZ(iim,NTRA)
76 C
77 C work arrays
78 C
79 REAL ALF (iim),ALF1(iim),ALFQ(iim),ALF1Q(iim)
80 REAL ALF2(iim),ALF3(iim),ALF4(iim)
81 C
82 REAL SMNEW(iim),UEXT(iim)
83 REAL sqi,sqf
84 REAL TEMPTM
85 REAL SLPMAX
86 REAL S1MAX,S1NEW,S2NEW
87
88 LOGICAL LIMIT
89 INTEGER NUM(jjp1),LONK,NUMK
90 INTEGER lon,lati,latf,niv
91 INTEGER i,i2,i3,j,jv,l,k,iter
92
93 lon = iim
94 lati=2
95 latf = jjm
96 niv = llm
97
98 C *** Test : diagnostique de la qtite totale de traceur
99 C dans l'atmosphere avant l'advection
100 c
101 sqi =0.
102 sqf =0.
103 c
104 DO l = 1, llm
105 DO j = 1, jjp1
106 DO i = 1, iim
107 sqi = sqi + S0(i,j,l,ntra)
108 END DO
109 END DO
110 END DO
111 PRINT*,'------ DIAG DANS ADVX2 - ENTREE -----'
112 PRINT*,'sqi=',sqi
113 c test
114 c -------------------------------------
115 DO 300 j =1,jjp1
116 NUM(j) =1
117 300 CONTINUE
118 c DO l=1,llm
119 c NUM(2,l)=6
120 c NUM(3,l)=6
121 c NUM(jjm-1,l)=6
122 c NUM(jjm,l)=6
123 c ENDDO
124 c DO j=2,6
125 c NUM(j)=12
126 c ENDDO
127 c DO j=jjm-5,jjm-1
128 c NUM(j)=12
129 c ENDDO
130
131 C Interface : adaptation nouveau modele
132 C -------------------------------------
133 C
134 C ---------------------------------------------------------
135 C Conversion des flux de masses en kg/s
136 C pbaru est en N/s d'ou :
137 C ugri est en kg/s
138
139 DO 500 l = 1,llm
140 DO 500 j = 1,jjp1
141 DO 500 i = 1,iip1
142 ugri (i,j,llm+1-l) =pbaru (i,j,l)
143 500 CONTINUE
144
145 C ---------------------------------------------------------
146 C start here
147 C
148 C boucle principale sur les niveaux et les latitudes
149 C
150 DO 1 L=1,NIV
151 DO 1 K=lati,latf
152
153 C
154 C initialisation
155 C
156 C program assumes periodic boundaries in X
157 C
158 DO 10 I=2,LON
159 SMNEW(I)=SM(I,K,L)+(UGRI(I-1,K,L)-UGRI(I,K,L))*DTX
160 10 CONTINUE
161 SMNEW(1)=SM(1,K,L)+(UGRI(LON,K,L)-UGRI(1,K,L))*DTX
162 C
163 C modifications for extended polar zones
164 C
165 NUMK=NUM(K)
166 LONK=LON/NUMK
167 C
168 IF(NUMK.GT.1) THEN
169 C
170 DO 111 I=1,LON
171 TM(I)=0.
172 111 CONTINUE
173 DO 112 JV=1,NTRA
174 DO 1120 I=1,LON
175 T0 (I,JV)=0.
176 TX (I,JV)=0.
177 TY (I,JV)=0.
178 TZ (I,JV)=0.
179 TXX(I,JV)=0.
180 TXY(I,JV)=0.
181 TXZ(I,JV)=0.
182 TYY(I,JV)=0.
183 TYZ(I,JV)=0.
184 TZZ(I,JV)=0.
185 1120 CONTINUE
186 112 CONTINUE
187 C
188 DO 11 I2=1,NUMK
189 C
190 DO 113 I=1,LONK
191 I3=(I-1)*NUMK+I2
192 TM(I)=TM(I)+SM(I3,K,L)
193 ALF(I)=SM(I3,K,L)/TM(I)
194 ALF1(I)=1.-ALF(I)
195 ALFQ(I)=ALF(I)*ALF(I)
196 ALF1Q(I)=ALF1(I)*ALF1(I)
197 ALF2(I)=ALF1(I)-ALF(I)
198 ALF3(I)=ALF(I)*ALF1(I)
199 113 CONTINUE
200 C
201 DO 114 JV=1,NTRA
202 DO 1140 I=1,LONK
203 I3=(I-1)*NUMK+I2
204 TEMPTM=-ALF(I)*T0(I,JV)+ALF1(I)*S0(I3,K,L,JV)
205 T0 (I,JV)=T0(I,JV)+S0(I3,K,L,JV)
206 TXX(I,JV)=ALFQ(I)*SSXX(I3,K,L,JV)+ALF1Q(I)*TXX(I,JV)
207 + +5.*( ALF3(I)*(SSX(I3,K,L,JV)-TX(I,JV))+ALF2(I)*TEMPTM )
208 TX (I,JV)=ALF(I)*SSX(I3,K,L,JV)+ALF1(I)*TX(I,JV)+3.*TEMPTM
209 TXY(I,JV)=ALF (I)*SSXY(I3,K,L,JV)+ALF1(I)*TXY(I,JV)
210 + +3.*(ALF1(I)*SY (I3,K,L,JV)-ALF (I)*TY (I,JV))
211 TXZ(I,JV)=ALF (I)*SSXZ(I3,K,L,JV)+ALF1(I)*TXZ(I,JV)
212 + +3.*(ALF1(I)*SZ (I3,K,L,JV)-ALF (I)*TZ (I,JV))
213 TY (I,JV)=TY (I,JV)+SY (I3,K,L,JV)
214 TZ (I,JV)=TZ (I,JV)+SZ (I3,K,L,JV)
215 TYY(I,JV)=TYY(I,JV)+SYY(I3,K,L,JV)
216 TYZ(I,JV)=TYZ(I,JV)+SYZ(I3,K,L,JV)
217 TZZ(I,JV)=TZZ(I,JV)+SZZ(I3,K,L,JV)
218 1140 CONTINUE
219 114 CONTINUE
220 C
221 11 CONTINUE
222 C
223 ELSE
224 C
225 DO 115 I=1,LON
226 TM(I)=SM(I,K,L)
227 115 CONTINUE
228 DO 116 JV=1,NTRA
229 DO 1160 I=1,LON
230 T0 (I,JV)=S0 (I,K,L,JV)
231 TX (I,JV)=SSX (I,K,L,JV)
232 TY (I,JV)=SY (I,K,L,JV)
233 TZ (I,JV)=SZ (I,K,L,JV)
234 TXX(I,JV)=SSXX(I,K,L,JV)
235 TXY(I,JV)=SSXY(I,K,L,JV)
236 TXZ(I,JV)=SSXZ(I,K,L,JV)
237 TYY(I,JV)=SYY(I,K,L,JV)
238 TYZ(I,JV)=SYZ(I,K,L,JV)
239 TZZ(I,JV)=SZZ(I,K,L,JV)
240 1160 CONTINUE
241 116 CONTINUE
242 C
243 ENDIF
244 C
245 DO 117 I=1,LONK
246 UEXT(I)=UGRI(I*NUMK,K,L)
247 117 CONTINUE
248 C
249 C place limits on appropriate moments before transport
250 C (if flux-limiting is to be applied)
251 C
252 IF(.NOT.LIMIT) GO TO 13
253 C
254 DO 12 JV=1,NTRA
255 DO 120 I=1,LONK
256 IF(T0(I,JV).GT.0.) THEN
257 SLPMAX=T0(I,JV)
258 S1MAX=1.5*SLPMAX
259 S1NEW=AMIN1(S1MAX,AMAX1(-S1MAX,TX(I,JV)))
260 S2NEW=AMIN1( 2.*SLPMAX-ABS(S1NEW)/3. ,
261 + AMAX1(ABS(S1NEW)-SLPMAX,TXX(I,JV)) )
262 TX (I,JV)=S1NEW
263 TXX(I,JV)=S2NEW
264 TXY(I,JV)=AMIN1(SLPMAX,AMAX1(-SLPMAX,TXY(I,JV)))
265 TXZ(I,JV)=AMIN1(SLPMAX,AMAX1(-SLPMAX,TXZ(I,JV)))
266 ELSE
267 TX (I,JV)=0.
268 TXX(I,JV)=0.
269 TXY(I,JV)=0.
270 TXZ(I,JV)=0.
271 ENDIF
272 120 CONTINUE
273 12 CONTINUE
274 C
275 13 CONTINUE
276 C
277 C calculate flux and moments between adjacent boxes
278 C 1- create temporary moments/masses for partial boxes in transit
279 C 2- reajusts moments remaining in the box
280 C
281 C flux from IP to I if U(I).lt.0
282 C
283 DO 140 I=1,LONK-1
284 IF(UEXT(I).LT.0.) THEN
285 FM(I)=-UEXT(I)*DTX
286 ALF(I)=FM(I)/TM(I+1)
287 TM(I+1)=TM(I+1)-FM(I)
288 ENDIF
289 140 CONTINUE
290 C
291 I=LONK
292 IF(UEXT(I).LT.0.) THEN
293 FM(I)=-UEXT(I)*DTX
294 ALF(I)=FM(I)/TM(1)
295 TM(1)=TM(1)-FM(I)
296 ENDIF
297 C
298 C flux from I to IP if U(I).gt.0
299 C
300 DO 141 I=1,LONK
301 IF(UEXT(I).GE.0.) THEN
302 FM(I)=UEXT(I)*DTX
303 ALF(I)=FM(I)/TM(I)
304 TM(I)=TM(I)-FM(I)
305 ENDIF
306 141 CONTINUE
307 C
308 DO 142 I=1,LONK
309 ALFQ(I)=ALF(I)*ALF(I)
310 ALF1(I)=1.-ALF(I)
311 ALF1Q(I)=ALF1(I)*ALF1(I)
312 ALF2(I)=ALF1(I)-ALF(I)
313 ALF3(I)=ALF(I)*ALFQ(I)
314 ALF4(I)=ALF1(I)*ALF1Q(I)
315 142 CONTINUE
316 C
317 DO 150 JV=1,NTRA
318 DO 1500 I=1,LONK-1
319 C
320 IF(UEXT(I).LT.0.) THEN
321 C
322 F0 (I,JV)=ALF (I)* ( T0(I+1,JV)-ALF1(I)*
323 + ( TX(I+1,JV)-ALF2(I)*TXX(I+1,JV) ) )
324 FX (I,JV)=ALFQ(I)*(TX(I+1,JV)-3.*ALF1(I)*TXX(I+1,JV))
325 FXX(I,JV)=ALF3(I)*TXX(I+1,JV)
326 FY (I,JV)=ALF (I)*(TY(I+1,JV)-ALF1(I)*TXY(I+1,JV))
327 FZ (I,JV)=ALF (I)*(TZ(I+1,JV)-ALF1(I)*TXZ(I+1,JV))
328 FXY(I,JV)=ALFQ(I)*TXY(I+1,JV)
329 FXZ(I,JV)=ALFQ(I)*TXZ(I+1,JV)
330 FYY(I,JV)=ALF (I)*TYY(I+1,JV)
331 FYZ(I,JV)=ALF (I)*TYZ(I+1,JV)
332 FZZ(I,JV)=ALF (I)*TZZ(I+1,JV)
333 C
334 T0 (I+1,JV)=T0(I+1,JV)-F0(I,JV)
335 TX (I+1,JV)=ALF1Q(I)*(TX(I+1,JV)+3.*ALF(I)*TXX(I+1,JV))
336 TXX(I+1,JV)=ALF4(I)*TXX(I+1,JV)
337 TY (I+1,JV)=TY (I+1,JV)-FY (I,JV)
338 TZ (I+1,JV)=TZ (I+1,JV)-FZ (I,JV)
339 TYY(I+1,JV)=TYY(I+1,JV)-FYY(I,JV)
340 TYZ(I+1,JV)=TYZ(I+1,JV)-FYZ(I,JV)
341 TZZ(I+1,JV)=TZZ(I+1,JV)-FZZ(I,JV)
342 TXY(I+1,JV)=ALF1Q(I)*TXY(I+1,JV)
343 TXZ(I+1,JV)=ALF1Q(I)*TXZ(I+1,JV)
344 C
345 ENDIF
346 C
347 1500 CONTINUE
348 150 CONTINUE
349 C
350 I=LONK
351 IF(UEXT(I).LT.0.) THEN
352 C
353 DO 151 JV=1,NTRA
354 C
355 F0 (I,JV)=ALF (I)* ( T0(1,JV)-ALF1(I)*
356 + ( TX(1,JV)-ALF2(I)*TXX(1,JV) ) )
357 FX (I,JV)=ALFQ(I)*(TX(1,JV)-3.*ALF1(I)*TXX(1,JV))
358 FXX(I,JV)=ALF3(I)*TXX(1,JV)
359 FY (I,JV)=ALF (I)*(TY(1,JV)-ALF1(I)*TXY(1,JV))
360 FZ (I,JV)=ALF (I)*(TZ(1,JV)-ALF1(I)*TXZ(1,JV))
361 FXY(I,JV)=ALFQ(I)*TXY(1,JV)
362 FXZ(I,JV)=ALFQ(I)*TXZ(1,JV)
363 FYY(I,JV)=ALF (I)*TYY(1,JV)
364 FYZ(I,JV)=ALF (I)*TYZ(1,JV)
365 FZZ(I,JV)=ALF (I)*TZZ(1,JV)
366 C
367 T0 (1,JV)=T0(1,JV)-F0(I,JV)
368 TX (1,JV)=ALF1Q(I)*(TX(1,JV)+3.*ALF(I)*TXX(1,JV))
369 TXX(1,JV)=ALF4(I)*TXX(1,JV)
370 TY (1,JV)=TY (1,JV)-FY (I,JV)
371 TZ (1,JV)=TZ (1,JV)-FZ (I,JV)
372 TYY(1,JV)=TYY(1,JV)-FYY(I,JV)
373 TYZ(1,JV)=TYZ(1,JV)-FYZ(I,JV)
374 TZZ(1,JV)=TZZ(1,JV)-FZZ(I,JV)
375 TXY(1,JV)=ALF1Q(I)*TXY(1,JV)
376 TXZ(1,JV)=ALF1Q(I)*TXZ(1,JV)
377 C
378 151 CONTINUE
379 C
380 ENDIF
381 C
382 DO 152 JV=1,NTRA
383 DO 1520 I=1,LONK
384 C
385 IF(UEXT(I).GE.0.) THEN
386 C
387 F0 (I,JV)=ALF (I)* ( T0(I,JV)+ALF1(I)*
388 + ( TX(I,JV)+ALF2(I)*TXX(I,JV) ) )
389 FX (I,JV)=ALFQ(I)*(TX(I,JV)+3.*ALF1(I)*TXX(I,JV))
390 FXX(I,JV)=ALF3(I)*TXX(I,JV)
391 FY (I,JV)=ALF (I)*(TY(I,JV)+ALF1(I)*TXY(I,JV))
392 FZ (I,JV)=ALF (I)*(TZ(I,JV)+ALF1(I)*TXZ(I,JV))
393 FXY(I,JV)=ALFQ(I)*TXY(I,JV)
394 FXZ(I,JV)=ALFQ(I)*TXZ(I,JV)
395 FYY(I,JV)=ALF (I)*TYY(I,JV)
396 FYZ(I,JV)=ALF (I)*TYZ(I,JV)
397 FZZ(I,JV)=ALF (I)*TZZ(I,JV)
398 C
399 T0 (I,JV)=T0(I,JV)-F0(I,JV)
400 TX (I,JV)=ALF1Q(I)*(TX(I,JV)-3.*ALF(I)*TXX(I,JV))
401 TXX(I,JV)=ALF4(I)*TXX(I,JV)
402 TY (I,JV)=TY (I,JV)-FY (I,JV)
403 TZ (I,JV)=TZ (I,JV)-FZ (I,JV)
404 TYY(I,JV)=TYY(I,JV)-FYY(I,JV)
405 TYZ(I,JV)=TYZ(I,JV)-FYZ(I,JV)
406 TZZ(I,JV)=TZZ(I,JV)-FZZ(I,JV)
407 TXY(I,JV)=ALF1Q(I)*TXY(I,JV)
408 TXZ(I,JV)=ALF1Q(I)*TXZ(I,JV)
409 C
410 ENDIF
411 C
412 1520 CONTINUE
413 152 CONTINUE
414 C
415 C puts the temporary moments Fi into appropriate neighboring boxes
416 C
417 DO 160 I=1,LONK
418 IF(UEXT(I).LT.0.) THEN
419 TM(I)=TM(I)+FM(I)
420 ALF(I)=FM(I)/TM(I)
421 ENDIF
422 160 CONTINUE
423 C
424 DO 161 I=1,LONK-1
425 IF(UEXT(I).GE.0.) THEN
426 TM(I+1)=TM(I+1)+FM(I)
427 ALF(I)=FM(I)/TM(I+1)
428 ENDIF
429 161 CONTINUE
430 C
431 I=LONK
432 IF(UEXT(I).GE.0.) THEN
433 TM(1)=TM(1)+FM(I)
434 ALF(I)=FM(I)/TM(1)
435 ENDIF
436 C
437 DO 162 I=1,LONK
438 ALF1(I)=1.-ALF(I)
439 ALFQ(I)=ALF(I)*ALF(I)
440 ALF1Q(I)=ALF1(I)*ALF1(I)
441 ALF2(I)=ALF1(I)-ALF(I)
442 ALF3(I)=ALF(I)*ALF1(I)
443 162 CONTINUE
444 C
445 DO 170 JV=1,NTRA
446 DO 1700 I=1,LONK
447 C
448 IF(UEXT(I).LT.0.) THEN
449 C
450 TEMPTM=-ALF(I)*T0(I,JV)+ALF1(I)*F0(I,JV)
451 T0 (I,JV)=T0(I,JV)+F0(I,JV)
452 TXX(I,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(I,JV)
453 + +5.*( ALF3(I)*(FX(I,JV)-TX(I,JV))+ALF2(I)*TEMPTM )
454 TX (I,JV)=ALF (I)*FX (I,JV)+ALF1(I)*TX (I,JV)+3.*TEMPTM
455 TXY(I,JV)=ALF (I)*FXY(I,JV)+ALF1(I)*TXY(I,JV)
456 + +3.*(ALF1(I)*FY (I,JV)-ALF (I)*TY (I,JV))
457 TXZ(I,JV)=ALF (I)*FXZ(I,JV)+ALF1(I)*TXZ(I,JV)
458 + +3.*(ALF1(I)*FZ (I,JV)-ALF (I)*TZ (I,JV))
459 TY (I,JV)=TY (I,JV)+FY (I,JV)
460 TZ (I,JV)=TZ (I,JV)+FZ (I,JV)
461 TYY(I,JV)=TYY(I,JV)+FYY(I,JV)
462 TYZ(I,JV)=TYZ(I,JV)+FYZ(I,JV)
463 TZZ(I,JV)=TZZ(I,JV)+FZZ(I,JV)
464 C
465 ENDIF
466 C
467 1700 CONTINUE
468 170 CONTINUE
469 C
470 DO 171 JV=1,NTRA
471 DO 1710 I=1,LONK-1
472 C
473 IF(UEXT(I).GE.0.) THEN
474 C
475 TEMPTM=ALF(I)*T0(I+1,JV)-ALF1(I)*F0(I,JV)
476 T0 (I+1,JV)=T0(I+1,JV)+F0(I,JV)
477 TXX(I+1,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(I+1,JV)
478 + +5.*( ALF3(I)*(TX(I+1,JV)-FX(I,JV))-ALF2(I)*TEMPTM )
479 TX (I+1,JV)=ALF(I)*FX (I ,JV)+ALF1(I)*TX (I+1,JV)+3.*TEMPTM
480 TXY(I+1,JV)=ALF(I)*FXY(I ,JV)+ALF1(I)*TXY(I+1,JV)
481 + +3.*(ALF(I)*TY (I+1,JV)-ALF1(I)*FY (I ,JV))
482 TXZ(I+1,JV)=ALF(I)*FXZ(I ,JV)+ALF1(I)*TXZ(I+1,JV)
483 + +3.*(ALF(I)*TZ (I+1,JV)-ALF1(I)*FZ (I ,JV))
484 TY (I+1,JV)=TY (I+1,JV)+FY (I,JV)
485 TZ (I+1,JV)=TZ (I+1,JV)+FZ (I,JV)
486 TYY(I+1,JV)=TYY(I+1,JV)+FYY(I,JV)
487 TYZ(I+1,JV)=TYZ(I+1,JV)+FYZ(I,JV)
488 TZZ(I+1,JV)=TZZ(I+1,JV)+FZZ(I,JV)
489 C
490 ENDIF
491 C
492 1710 CONTINUE
493 171 CONTINUE
494 C
495 I=LONK
496 IF(UEXT(I).GE.0.) THEN
497 DO 172 JV=1,NTRA
498 TEMPTM=ALF(I)*T0(1,JV)-ALF1(I)*F0(I,JV)
499 T0 (1,JV)=T0(1,JV)+F0(I,JV)
500 TXX(1,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(1,JV)
501 + +5.*( ALF3(I)*(TX(1,JV)-FX(I,JV))-ALF2(I)*TEMPTM )
502 TX (1,JV)=ALF(I)*FX(I,JV)+ALF1(I)*TX(1,JV)+3.*TEMPTM
503 TXY(1,JV)=ALF(I)*FXY(I,JV)+ALF1(I)*TXY(1,JV)
504 + +3.*(ALF(I)*TY (1,JV)-ALF1(I)*FY (I,JV))
505 TXZ(1,JV)=ALF(I)*FXZ(I,JV)+ALF1(I)*TXZ(1,JV)
506 + +3.*(ALF(I)*TZ (1,JV)-ALF1(I)*FZ (I,JV))
507 TY (1,JV)=TY (1,JV)+FY (I,JV)
508 TZ (1,JV)=TZ (1,JV)+FZ (I,JV)
509 TYY(1,JV)=TYY(1,JV)+FYY(I,JV)
510 TYZ(1,JV)=TYZ(1,JV)+FYZ(I,JV)
511 TZZ(1,JV)=TZZ(1,JV)+FZZ(I,JV)
512 172 CONTINUE
513 ENDIF
514 C
515 C retour aux mailles d'origine (passage des Tij aux Sij)
516 C
517 IF(NUMK.GT.1) THEN
518 C
519 DO 18 I2=1,NUMK
520 C
521 DO 180 I=1,LONK
522 C
523 I3=I2+(I-1)*NUMK
524 SM(I3,K,L)=SMNEW(I3)
525 ALF(I)=SMNEW(I3)/TM(I)
526 TM(I)=TM(I)-SMNEW(I3)
527 C
528 ALFQ(I)=ALF(I)*ALF(I)
529 ALF1(I)=1.-ALF(I)
530 ALF1Q(I)=ALF1(I)*ALF1(I)
531 ALF2(I)=ALF1(I)-ALF(I)
532 ALF3(I)=ALF(I)*ALFQ(I)
533 ALF4(I)=ALF1(I)*ALF1Q(I)
534 C
535 180 CONTINUE
536 C
537 DO 181 JV=1,NTRA
538 DO 181 I=1,LONK
539 C
540 I3=I2+(I-1)*NUMK
541 S0 (I3,K,L,JV)=ALF (I)* ( T0(I,JV)-ALF1(I)*
542 + ( TX(I,JV)-ALF2(I)*TXX(I,JV) ) )
543 SSX (I3,K,L,JV)=ALFQ(I)*(TX(I,JV)-3.*ALF1(I)*TXX(I,JV))
544 SSXX(I3,K,L,JV)=ALF3(I)*TXX(I,JV)
545 SY (I3,K,L,JV)=ALF (I)*(TY(I,JV)-ALF1(I)*TXY(I,JV))
546 SZ (I3,K,L,JV)=ALF (I)*(TZ(I,JV)-ALF1(I)*TXZ(I,JV))
547 SSXY(I3,K,L,JV)=ALFQ(I)*TXY(I,JV)
548 SSXZ(I3,K,L,JV)=ALFQ(I)*TXZ(I,JV)
549 SYY(I3,K,L,JV)=ALF (I)*TYY(I,JV)
550 SYZ(I3,K,L,JV)=ALF (I)*TYZ(I,JV)
551 SZZ(I3,K,L,JV)=ALF (I)*TZZ(I,JV)
552 C
553 C reajusts moments remaining in the box
554 C
555 T0 (I,JV)=T0(I,JV)-S0(I3,K,L,JV)
556 TX (I,JV)=ALF1Q(I)*(TX(I,JV)+3.*ALF(I)*TXX(I,JV))
557 TXX(I,JV)=ALF4 (I)*TXX(I,JV)
558 TY (I,JV)=TY (I,JV)-SY (I3,K,L,JV)
559 TZ (I,JV)=TZ (I,JV)-SZ (I3,K,L,JV)
560 TYY(I,JV)=TYY(I,JV)-SYY(I3,K,L,JV)
561 TYZ(I,JV)=TYZ(I,JV)-SYZ(I3,K,L,JV)
562 TZZ(I,JV)=TZZ(I,JV)-SZZ(I3,K,L,JV)
563 TXY(I,JV)=ALF1Q(I)*TXY(I,JV)
564 TXZ(I,JV)=ALF1Q(I)*TXZ(I,JV)
565 C
566 181 CONTINUE
567 C
568 18 CONTINUE
569 C
570 ELSE
571 C
572 DO 190 I=1,LON
573 SM(I,K,L)=TM(I)
574 190 CONTINUE
575 DO 191 JV=1,NTRA
576 DO 1910 I=1,LON
577 S0 (I,K,L,JV)=T0 (I,JV)
578 SSX (I,K,L,JV)=TX (I,JV)
579 SY (I,K,L,JV)=TY (I,JV)
580 SZ (I,K,L,JV)=TZ (I,JV)
581 SSXX(I,K,L,JV)=TXX(I,JV)
582 SSXY(I,K,L,JV)=TXY(I,JV)
583 SSXZ(I,K,L,JV)=TXZ(I,JV)
584 SYY(I,K,L,JV)=TYY(I,JV)
585 SYZ(I,K,L,JV)=TYZ(I,JV)
586 SZZ(I,K,L,JV)=TZZ(I,JV)
587 1910 CONTINUE
588 191 CONTINUE
589 C
590 ENDIF
591 C
592 1 CONTINUE
593
594 c ---------- bouclage cyclique
595
596 DO l = 1,llm
597 DO j = 1,jjp1
598 SM(iip1,j,l) = SM(1,j,l)
599 S0(iip1,j,l,ntra) = S0(1,j,l,ntra)
600 SSX(iip1,j,l,ntra) = SSX(1,j,l,ntra)
601 SY(iip1,j,l,ntra) = SY(1,j,l,ntra)
602 SZ(iip1,j,l,ntra) = SZ(1,j,l,ntra)
603 END DO
604 END DO
605
606 C ----------- qqtite totale de traceur dans tte l'atmosphere
607 DO l = 1, llm
608 DO j = 1, jjp1
609 DO i = 1, iim
610 sqf = sqf + S0(i,j,l,ntra)
611 END DO
612 END DO
613 END DO
614
615 PRINT*,'------ DIAG DANS ADVX2 - SORTIE -----'
616 PRINT*,'sqf=',sqf
617 c-------------------------------------------------------------
618 RETURN
619 END

  ViewVC Help
Powered by ViewVC 1.1.21