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