*=*=*=*= dudv2.html =*=*=*=*
SUBROUTINE dudv2

SUBROUTINE dudv2


      SUBROUTINE dudv2 ( h, pksf, bern, du, dv )
      IMPLICIT NONE
c
c=======================================================================
c
c   Auteur:  P. Le Van
c   -------
c
c   Objet:
c   ------
c
c   *****************************************************************
c   ..... calcul du terme de pression (gradient de p/densite )   et
c          du terme de ( -gradient de la fonction de Bernouilli ) ...
c   *****************************************************************
c          Ces termes sont ajoutes a  d(ucov)/dt et a d(vcov)/dt  ..
c
c
c     h , pksf, bern  sont des arguments d'entree  pour le s-pg  ....
c     du et dv        sont des arguments de sortie pour le s-pg  ....
c
c=======================================================================
c
#include "dimensions.h"
#include "paramet.h"

      REAL h( ip1jmp1,llm ),pksf( ip1jmp1 ) ,bern( ip1jmp1,llm ) ,
     *         du( ip1jmp1,llm ),  dv( ip1jm,llm )
      REAL     sl
      INTEGER  l,ij
c
#include "comvert.h"
c
      DO 5 l = 1,llm
c
      sl = 0.5*s(l)
c
      DO 2  ij = iip2, ip1jm - 1
      du( ij,l ) = du( ij,l ) + sl * (  h( ij,l )  + h( ij+1,l  ) )  *
     *                               ( pksf( ij )  - pksf( ij+1 ) )
     *                        +      bern( ij,l )  - bern( ij+1,l  )
   2  CONTINUE
c
c
c    .....  correction  pour du(iip1,j,l),  j=2,jjm   ......
c    ...          du(iip1,j,l) = du(1,j,l)                 ...
c
CDIR$ IVDEP
      DO 3 ij = iip1+ iip1, ip1jm, iip1
      du( ij,l ) = du( ij - iim,l )
   3  CONTINUE
c
c
      DO 4 ij = 1,ip1jm
      dv( ij,l ) = dv( ij,l ) + sl * (  h( ij,l ) + h( ij+iip1,l ) ) *
     *                            ( pksf(ij+iip1) - pksf(  ij    ) )
     *                        + bern( ij+iip1,l ) - bern( ij  ,l  )
   4  CONTINUE
c
   5  CONTINUE
      RETURN
      END