4        SUBROUTINE advxp(LIMIT,DTX,PBARU,SM,S0,SSX,SY,SZ
 
    5      .                ,ssxx,ssxy,ssxz,syy,syz,szz,ntra)
 
    7 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
    9 c  second-order moments(som) advection of tracer in 
x direction  c
 
   11 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
 
   13 c  parametres principaux du modele
 
   15 #include "dimensions.h" 
   23 c  definition 
de la grille du modele
 
   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
 
   48 c  mass fluxes across the boundaries(ugri,vgri,wgri)
 
   54 c  rem : vgri et wgri ne sont pas utilises dans
 
   55 c  cette
 subroutine ( advection en x uniquement )
 
   58 c  tij are the moments for the current latitude and 
level 
   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)
 
   67 c  the moments f are similarly defined and used as temporary
 
   68 c  storage for portions of the grid boxes in transit
 
   74       REAL fxz(
iim,ntra),fyy(
iim,ntra)
 
   75       REAL fyz(
iim,ntra),fzz(
iim,ntra)
 
   86       REAL s1max,s1new,s2new
 
   89       INTEGER num(
jjp1),lonk,numk
 
   90       INTEGER lon,lati,latf,niv
 
   91       INTEGER i,i2,i3,
j,jv,
l,
k,iter
 
   98 c *** test 
de passage d
'arguments ****** 
  103 .lt.
c         IF (S0(i,j,l,ntra)  0. ) THEN 
  104 c         PRINT*,'s0(
',i,j,l,')=
',S0(i,j,l,ntra) 
  105 c                    print*, 'ssx(
',i,j,l,')=
',SSX(i,j,l,ntra) 
  106 c         print*, 'sy(
',i,j,l,')=
',SY(i,j,l,ntra) 
  107 c         print*, 'sz(
',i,j,l,')=
',SZ(i,j,l,ntra) 
  113 c *** test : diagnostique 
de la qtite totale 
de traceur
 
  114 c            dans 
l'atmosphere avant l'advection
 
  122                  sqi = sqi + s0(
i,
j,
l,ntra)
 
  126       print*,
'------ DIAG DANS ADVX2 - ENTREE -----' 
  129 c  -------------------------------------
 
  146 c  
Interface : adaptation nouveau modele
 
  147 c  -------------------------------------
 
  149 c  ---------------------------------------------------------
 
  150 c  conversion des flux 
de masses en kg/s
 
  151 c  pbaru est en n/s d
