###

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