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 BoldingLOCAL 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