'ou : 
  157        ugri (i,j,llm+1-l) =pbaru (i,j,l)  
  160 C  --------------------------------------------------------- 
  163 C  boucle principale sur les niveaux et les latitudes 
  171 C  program assumes periodic boundaries in X 
  174          SMNEW(I)=SM(I,K,L)+(UGRI(I-1,K,L)-UGRI(I,K,L))*DTX 
  176       SMNEW(1)=SM(1,K,L)+(UGRI(LON,K,L)-UGRI(1,K,L))*DTX 
  178 C  modifications for extended polar zones 
  207             TM(I)=TM(I)+SM(I3,K,L) 
  208             ALF(I)=SM(I3,K,L)/TM(I) 
  210             ALFQ(I)=ALF(I)*ALF(I) 
  211             ALF1Q(I)=ALF1(I)*ALF1(I) 
  212             ALF2(I)=ALF1(I)-ALF(I) 
  213             ALF3(I)=ALF(I)*ALF1(I) 
  219             TEMPTM=-ALF(I)*T0(I,JV)+ALF1(I)*S0(I3,K,L,JV) 
  220             T0 (I,JV)=T0(I,JV)+S0(I3,K,L,JV) 
  221             TXX(I,JV)=ALFQ(I)*SSXX(I3,K,L,JV)+ALF1Q(I)*TXX(I,JV) 
  222      +        +5.*( ALF3(I)*(SSX(I3,K,L,JV)-TX(I,JV))+ALF2(I)*TEMPTM ) 
  223             TX (I,JV)=ALF(I)*SSX(I3,K,L,JV)+ALF1(I)*TX(I,JV)+3.*TEMPTM 
  224             TXY(I,JV)=ALF (I)*SSXY(I3,K,L,JV)+ALF1(I)*TXY(I,JV) 
  225      +           +3.*(ALF1(I)*SY (I3,K,L,JV)-ALF (I)*TY (I,JV)) 
  226             TXZ(I,JV)=ALF (I)*SSXZ(I3,K,L,JV)+ALF1(I)*TXZ(I,JV) 
  227      +           +3.*(ALF1(I)*SZ (I3,K,L,JV)-ALF (I)*TZ (I,JV)) 
  228             TY (I,JV)=TY (I,JV)+SY (I3,K,L,JV) 
  229             TZ (I,JV)=TZ (I,JV)+SZ (I3,K,L,JV) 
  230             TYY(I,JV)=TYY(I,JV)+SYY(I3,K,L,JV) 
  231             TYZ(I,JV)=TYZ(I,JV)+SYZ(I3,K,L,JV) 
  232             TZZ(I,JV)=TZZ(I,JV)+SZZ(I3,K,L,JV) 
  245          T0 (I,JV)=S0 (I,K,L,JV) 
  246          TX (I,JV)=SSX (I,K,L,JV) 
  247          TY (I,JV)=SY (I,K,L,JV) 
  248          TZ (I,JV)=SZ (I,K,L,JV) 
  249          TXX(I,JV)=SSXX(I,K,L,JV) 
  250          TXY(I,JV)=SSXY(I,K,L,JV) 
  251          TXZ(I,JV)=SSXZ(I,K,L,JV) 
  252          TYY(I,JV)=SYY(I,K,L,JV) 
  253          TYZ(I,JV)=SYZ(I,K,L,JV) 
  254          TZZ(I,JV)=SZZ(I,K,L,JV) 
  261          UEXT(I)=UGRI(I*NUMK,K,L) 
  264 C  place limits on appropriate moments before transport 
  265 C      (if flux-limiting is to be applied) 
  267 .NOT.
      IF(LIMIT) GO TO 13 
  271 .GT.
        IF(T0(I,JV)0.) THEN 
  274           S1NEW=AMIN1(S1MAX,AMAX1(-S1MAX,TX(I,JV))) 
  275           S2NEW=AMIN1( 2.*SLPMAX-ABS(S1NEW)/3. , 
  276      +                 AMAX1(ABS(S1NEW)-SLPMAX,TXX(I,JV)) ) 
  279           TXY(I,JV)=AMIN1(SLPMAX,AMAX1(-SLPMAX,TXY(I,JV))) 
  280           TXZ(I,JV)=AMIN1(SLPMAX,AMAX1(-SLPMAX,TXZ(I,JV))) 
  292 C  calculate flux and moments between adjacent boxes 
  293 C  1- create temporary moments/masses for partial boxes in transit 
  294 C  2- reajusts moments remaining in the box 
  296 .lt.
C  flux from IP to I if U(I)0 
  299 .LT.
         IF(UEXT(I)0.) THEN 
  302            TM(I+1)=TM(I+1)-FM(I) 
  307 .LT.
      IF(UEXT(I)0.) THEN 
  313 .gt.
