do_salinity - salinity equation

INTERFACE:

    subroutine do_salinity(n)
DESCRIPTION:

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 NONE
INPUT PARAMETERS:
    integer, intent(in) :: n
LOCAL VARIABLES:
    integer                   :: i,j,k,rc
    REALTYPE, POINTER         :: Res(:)
    REALTYPE, POINTER         :: auxn(:),auxo(:)
    REALTYPE, POINTER         :: a1(:),a2(:),a3(:),a4(:)
   REALTYPE                   :: S2(I3DFIELD)
   integer                    :: status