Fills the level heights for ExtrudedMesh with terrain-following (sigma) levels,
z_k = sigma_k h , k = 0..nz ,
at every geometry node, so z_0 = -h and z_nz = 0. This is ExtrudedHybridLevels with no flat interfaces. The levels are continuous across lateral faces when h is (see ExtrudedHybridLevels).
Input - h(1:nGeo+1,1:nGeo+1,1:nElem2D) : Water depth at the surface geometry nodes, in the length unit of the mesh, h > 0 - sigma(0:nz) : nz >= 1, sigma(0) = -1, sigma(nz) = 0, strictly increasing
Output - zLevels(1:nGeo+1,1:nGeo+1,0:nz,1:nElem2D) : Level heights
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=prec), | intent(in) | :: | h(1:,1:,1:) | |||
| real(kind=prec), | intent(in) | :: | sigma(0:) | |||
| real(kind=prec), | intent(out) | :: | zLevels(1:,1:,0:,1:) |
subroutine ExtrudedSigmaLevels(h,sigma,zLevels)
!! Fills the level heights for ExtrudedMesh with terrain-following (sigma) levels,
!!
!! z_k = sigma_k h , k = 0..nz ,
!!
!! at every geometry node, so z_0 = -h and z_nz = 0. This is ExtrudedHybridLevels with
!! no flat interfaces. The levels are continuous across lateral faces when h is (see
!! ExtrudedHybridLevels).
!!
!! Input
!! - h(1:nGeo+1,1:nGeo+1,1:nElem2D) : Water depth at the surface geometry nodes, in
!! the length unit of the mesh, h > 0
!! - sigma(0:nz) : nz >= 1, sigma(0) = -1, sigma(nz) = 0, strictly increasing
!!
!! Output
!! - zLevels(1:nGeo+1,1:nGeo+1,0:nz,1:nElem2D) : Level heights
implicit none
real(prec),intent(in) :: h(1:,1:,1:)
real(prec),intent(in) :: sigma(0:)
real(prec),intent(out) :: zLevels(1:,1:,0:,1:)
! Local
real(prec) :: noDepths(1:0)
call ExtrudedHybridLevels(h,noDepths,sigma,zLevels)
endsubroutine ExtrudedSigmaLevels