SUBROUTINE tourpot_loc ( vcov, ucov, massebxy, vorpot )

!-------------------------------------------------------------------------------
! Authors: P. Le Van.
!-------------------------------------------------------------------------------
! Purpose: Compute potential vorticity.
  USE parallel_lmdz
  USE mod_filtreg_p
  IMPLICIT NONE
  include "dimensions.h"
  include "paramet.h"
  include "comgeom.h"
!===============================================================================
! Arguments:
  REAL, INTENT(IN)  :: vcov    (ijb_v:ije_v,llm)
  REAL, INTENT(IN)  :: ucov    (ijb_u:ije_u,llm)
  REAL, INTENT(IN)  :: massebxy(ijb_v:ije_v,llm)
  REAL, INTENT(OUT) :: vorpot  (ijb_v:ije_v,llm)
!===============================================================================
! Method used:
!   vorpot = ( Filtre( d(vcov)/dx - d(ucov)/dy ) + fext ) /psbarxy
!===============================================================================
! Local variables:
  INTEGER :: l, ij, ije, ijb, jje, jjb
  REAL    :: rot(ijb_v:ije_v,llm)
!===============================================================================

  ijb=ij_begin-iip1
  ije=ij_end
  IF(pole_nord) ijb=ij_begin

!--- Wind vorticity ; correction: rot(iip1,j,l) = rot(1,j,l)
!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
  DO l=1,llm
    IF(pole_sud) ije=ij_end-iip1-1
    DO ij=ijb,ije
      rot(ij,l)=vcov(ij+1,l)-vcov(ij,l)+ucov(ij+iip1,l)-ucov(ij,l)
    END DO
    IF(pole_sud) ije=ij_end-iip1
    DO ij=ijb+iip1-1,ije,iip1; rot(ij,l)=rot(ij-iim,l); END DO
  END DO
!$OMP END DO NOWAIT

!--- Filter
  jjb=jj_begin-1
  jje=jj_end
  IF(pole_nord) jjb=jjb+1
  IF(pole_sud)  jje=jje-1
  CALL filtreg_p(rot,jjb_v,jje_v,jjb,jje,jjm,llm,2,1,.FALSE.,1)

!--- Potential vorticity ; correction: rot(iip1,j,l) = rot(1,j,l)
!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
  DO l=1,llm
    IF(pole_sud) ije=ij_end-iip1-1
    DO ij=ijb,ije
      vorpot(ij,l)=(rot(ij,l)+fext(ij))/massebxy(ij,l)
    END DO
    IF(pole_sud) ije=ij_end-iip1
    DO ij=ijb+iip1-1,ije,iip1; vorpot(ij,l)=vorpot(ij-iim,l); END DO
  END DO
!$OMP END DO NOWAIT

END SUBROUTINE tourpot_loc

