4 SUBROUTINE advx(limit,dtx,pbaru,sm,s0,
25 #include "dimensions.h"
68 REAL T0(
iim,ntra),TX(
iim,ntra)
69 REAL TY(
iim,ntra),TZ(
iim,ntra)
76 REAL F0(
iim,ntra),FX(
iim,ntra)
77 REAL FY(
iim,ntra),FZ(
iim,ntra)
88 INTEGER NUM(
jjp1),LONK,NUMK
89 INTEGER lon,lati,latf,niv
90 INTEGER i,i2,i3,j,jv,l,k,itrac
109 sqi = sqi + s0(i,j,l,ntra)
113 print*,
'-------- DIAG DANS ADVX - ENTREE ---------'
129 ugri(i,j,
llm+1-l) = pbaru(i,j,l)
149 smnew(i)=sm(i,k,l)+(ugri(i-1,k,l)-ugri(i,k,l))*dtx
151 smnew(1)=sm(1,k,l)+(ugri(lon,k,l)-ugri(1,k,l))*dtx
176 tm(i)=tm(i)+sm(i3,k,l)
177 alf(i)=sm(i3,k,l)/tm(i)
184 temptm=-alf(i)*t0(i,jv)+alf1(i)
186 t0(i,jv)=t0(i,jv)+s0(i3,k,l,jv)
187 tx(i,jv)=alf(i) *sx(i3,k,l,jv)+
188 $ alf1(i)*tx(i,jv) +3.*temptm
189 ty(i,jv)=ty(i,jv)+sy(i3,k,l,jv)
190 tz(i,jv)=tz(i,jv)+sz(i3,k,l,jv)
203 t0(i,jv)=s0(i,k,l,jv)
204 tx(i,jv)=sx(i,k,l,jv)
205 ty(i,jv)=sy(i,k,l,jv)
206 tz(i,jv)=sz(i,k,l,jv)
213 uext(i)=ugri(i*numk,k,l)
219 IF(.NOT.
limit)
GO TO 13
223 tx(i,jv)=sign(amin1(amax1(t0(i,jv),0.),abs(tx(i,jv))),tx(i,jv))
236 IF(uext(i).LT.0.)
THEN
239 tm(i+1)=tm(i+1)-fm(i)
244 IF(uext(i).LT.0.)
THEN
253 IF(uext(i).GE.0.)
THEN
261 alfq(i)=alf(i)*alf(i)
263 alf1q(i)=alf1(i)*alf1(i)
269 IF(uext(i).LT.0.)
THEN
271 f0(i,jv)=alf(i)* ( t0(i+1,jv)-alf1(i)*tx(i+1,jv) )
272 fx(i,jv)=alfq(i)*tx(i+1,jv)
273 fy(i,jv)=alf(i)*ty(i+1,jv)
274 fz(i,jv)=alf(i)*tz(i+1,jv)
276 t0(i+1,jv)=t0(i+1,jv)-f0(i,jv)
277 tx(i+1,jv)=alf1q(i)*tx(i+1,jv)
278 ty(i+1,jv)=ty(i+1,jv)-fy(i,jv)
279 tz(i+1,jv)=tz(i+1,jv)-fz(i,jv)
287 IF(uext(i).LT.0.)
THEN
291 f0(i,jv)=alf(i)* ( t0(1,jv)-alf1(i)*tx(1,jv) )
292 fx(i,jv)=alfq(i)*tx(1,jv)
293 fy(i,jv)=alf(i)*ty(1,jv)
294 fz(i,jv)=alf(i)*tz(1,jv)
296 t0(1,jv)=t0(1,jv)-f0(i,jv)
297 tx(1,jv)=alf1q(i)*tx(1,jv)
298 ty(1,jv)=ty(1,jv)-fy(i,jv)
299 tz(1,jv)=tz(1,jv)-fz(i,jv)
308 IF(uext(i).GE.0.)
THEN
310 f0(i,jv)=alf(i)* ( t0(i,jv)+alf1(i)*tx(i,jv) )
311 fx(i,jv)=alfq(i)*tx(i,jv)
312 fy(i,jv)=alf(i)*ty(i,jv)
313 fz(i,jv)=alf(i)*tz(i,jv)
315 t0(i,jv)=t0(i,jv)-f0(i,jv)
316 tx(i,jv)=alf1q(i)*tx(i,jv)
317 ty(i,jv)=ty(i,jv)-fy(i,jv)
318 tz(i,jv)=tz(i,jv)-fz(i,jv)
328 IF(uext(i).LT.0.)
THEN
335 IF(uext(i).GE.0.)
THEN
336 tm(i+1)=tm(i+1)+fm(i)
342 IF(uext(i).GE.0.)
THEN
354 IF(uext(i).LT.0.)
THEN
356 temptm=-alf(i)*t0(i,jv)+alf1(i)*f0(i,jv)
357 t0(i,jv)=t0(i,jv)+f0(i,jv)
358 tx(i,jv)=alf(i)*fx(i,jv)+alf1(i)*tx(i,jv)+3.*temptm
359 ty(i,jv)=ty(i,jv)+fy(i,jv)
360 tz(i,jv)=tz(i,jv)+fz(i,jv)
370 IF(uext(i).GE.0.)
THEN
372 temptm=alf(i)*t0(i+1,jv)-alf1(i)*f0(i,jv)
373 t0(i+1,jv)=t0(i+1,jv)+f0(i,jv)
374 tx(i+1,jv)=alf(i)*fx(i,jv)+alf1(i)*tx(i+1,jv)+3.*temptm
375 ty(i+1,jv)=ty(i+1,jv)+fy(i,jv)
376 tz(i+1,jv)=tz(i+1,jv)+fz(i,jv)
384 IF(uext(i).GE.0.)
THEN
386 temptm=alf(i)*t0(1,jv)-alf1(i)*f0(i,jv)
387 t0(1,jv)=t0(1,jv)+f0(i,jv)
388 tx(1,jv)=alf(i)*fx(i,jv)+alf1(i)*tx(1,jv)+3.*temptm
389 ty(1,jv)=ty(1,jv)+fy(i,jv)
390 tz(1,jv)=tz(1,jv)+fz(i,jv)
404 alf(i)=smnew(i3)/tm(i)
405 tm(i)=tm(i)-smnew(i3)
407 alfq(i)=alf(i)*alf(i)
409 alf1q(i)=alf1(i)*alf1(i)
418 $ * (t0(i,jv)-alf1(i)*tx(i,jv))
419 sx(i3,k,l,jv)=alfq(i)*tx(i,jv)
420 sy(i3,k,l,jv)=alf(i)*ty(i,jv)
421 sz(i3,k,l,jv)=alf(i)*tz(i,jv)
425 t0(i,jv)=t0(i,jv)-s0(i3,k,l,jv)
426 tx(i,jv)=alf1q(i)*tx(i,jv)
427 ty(i,jv)=ty(i,jv)-sy(i3,k,l,jv)
428 tz(i,jv)=tz(i,jv)-sz(i3,k,l,jv)
440 s0(i,k,l,jv)=t0(i,jv)
441 sx(i,k,l,jv)=tx(i,jv)
442 sy(i,k,l,jv)=ty(i,jv)
443 sz(i,k,l,jv)=tz(i,jv)
473 sm(iip1,j,l) = sm(1,j,l)
474 s0(iip1,j,l,itrac) = s0(1,j,l,itrac)
475 sx(iip1,j,l,itrac) = sx(1,j,l,itrac)
476 sy(iip1,j,l,itrac) = sy(1,j,l,itrac)
477 sz(iip1,j,l,itrac) = sz(1,j,l,itrac)
487 sqf = sqf + s0(i,j,l,ntra)
492 print*,
'------ DIAG DANS ADVX - SORTIE -----'
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
subroutine advx(limit, dtx, pbaru, sm, s0, sx, sy, sz, lati, latf)
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
c c zjulian c cym CALL iim cym klev iim