Go to the documentation of this file.
4 SUBROUTINE advx(limit,dtx,pbaru,sm,s0,
25 #include "dimensions.h"
42 REAL pbaru ( iip1,
jjp1,llm )
48 REAL sm(iip1,
jjp1,llm),s0(iip1,
jjp1,llm,ntra)
49 REAL sx(iip1,
jjp1,llm,ntra)
50 $ ,sy(iip1,
jjp1,llm,ntra)
51 REAL sz(iip1,
jjp1,llm,ntra)
60 REAL ugri(iip1,
jjp1,llm)
69 REAL ty(
iim,ntra),tz(
iim,ntra)
88 INTEGER num(
jjp1),lonk,numk
89 INTEGER lon,lati,latf,niv
90 INTEGER i,i2,i3,
j,jv,
l,
k,itrac
108 sqi = sqi + s0(
i,
j,
l,ntra)
112 print*,
'-------- DIAG DANS ADVX - ENTREE ---------'
128 ugri(
i,
j,llm+1-
l) = pbaru(
i,
j,
l)
148 smnew(
i)=sm(
i,
k,
l)+(ugri(
i-1,
k,
l)-ugri(
i,
k,
l))*dtx
150 smnew(1)=sm(1,
k,
l)+(ugri(
lon,
k,
l)-ugri(1,
k,
l))*dtx
175 tm(
i)=tm(
i)+sm(i3,
k,
l)
176 alf(
i)=sm(i3,
k,
l)/tm(
i)
183 temptm=-alf(
i)*
t0(
i,jv)+alf1(
i)
186 tx(
i,jv)=alf(
i) *sx(i3,
k,
l,jv)+
187 $ alf1(
i)*tx(
i,jv) +3.*temptm
188 ty(
i,jv)=ty(
i,jv)+sy(i3,
k,
l,jv)
189 tz(
i,jv)=tz(
i,jv)+sz(i3,
k,
l,jv)
203 tx(
i,jv)=sx(
i,
k,
l,jv)
204 ty(
i,jv)=sy(
i,
k,
l,jv)
205 tz(
i,jv)=sz(
i,
k,
l,jv)
212 uext(
i)=ugri(
i*numk,
k,
l)
218 IF(.NOT.limit) go to 13
222 tx(
i,jv)=sign(amin1(amax1(
t0(
i,jv),0.),abs(tx(
i,jv))),tx(
i,jv))
235 IF(uext(
i).LT.0.)
THEN
238 tm(
i+1)=tm(
i+1)-fm(
i)
243 IF(uext(
i).LT.0.)
THEN
252 IF(uext(
i).GE.0.)
THEN
260 alfq(
i)=alf(
i)*alf(
i)
262 alf1q(
i)=alf1(
i)*alf1(
i)
268 IF(uext(
i).LT.0.)
THEN
270 f0(
i,jv)=alf(
i)* (
t0(
i+1,jv)-alf1(
i)*tx(
i+1,jv) )
271 fx(
i,jv)=alfq(
i)*tx(
i+1,jv)
272 fy(
i,jv)=alf(
i)*ty(
i+1,jv)
273 fz(
i,jv)=alf(
i)*tz(
i+1,jv)
276 tx(
i+1,jv)=alf1q(
i)*tx(
i+1,jv)
277 ty(
i+1,jv)=ty(
i+1,jv)-
fy(
i,jv)
278 tz(
i+1,jv)=tz(
i+1,jv)-fz(
i,jv)
286 IF(uext(
i).LT.0.)
THEN
290 f0(
i,jv)=alf(
i)* (
t0(1,jv)-alf1(
i)*tx(1,jv) )
291 fx(
i,jv)=alfq(
i)*tx(1,jv)
292 fy(
i,jv)=alf(
i)*ty(1,jv)
293 fz(
i,jv)=alf(
i)*tz(1,jv)
295 t0(1,jv)=
t0(1,jv)-f0(
i,jv)
296 tx(1,jv)=alf1q(
i)*tx(1,jv)
297 ty(1,jv)=ty(1,jv)-
fy(
i,jv)
298 tz(1,jv)=tz(1,jv)-fz(
i,jv)
307 IF(uext(
i).GE.0.)
THEN
309 f0(
i,jv)=alf(
i)* (
t0(
i,jv)+alf1(
i)*tx(
i,jv) )
310 fx(
i,jv)=alfq(
i)*tx(
i,jv)
311 fy(
i,jv)=alf(
i)*ty(
i,jv)
312 fz(
i,jv)=alf(
i)*tz(
i,jv)
315 tx(
i,jv)=alf1q(
i)*tx(
i,jv)
316 ty(
i,jv)=ty(
i,jv)-
fy(
i,jv)
317 tz(
i,jv)=tz(
i,jv)-fz(
i,jv)
327 IF(uext(
i).LT.0.)
THEN
334 IF(uext(
i).GE.0.)
THEN
335 tm(
i+1)=tm(
i+1)+fm(
i)
341 IF(uext(
i).GE.0.)
THEN
353 IF(uext(
i).LT.0.)
THEN
355 temptm=-alf(
i)*
t0(
i,jv)+alf1(
i)*f0(
i,jv)
357 tx(
i,jv)=alf(
i)*
fx(
i,jv)+alf1(
i)*tx(
i,jv)+3.*temptm
358 ty(
i,jv)=ty(
i,jv)+
fy(
i,jv)
359 tz(
i,jv)=tz(
i,jv)+fz(
i,jv)
369 IF(uext(
i).GE.0.)
THEN
371 temptm=alf(
i)*
t0(
i+1,jv)-alf1(
i)*f0(
i,jv)
373 tx(
i+1,jv)=alf(
i)*
fx(
i,jv)+alf1(
i)*tx(
i+1,jv)+3.*temptm
374 ty(
i+1,jv)=ty(
i+1,jv)+
fy(
i,jv)
375 tz(
i+1,jv)=tz(
i+1,jv)+fz(
i,jv)
383 IF(uext(
i).GE.0.)
THEN
385 temptm=alf(
i)*
t0(1,jv)-alf1(
i)*f0(
i,jv)
386 t0(1,jv)=
t0(1,jv)+f0(
i,jv)
387 tx(1,jv)=alf(
i)*
fx(
i,jv)+alf1(
i)*tx(1,jv)+3.*temptm
388 ty(1,jv)=ty(1,jv)+
fy(
i,jv)
389 tz(1,jv)=tz(1,jv)+fz(
i,jv)
403 alf(
i)=smnew(i3)/tm(
i)
404 tm(
i)=tm(
i)-smnew(i3)
406 alfq(
i)=alf(
i)*alf(
i)
408 alf1q(
i)=alf1(
i)*alf1(
i)
417 $ * (
t0(
i,jv)-alf1(
i)*tx(
i,jv))
418 sx(i3,
k,
l,jv)=alfq(
i)*tx(
i,jv)
419 sy(i3,
k,
l,jv)=alf(
i)*ty(
i,jv)
420 sz(i3,
k,
l,jv)=alf(
i)*tz(
i,jv)
425 tx(
i,jv)=alf1q(
i)*tx(
i,jv)
426 ty(
i,jv)=ty(
i,jv)-sy(i3,
k,
l,jv)
427 tz(
i,jv)=tz(
i,jv)-sz(i3,
k,
l,jv)
440 sx(
i,
k,
l,jv)=tx(
i,jv)
441 sy(
i,
k,
l,jv)=ty(
i,jv)
442 sz(
i,
k,
l,jv)=tz(
i,jv)
472 sm(iip1,
j,
l) = sm(1,
j,
l)
473 s0(iip1,
j,
l,itrac) = s0(1,
j,
l,itrac)
474 sx(iip1,
j,
l,itrac) = sx(1,
j,
l,itrac)
475 sy(iip1,
j,
l,itrac) = sy(1,
j,
l,itrac)
476 sz(iip1,
j,
l,itrac) = sz(1,
j,
l,itrac)
485 sqf = sqf + s0(
i,
j,
l,ntra)
490 print*,
'------ DIAG DANS ADVX - SORTIE -----'