subroutine adv_arakawa_j7_2dh(dt,f,fi,Di,adv,vfU,vfV,Dn,DU,DV, &
#if defined(SPHERICAL) || defined(CURVILINEAR)
dxv,dyu,dxu,dyv,arcd1, &
#endif
AH,az, &
mask_uflux,mask_vflux,mask_xflux)
Note (KK): Keep in sync with interface in advection.F90
DESCRIPTION:
USES:
use domain, only: imin,imax,jmin,jmax
#if !( defined(SPHERICAL) || defined(CURVILINEAR) )
use domain, only: dx,dy,ard1
#endif
$ use omp_lib
IMPLICIT NONE
INPUT PARAMETERS:
REALTYPE,intent(in) :: dt,AH
REALTYPE,dimension(E2DFIELD),target,intent(in) :: f
REALTYPE,dimension(E2DFIELD),intent(in) :: vfU,vfV,Dn,DU,DV
#if defined(SPHERICAL) || defined(CURVILINEAR)
REALTYPE,dimension(:,:),pointer,contiguous,intent(in) :: dxu,dyu
REALTYPE,dimension(_IRANGE_HALO_,_JRANGE_HALO_-1),intent(in) :: dxv,dyv
REALTYPE,dimension(E2DFIELD),intent(in) :: arcd1
#endif
integer,dimension(E2DFIELD),intent(in) :: az
logical,dimension(:,:),pointer,contiguous,intent(in) :: mask_uflux,mask_xflux
logical,dimension(_IRANGE_HALO_,_JRANGE_HALO_-1),intent(in) :: mask_vflux
INPUT/OUTPUT PARAMETERS:
REALTYPE,dimension(E2DFIELD),target,intent(inout) :: fi,Di,advLOCAL VARIABLES:
logical :: use_AH
integer :: i,j,matsuno_it
REALTYPE :: Dio,advn
REALTYPE,dimension(:,:),pointer,contiguous :: faux,p_fiaux,p_Diaux,p_advaux
REALTYPE,dimension(E2DFIELD) :: flux_e,flux_n,flux_ne,flux_nw
REALTYPE,dimension(E2DFIELD) :: f_e,f_n,f_ne,f_nw
REALTYPE,dimension(E2DFIELD),target :: fiaux,Diaux,advaux
REALTYPE,dimension(E2DFIELD) :: uflux,vflux
REALTYPE,parameter :: one3rd = _ONE_/_THREE_
REALTYPE,parameter :: one6th = one3rd/_TWO_
REVISION HISTORY:
Original author(s): Knut Klingbeil