uv_advect_3d - 3D momentum advection (Source File: uv_advect_3d.F90)

INTERFACE:

    subroutine uv_advect_3d()
DESCRIPTION:

Wrapper to prepare and do calls to routine do_advection_3d (see section 8.6.2 on page [*]) to calculate the advection terms of the 3D velocities.

If save_numerical_analyses is set to .true., the numerical dissipation is calculated using the method suggested by Burchard (2012). USES:

    use domain, only: imin,imax,jmin,jmax,kmax,az,au,av,ax
 #if defined(SPHERICAL) || defined(CURVILINEAR)
    use domain, only: dxv,dyu
 #else
    use domain, only: dx,dy
 #endif
    use m3d, only: vel3d_adv_split,vel3d_adv_hor,vel3d_adv_ver
    use variables_3d, only: dt,uu,vv,ww,ho,hn,hun,hvn,uuEx,vvEx
    use advection, only: NOADV,UPSTREAM,J7
    use advection_3d, only: do_advection_3d
    use halo_zones, only: update_3d_halo,wait_halo,U_TAG,V_TAG
    use variables_3d, only: do_numerical_analyses
    use variables_3d, only: numdis3d,numdis2d
 #ifdef _MOMENTUM_TERMS_
    use variables_3d, only: adv_u,adv_v
 #endif
    use getm_timers, only: tic,toc,TIM_UVADV3D,TIM_UVADV3DH
  $ use omp_lib
    IMPLICIT NONE
REVISION HISTORY:
    Original author(s): Hans Burchard & Karsten Bolding
LOCAL VARIABLES:
    integer                                      :: i,j,k
    REALTYPE,dimension(I3DFIELD)                 :: fadv3d,uuadv,vvadv,wwadv,huadv,hvadv
    REALTYPE,dimension(I3DFIELD),target          :: hnadv
    REALTYPE,dimension(:,:,:),pointer,contiguous :: phadv
    REALTYPE,dimension(I3DFIELD)                 :: work3d,hires