4       SUBROUTINE pentes_ini (q,w,masse,pbaru,pbarv,mode)
 
   24 #include "dimensions.h" 
   48       real sinlon(iip1),sinlondlon(iip1)
 
   49       real coslon(iip1),coslondlon(iip1)
 
   50       save sinlon,coslon,sinlondlon,coslondlon
 
   51       real dyn1,dyn2,dys1,dys2
 
   52       real qpn,qps,dqzpn,dqzps
 
   53       real smn,sms,s0n,s0s,sxn(iip1),sxs(iip1)
 
   54       real qmin,zq,pente_max
 
   57       integer ismax,ismin,lati,latf
 
   58       EXTERNAL  ssum, ismin,ismax
 
   86          print*,
'SCHEMA AMONT NOUVEAU' 
   89             coslon(i)=cos(
rlonv(i))
 
   90             sinlon(i)=sin(
rlonv(i))
 
   93             print*,coslondlon(i),sinlondlon(i)
 
   95          coslon(1)=coslon(iip1)
 
   96          coslondlon(1)=coslondlon(iip1)
 
   97          sinlon(1)=sinlon(iip1)
 
   98          sinlondlon(1)=sinlondlon(iip1)
 
   99          print*,
'sum sinlondlon ',ssum(
iim,sinlondlon,1)/sinlondlon(1)
 
  100          print*,
