uv_advect - 2D advection of momentum (Source File: uv_advect.F90)

INTERFACE:

    subroutine uv_advect(U,V,DU,DV)
 
    Note (KK): keep in sync with interface in m2d.F90
DESCRIPTION:

Wrapper to prepare and do calls to do_advection (see section 7.4.2 on page [*]) to calculate the advection terms of the depth-averaged velocities. USES:

    use domain, only: imin,imax,jmin,jmax,az,au,av,ax
 #if defined(SPHERICAL) || defined(CURVILINEAR)
    use domain, only: dxv,dyu
 #else
    use domain, only: dx,dy
 #endif
    use m2d, only: dtm,vel2d_adv_split,vel2d_adv_hor
    use variables_2d, only: UEx,VEx
    use advection, only: NOADV,UPSTREAM,J7,do_advection
    use halo_zones, only: update_2d_halo,wait_halo,U_TAG,V_TAG
    use getm_timers, only: tic,toc,TIM_UVADV,TIM_UVADVH
  $ use omp_lib
    IMPLICIT NONE
INPUT PARAMETERS:
    REALTYPE,dimension(E2DFIELD),intent(in)        :: U,V
    REALTYPE,dimension(E2DFIELD),target,intent(in) :: DU,DV
REVISION HISTORY:
    Original author(s): Hans Burchard & Karsten Bolding
LOCAL VARIABLES:
    integer :: i,j
    REALTYPE,dimension(E2DFIELD)               :: fadv,Uadv,Vadv,DUadv,DVadv
    REALTYPE,dimension(E2DFIELD),target        :: Dadv
    REALTYPE,dimension(:,:),pointer,contiguous :: pDadv