C  flux from I to IP if U(I)0 
  316 .GE.
         IF(UEXT(I)0.) THEN 
  324          ALFQ(I)=ALF(I)*ALF(I) 
  326          ALF1Q(I)=ALF1(I)*ALF1(I) 
  327          ALF2(I)=ALF1(I)-ALF(I) 
  328          ALF3(I)=ALF(I)*ALFQ(I) 
  329          ALF4(I)=ALF1(I)*ALF1Q(I) 
  335 .LT.
         IF(UEXT(I)0.) THEN 
  337            F0 (I,JV)=ALF (I)* ( T0(I+1,JV)-ALF1(I)* 
  338      +             ( TX(I+1,JV)-ALF2(I)*TXX(I+1,JV) ) ) 
  339            FX (I,JV)=ALFQ(I)*(TX(I+1,JV)-3.*ALF1(I)*TXX(I+1,JV)) 
  340            FXX(I,JV)=ALF3(I)*TXX(I+1,JV) 
  341            FY (I,JV)=ALF (I)*(TY(I+1,JV)-ALF1(I)*TXY(I+1,JV)) 
  342            FZ (I,JV)=ALF (I)*(TZ(I+1,JV)-ALF1(I)*TXZ(I+1,JV)) 
  343            FXY(I,JV)=ALFQ(I)*TXY(I+1,JV) 
  344            FXZ(I,JV)=ALFQ(I)*TXZ(I+1,JV) 
  345            FYY(I,JV)=ALF (I)*TYY(I+1,JV) 
  346            FYZ(I,JV)=ALF (I)*TYZ(I+1,JV) 
  347            FZZ(I,JV)=ALF (I)*TZZ(I+1,JV) 
  349            T0 (I+1,JV)=T0(I+1,JV)-F0(I,JV) 
  350            TX (I+1,JV)=ALF1Q(I)*(TX(I+1,JV)+3.*ALF(I)*TXX(I+1,JV)) 
  351            TXX(I+1,JV)=ALF4(I)*TXX(I+1,JV) 
  352            TY (I+1,JV)=TY (I+1,JV)-FY (I,JV) 
  353            TZ (I+1,JV)=TZ (I+1,JV)-FZ (I,JV) 
  354            TYY(I+1,JV)=TYY(I+1,JV)-FYY(I,JV) 
  355            TYZ(I+1,JV)=TYZ(I+1,JV)-FYZ(I,JV) 
  356            TZZ(I+1,JV)=TZZ(I+1,JV)-FZZ(I,JV) 
  357            TXY(I+1,JV)=ALF1Q(I)*TXY(I+1,JV) 
  358            TXZ(I+1,JV)=ALF1Q(I)*TXZ(I+1,JV) 
  366 .LT.
      IF(UEXT(I)0.) THEN 
  370            F0 (I,JV)=ALF (I)* ( T0(1,JV)-ALF1(I)* 
  371      +             ( TX(1,JV)-ALF2(I)*TXX(1,JV) ) ) 
  372            FX (I,JV)=ALFQ(I)*(TX(1,JV)-3.*ALF1(I)*TXX(1,JV)) 
  373            FXX(I,JV)=ALF3(I)*TXX(1,JV) 
  374            FY (I,JV)=ALF (I)*(TY(1,JV)-ALF1(I)*TXY(1,JV)) 
  375            FZ (I,JV)=ALF (I)*(TZ(1,JV)-ALF1(I)*TXZ(1,JV)) 
  376            FXY(I,JV)=ALFQ(I)*TXY(1,JV) 
  377            FXZ(I,JV)=ALFQ(I)*TXZ(1,JV) 
  378            FYY(I,JV)=ALF (I)*TYY(1,JV) 
  379            FYZ(I,JV)=ALF (I)*TYZ(1,JV) 
  380            FZZ(I,JV)=ALF (I)*TZZ(1,JV) 
  382            T0 (1,JV)=T0(1,JV)-F0(I,JV) 
  383            TX (1,JV)=ALF1Q(I)*(TX(1,JV)+3.*ALF(I)*TXX(1,JV)) 
  384            TXX(1,JV)=ALF4(I)*TXX(1,JV) 
  385            TY (1,JV)=TY (1,JV)-FY (I,JV) 
  386            TZ (1,JV)=TZ (1,JV)-FZ (I,JV) 
  387            TYY(1,JV)=TYY(1,JV)-FYY(I,JV) 
  388            TYZ(1,JV)=TYZ(1,JV)-FYZ(I,JV) 
  389            TZZ(1,JV)=TZZ(1,JV)-FZZ(I,JV) 
  390            TXY(1,JV)=ALF1Q(I)*TXY(1,JV) 
  391            TXZ(1,JV)=ALF1Q(I)*TXZ(1,JV) 
  400 .GE.
         IF(UEXT(I)0.) THEN 
  402            F0 (I,JV)=ALF (I)* ( T0(I,JV)+ALF1(I)* 
  403      +             ( TX(I,JV)+ALF2(I)*TXX(I,JV) ) ) 
  404            FX (I,JV)=ALFQ(I)*(TX(I,JV)+3.*ALF1(I)*TXX(I,JV)) 
  405            FXX(I,JV)=ALF3(I)*TXX(I,JV) 
  406            FY (I,JV)=ALF (I)*(TY(I,JV)+ALF1(I)*TXY(I,JV)) 
  407            FZ (I,JV)=ALF (I)*(TZ(I,JV)+ALF1(I)*TXZ(I,JV)) 
  408            FXY(I,JV)=ALFQ(I)*TXY(I,JV) 
  409            FXZ(I,JV)=ALFQ(I)*TXZ(I,JV) 
  410            FYY(I,JV)=ALF (I)*TYY(I,JV) 
  411            FYZ(I,JV)=ALF (I)*TYZ(I,JV) 
  412            FZZ(I,JV)=ALF (I)*TZZ(I,JV) 
  414            T0 (I,JV)=T0(I,JV)-F0(I,JV) 
  415            TX (I,JV)=ALF1Q(I)*(TX(I,JV)-3.*ALF(I)*TXX(I,JV)) 
  416            TXX(I,JV)=ALF4(I)*TXX(I,JV) 
  417            TY (I,JV)=TY (I,JV)-FY (I,JV) 
  418            TZ (I,JV)=TZ (I,JV)-FZ (I,JV) 
  419            TYY(I,JV)=TYY(I,JV)-FYY(I,JV) 
  420            TYZ(I,JV)=TYZ(I,JV)-FYZ(I,JV) 
  421            TZZ(I,JV)=TZZ(I,JV)-FZZ(I,JV) 
  422            TXY(I,JV)=ALF1Q(I)*TXY(I,JV) 
  423            TXZ(I,JV)=ALF1Q(I)*TXZ(I,JV) 
  430 C  puts the temporary moments Fi into appropriate neighboring boxes 
  433 .LT.
         IF(UEXT(I)0.) THEN 
  440 .GE.
         IF(UEXT(I)0.) THEN 
  441            TM(I+1)=TM(I+1)+FM(I) 
  447 .GE.
      IF(UEXT(I)0.) THEN 
  454          ALFQ(I)=ALF(I)*ALF(I) 
  455          ALF1Q(I)=ALF1(I)*ALF1(I) 
  456          ALF2(I)=ALF1(I)-ALF(I) 
  457          ALF3(I)=ALF(I)*ALF1(I) 
  463 .LT.
         IF(UEXT(I)0.) THEN 
  465            TEMPTM=-ALF(I)*T0(I,JV)+ALF1(I)*F0(I,JV) 
  466            T0 (I,JV)=T0(I,JV)+F0(I,JV) 
  467            TXX(I,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(I,JV) 
  468      +          +5.*( ALF3(I)*(FX(I,JV)-TX(I,JV))+ALF2(I)*TEMPTM ) 
  469            TX (I,JV)=ALF (I)*FX (I,JV)+ALF1(I)*TX (I,JV)+3.*TEMPTM 
  470            TXY(I,JV)=ALF (I)*FXY(I,JV)+ALF1(I)*TXY(I,JV) 
  471      +          +3.*(ALF1(I)*FY (I,JV)-ALF (I)*TY (I,JV)) 
  472            TXZ(I,JV)=ALF (I)*FXZ(I,JV)+ALF1(I)*TXZ(I,JV) 
  473      +          +3.*(ALF1(I)*FZ (I,JV)-ALF (I)*TZ (I,JV)) 
  474            TY (I,JV)=TY (I,JV)+FY (I,JV) 
  475            TZ (I,JV)=TZ (I,JV)+FZ (I,JV) 
  476            TYY(I,JV)=TYY(I,JV)+FYY(I,JV) 
  477            TYZ(I,JV)=TYZ(I,JV)+FYZ(I,JV) 
  478            TZZ(I,JV)=TZZ(I,JV)+FZZ(I,JV) 
  488 .GE.
         IF(UEXT(I)0.) THEN 
  490            TEMPTM=ALF(I)*T0(I+1,JV)-ALF1(I)*F0(I,JV) 
  491            T0 (I+1,JV)=T0(I+1,JV)+F0(I,JV) 
  492            TXX(I+1,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(I+1,JV) 
  493      +           +5.*( ALF3(I)*(TX(I+1,JV)-FX(I,JV))-ALF2(I)*TEMPTM ) 
  494            TX (I+1,JV)=ALF(I)*FX (I  ,JV)+ALF1(I)*TX (I+1,JV)+3.*TEMPTM 
  495            TXY(I+1,JV)=ALF(I)*FXY(I  ,JV)+ALF1(I)*TXY(I+1,JV) 
  496      +            +3.*(ALF(I)*TY (I+1,JV)-ALF1(I)*FY (I  ,JV)) 
  497            TXZ(I+1,JV)=ALF(I)*FXZ(I  ,JV)+ALF1(I)*TXZ(I+1,JV) 
  498      +            +3.*(ALF(I)*TZ (I+1,JV)-ALF1(I)*FZ (I  ,JV)) 
  499            TY (I+1,JV)=TY (I+1,JV)+FY (I,JV) 
  500            TZ (I+1,JV)=TZ (I+1,JV)+FZ (I,JV) 
  501            TYY(I+1,JV)=TYY(I+1,JV)+FYY(I,JV) 
  502            TYZ(I+1,JV)=TYZ(I+1,JV)+FYZ(I,JV) 
  503            TZZ(I+1,JV)=TZZ(I+1,JV)+FZZ(I,JV) 
  511 .GE.
      IF(UEXT(I)0.) THEN 
  513            TEMPTM=ALF(I)*T0(1,JV)-ALF1(I)*F0(I,JV) 
  514            T0 (1,JV)=T0(1,JV)+F0(I,JV) 
  515            TXX(1,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(1,JV) 
  516      +         +5.*( ALF3(I)*(TX(1,JV)-FX(I,JV))-ALF2(I)*TEMPTM ) 
  517            TX (1,JV)=ALF(I)*FX(I,JV)+ALF1(I)*TX(1,JV)+3.*TEMPTM 
  518            TXY(1,JV)=ALF(I)*FXY(I,JV)+ALF1(I)*TXY(1,JV) 
  519      +          +3.*(ALF(I)*TY (1,JV)-ALF1(I)*FY (I,JV)) 
  520            TXZ(1,JV)=ALF(I)*FXZ(I,JV)+ALF1(I)*TXZ(1,JV) 
  521      +          +3.*(ALF(I)*TZ (1,JV)-ALF1(I)*FZ (I,JV)) 
  522            TY (1,JV)=TY (1,JV)+FY (I,JV) 
  523            TZ (1,JV)=TZ (1,JV)+FZ (I,JV) 
  524            TYY(1,JV)=TYY(1,JV)+FYY(I,JV) 
  525            TYZ(1,JV)=TYZ(1,JV)+FYZ(I,JV) 
  526            TZZ(1,JV)=TZZ(1,JV)+FZZ(I,JV) 
  530 C  retour aux mailles d'origine(passage des tij aux sij)
 
  540             alf(
i)=smnew(i3)/tm(
i)
 
  541             tm(
i)=tm(
i)-smnew(i3)
 
  543             alfq(
i)=alf(
i)*alf(
i)
 
  545             alf1q(
i)=alf1(
i)*alf1(
i)
 
  546             alf2(
i)=alf1(
i)-alf(
i)
 
  547             alf3(
i)=alf(
i)*alfq(
i)
 
  548             alf4(
i)=alf1(
i)*alf1q(
i)
 
  556             s0(i3,
k,
l,jv)=alf(
i)* ( 
t0(
i,jv)-alf1(
i)*
 
  557      +              ( tx(
i,jv)-alf2(
i)*txx(
i,jv) ) )
 
  558             ssx(i3,
k,
l,jv)=alfq(
i)*(tx(
i,jv)-3.*alf1(
i)*txx(
i,jv))
 
  559             ssxx(i3,
k,
l,jv)=alf3(
i)*txx(
i,jv)
 
  560             sy(i3,
k,
l,jv)=alf(
i)*(ty(
i,jv)-alf1(
i)*txy(
i,jv))
 
  561             sz(i3,
k,
l,jv)=alf(
i)*(tz(
i,jv)-alf1(
i)*txz(
i,jv))
 
  562             ssxy(i3,
k,
l,jv)=alfq(
i)*txy(
i,jv)
 
  563             ssxz(i3,
k,
l,jv)=alfq(
i)*txz(
i,jv)
 
  564             syy(i3,
k,
l,jv)=alf(
i)*tyy(
i,jv)
 
  565             syz(i3,
k,
l,jv)=alf(
i)*tyz(
i,jv)
 
  566             szz(i3,
k,
l,jv)=alf(
i)*tzz(
i,jv)
 
  568 c   reajusts moments remaining in the box
 
  571             tx(
i,jv)=alf1q(
i)*(tx(
i,jv)+3.*alf(
i)*txx(
i,jv))
 
  572             txx(
i,jv)=alf4(
i)*txx(
i,jv)
 
  573             ty(
i,jv)=ty(
i,jv)-sy(i3,
k,
l,jv)
 
  574             tz(
i,jv)=tz(
i,jv)-sz(i3,
k,
l,jv)
 
  575             tyy(
i,jv)=tyy(
i,jv)-syy(i3,
k,
l,jv)
 
  576             tyz(
i,jv)=tyz(
i,jv)-syz(i3,
k,
l,jv)
 
  577             tzz(
i,jv)=tzz(
i,jv)-szz(i3,
k,
l,jv)
 
  578             txy(
i,jv)=alf1q(
i)*txy(
i,jv)
 
  579             txz(
i,jv)=alf1q(
i)*txz(
i,jv)
 
  593          ssx(
i,
k,
l,jv)=tx(
i,jv)
 
  594          sy(
i,
k,
l,jv)=ty(
i,jv)
 
  595          sz(
i,
k,
l,jv)=tz(
i,jv)
 
  596          ssxx(
i,
k,
l,jv)=txx(
i,jv)
 
  597          ssxy(
i,
k,
l,jv)=txy(
i,jv)
 
  598          ssxz(
i,
k,
l,jv)=txz(
i,jv)
 
  599          syy(
i,
k,
l,jv)=tyy(
i,jv)
 
  600          syz(
i,
k,
l,jv)=tyz(
i,jv)
 
  601          szz(
i,
k,
l,jv)=tzz(
i,jv)
 
  609 c ----------- aa test en fin 
de advx ------ controle des s*
 
  612 c      
DO 9999 
j = 1, 
jjp1 
  613 c      
DO 9999 
i = 1, iip1
 
  614 c                  
IF (s0(
i,
j,
l,ntra).lt.0..and.
limit) 
THEN 
  615 c           print*, 
'-------------------' 
  616 c                       print*, 
'En fin de ADVXP' 
  617 c           print*,
'S0(',
i,
j,
l,
')=',s0(
i,
j,
l,ntra)
 
  618 c                       print*, 
'SSX(',
i,
j,
l,
')=',ssx(
i,
j,
l,ntra)
 
  619 c           print*, 
'SY(',
i,
j,
l,
')=',sy(
i,
j,
l,ntra)
 
  620 c               print*, 
'SZ(',
i,
j,
l,
')=',sz(
i,
j,
l,ntra)
 
  621 c            
WRITE (*,*) 
'On arrete !! - pbl en fin de ADVXP' 
  625 c ---------- bouclage cyclique
 
  629          sm(iip1,
j,
l) = sm(1,
j,
l)
 
  630          s0(iip1,
j,
l,ntra) = s0(1,
j,
l,ntra)
 
  631                  ssx(iip1,
j,
l,ntra) = ssx(1,
j,
l,ntra)
 
  632                  sy(iip1,
j,
l,ntra) = sy(1,
j,
l,ntra)
 
  633                  sz(iip1,
j,
l,ntra) = sz(1,
j,
l,ntra)
 
  637 c ----------- qqtite totale 
de traceur dans tte 
l'atmosphere 
  641         sqf = sqf + S0(i,j,l,ntra) 
  646       PRINT*,'------ diag dans advx2 - sortie -----
' 
  648 c------------------------------------------------------------- 
!$Id NSTRA real GKLIFT real GVSEC REAL GWD_RANDO_RUWMAX!Maximum Eliassen Palm flux at launch level
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo rowl t0
 
c c $Id c c calculs statistiques distribution nuage ftion du regime dynamique c c Ce calcul doit etre fait a partir de valeurs mensuelles CALL nbregdyn DO kmaxm1 DO l
 
!$Header!c REAL ripx REAL fy
 
!$Header!c REAL ripx REAL fx
 
!$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
 
c c $Id c c calculs statistiques distribution nuage ftion du regime dynamique c c Ce calcul doit etre fait a partir de valeurs mensuelles CALL nbregdyn DO k
 
!$Id klon initialisation mois suivants day_rain itap ENDIF!Calcul fin de nday_rain calcul nday_rain itap DO i
 
subroutine advx(limit, dtx, pbaru, sm, s0, sx, sy, sz, lati, latf)
 
!$Id Turb_fcg!implicit none!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc!cette routine permet d obtenir hq et ainsi de!pouvoir calculer la convergence et le cisaillement dans la physiq!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc INTEGER klev REAL j
 
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
 
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
 
subroutine fxy(rlatu, yprimu, rlatv, yprimv, rlatu1, yprimu1, rlatu2, yprimu2, rlonu, xprimu, rlonv, xprimv, rlonm025, xprimm025, rlonp025, xprimp025)
 
c c zjulian c cym CALL iim cym klev iim