'sum coslondlon ',ssum(
iim,coslondlon,1)/coslondlon(1)
 
  122              s0( i,j,
llm+1-l ) = q( i,j,l,0 )
 
  123              sx( i,j,
llm+1-l ) = q( i,j,l,1 )
 
  124              sy( i,j,
llm+1-l ) = q( i,j,l,2 )
 
  125              sz( i,j,
llm+1-l ) = q( i,j,l,3 )
 
  139             sm( i,j,
llm+1-l)=masse( i,j,l )
 
  152                s0(i,j,l) = s0(i,j,l) * sm( i,j,l )
 
  153                sx(i,j,l) = sx(i,j,l) * sm( i,j,l )
 
  154                sy(i,j,l) = sy(i,j,l) * sm( i,j,l )
 
  155                sz(i,j,l) = sz(i,j,l) * sm( i,j,l )
 
  203                zz=sy(i,1,l)/sm(i,1,l)
 
  204                dyn1=dyn1+sinlondlon(i)*zz
 
  205                dyn2=dyn2+coslondlon(i)*zz
 
  207                dys1=dys1+sinlondlon(i)*zz
 
  208                dys2=dys2+coslondlon(i)*zz
 
  211                sy(i,1,l)=dyn1*sinlon(i)+dyn2*coslon(i)
 
  212                sy(i,
jjp1,l)=dys1*sinlon(i)+dys2*coslon(i)
 
  215                s0(i,1,l)=s0n/smn+sy(i,1,l)
 
  219             s0(iip1,1,l)=s0(1,1,l)
 
  223                sxn(i)=s0(i+1,1,l)-s0(i,1,l)
 
  228                sy(i,1,l)=sy(i,1,l)*sm(i,1,l)
 
  230                s0(i,1,l)=s0(i,1,l)*sm(i,1,l)
 
  236                sx(i+1,1,l)=0.25*(sxn(i)+sxn(i+1))*sm(i+1,1,l)
 
  237                sx(i+1,
jjp1,l)=0.25*(sxs(i)+sxs(i+1))*sm(i+1,
jjp1,l)
 
  239             s0(iip1,1,l)=s0(1,1,l)
 
  241             sy(iip1,1,l)=sy(1,1,l)
 
  243             sx(1,1,l)=sx(iip1,1,l)
 
  258       call limx(s0,sx,sm,pente_max)
 
  272        call   limy(s0,sy,sm,pente_max)
 
  281        call limz(s0,sz,sm,pente_max)
 
  293         call limy(s0,sy,sm,pente_max)
 
  297              sm(iip1,j,l)=sm(1,j,l)
 
  298              s0(iip1,j,l)=s0(1,j,l)
 
  299              sx(iip1,j,l)=sx(1,j,l)
 
  300              sy(iip1,j,l)=sy(1,j,l)
 
  301              sz(iip1,j,l)=sz(1,j,l)
 
  317        call limx(s0,sx,sm,pente_max)
 
  337              q(i,j,
llm+1-l,0)=s0(i,j,l)/sm(i,j,l)
 
  338              q(i,j,
llm+1-l,1)=sx(i,j,l)/sm(i,j,l)
 
  339              q(i,j,
llm+1-l,2)=sy(i,j,l)/sm(i,j,l)
 
  340              q(i,j,
llm+1-l,3)=sz(i,j,l)/sm(i,j,l)
 
  350          masn=ssum(
iim,sm(1,1,l),1)
 
  352          qpn=ssum(
iim,s0(1,1,l),1)/masn
 
  353          qps=ssum(
iim,s0(1,
jjp1,l),1)/mass
 
  354          dqzpn=ssum(
iim,sz(1,1,l),1)/masn
 
  355          dqzps=ssum(
iim,sz(1,
jjp1,l),1)/mass
 
  357             q( i,1,
llm+1-l,3)=dqzpn
 
  359             q( i,1,
llm+1-l,0)=qpn
 
  368                dyn1=dyn1+sinlondlon(i)*sy(i,1,l)/sm(i,1,l)
 
  369                dyn2=dyn2+coslondlon(i)*sy(i,1,l)/sm(i,1,l)
 
  370                dys1=dys1+sinlondlon(i)*sy(i,
jjp1,l)/sm(i,
jjp1,l)
 
  371                dys2=dys2+coslondlon(i)*sy(i,
jjp1,l)/sm(i,
jjp1,l)
 
  375      s          (sinlon(i)*dyn1+coslon(i)*dyn2)
 
  376                q(i,1,
llm+1-l,0)=q(i,1,
llm+1-l,0)+q(i,1,
llm+1-l,2)
 
  378      s          (sinlon(i)*dys1+coslon(i)*dys2)
 
  390                zz=s0(i,2,l)/sm(i,2,l)-q(i,1,
llm+1-l,0)
 
  391                dyn1=dyn1+sinlondlon(i)*zz
 
  392                dyn2=dyn2+coslondlon(i)*zz
 
  393                zz=q(i,
jjp1,
llm+1-l,0)-s0(i,jjm,l)/sm(i,jjm,l)
 
  394                dys1=dys1+sinlondlon(i)*zz
 
  395                dys2=dys2+coslondlon(i)*zz
 
  399      s          (sinlon(i)*dyn1+coslon(i)*dyn2)/2.
 
  400                q(i,1,
llm+1-l,0)=q(i,1,
llm+1-l,0)+q(i,1,
llm+1-l,2)
 
  402      s          (sinlon(i)*dys1+coslon(i)*dys2)/2.
 
  406             q(iip1,1,
llm+1-l,0)=q(1,1,
llm+1-l,0)
 
  410                sxn(i)=q(i+1,1,
llm+1-l,0)-q(i,1,
llm+1-l,0)
 
  416                q(i+1,1,
llm+1-l,1)=0.25*(sxn(i)+sxn(i+1))
 
  417                q(i+1,
jjp1,
llm+1-l,1)=0.25*(sxs(i)+sxs(i+1))
 
  419             q(1,1,
llm+1-l,1)=q(iip1,1,
llm+1-l,1)
 
  431                q(iip1,j,l,iq)=q(1,j,l,iq)
 
  441                 IF (q(i,j,l,0).lt.0.)  
THEN 
  460              if(q(i,j,l,0).lt.qmin)
 
  461      ,       print*,
'apres pentes, s0(',i,
',',j,
',',l,
')=',q(i,j,l,0)
 
subroutine pentes_ini(q, w, masse, pbaru, pbarv, mode)
 
!$Header llmm1 INTEGER ip1jmp1
 
subroutine limy(s0, sy, sm, pente_max)
 
subroutine advz(limit, dtz, w, sm, s0, sx, sy, sz)
 
!$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
 
!$Id mode_top_bound COMMON comconstr && pi
 
subroutine limx(s0, sx, sm, pente_max)
 
subroutine advx(limit, dtx, pbaru, sm, s0, sx, sy, sz, lati, latf)
 
!$Header llmm1 INTEGER ip1jm
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
 
!$Header!CDK comgeom COMMON comgeom rlonu
 
subroutine limz(s0, sz, sm, pente_max)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
subroutine advy(limit, dty, pbarv, sm, s0, sx, sy, sz)
 
!$Id mode_top_bound COMMON comconstr dtvr
 
c c zjulian c cym CALL iim cym klev iim
 
!$Header!CDK comgeom COMMON comgeom rlonv