Here, one time step for the salinity equation is performed. First, preparations for the call to the advection schemes are made, i.e. calculating the necessary metric coefficients. After the call to the advection schemes, which actually perform the advection (and horizontal diffusion) step as an operational split step, the tri-diagonal matrix for calculating the new salinity by means of a semi-implicit central scheme for the vertical diffusion is set up. There are no source terms on the right hand sides. The subroutine is completed by solving the tri-diagonal linear equation by means of a tri-diagonal solver.
Also here, there are some specific options for single test cases selected by compiler options. USES:
use advection_3d, only: do_advection_3d use variables_3d, only: dt,cnpar,hn,ho,nuh,uu,vv,ww,hun,hvn use domain, only: imin,imax,jmin,jmax,kmax,az use parameters, only: avmols use getm_timers, only: tic, toc, TIM_SALT, TIM_MIXANALYSIS use variables_3d, only: do_numerical_analyses use variables_3d, only: nummix3d_S,nummix2d_S use variables_3d, only: phymix3d_S,phymix2d_S $ use omp_lib IMPLICIT NONEINPUT PARAMETERS:
integer, intent(in) :: nLOCAL VARIABLES:
integer :: i,j,k,rc REALTYPE, POINTER :: Res(:) REALTYPE, POINTER :: auxn(:),auxo(:) REALTYPE, POINTER :: a1(:),a2(:),a3(:),a4(:) REALTYPE :: S2(I3DFIELD) integer :: status