subroutine ip_stelling_vankester()

Here, the horizontal gradients of buoyancy, $ (\partial_x^* b)_k$ and $ (\partial_y^* b)_k$, are calculated as suggested in Stelling and vanKester (1994). The horizontal gradient of buoyancy is calculated with defining kmax non-sloping control volumes in each water column and evaluating the horizontal gradients at the intersections of neighbouring control volumes. For each intersection, the buoyancy gradient is evaluated by linear interpolation of the buoyancy profile in the neighbour column at the T-depth of the actual column for both directions. The minimum of the absolute value of the buoyancy gradient for both directions is used then for the internal pressure calculation. If both gradients point inconcistently in different directions, the buoyancy gradient in an intersection does not contribute to the internal pressure (as happens for violated hydrostatic consistency and strong stratification) USES:

    use internal_pressure
  $ use omp_lib
    Original author(s): Richard Hofmeister
    integer                   :: i,j,k,l,kcount, rc
    REALTYPE                  :: dxm1,dym1
    REALTYPE                  :: prgr,dyz,dzz,zlm
    integer                   :: klower,kupper
    integer                   :: lnum
    REALTYPE                  :: db,dcn,dcm
    logical                   :: changed
    REALTYPE                  :: zltmp
    REALTYPE                  :: buoyplus,buoyminus
    REALTYPE                  :: zi(I3DFIELD)
    REALTYPE, POINTER         :: zx(:)
    REALTYPE, POINTER         :: zl(:)
    REALTYPE, POINTER         :: dzl(:)
    REALTYPE, POINTER         :: dzfrac(:)
    integer, POINTER          :: lvel(:)
    integer, POINTER          :: m(:)
    integer, POINTER          :: n(:)

kklingbe 2017-10-02