Does this VCOORD_* code put the layer interfaces on surfaces
that follow the bottom (and, under an ice shelf, the ice base)?
VCOORD_ZSTAR is NOT in the set: it is MOM6 z
(ocean_vcoord_zstar_target), a fixed nominal z profile dilated
by (H + eta)/H over bed fillers, so its interfaces are
geopotential to O(eta/H) and do not tilt with the topography.
(Until the z slice it shared the VCOORD_SIGMA branch and was
in the set.) VCOORD_ZSIGMA and
VCOORD_ZSTAR_SIGMA blend TO sigma in shallow water, which is
where the stiff faces are, so they are in too. The fixed-z,
Lagrangian and density families are not: their interfaces do not
tilt with the topography.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | code |
A |
pure function ocean_vcoord_is_terrain_following(code) result(tf) !! Does this `VCOORD_*` code put the layer interfaces on surfaces !! that follow the bottom (and, under an ice shelf, the ice base)? !! !! `VCOORD_ZSTAR` is NOT in the set: it is MOM6 z* !! (`ocean_vcoord_zstar_target`), a fixed nominal z profile dilated !! by `(H + eta)/H` over bed fillers, so its interfaces are !! geopotential to `O(eta/H)` and do not tilt with the topography. !! (Until the z* slice it shared the `VCOORD_SIGMA` branch and was !! in the set.) `VCOORD_ZSIGMA` and !! `VCOORD_ZSTAR_SIGMA` blend TO sigma in shallow water, which is !! where the stiff faces are, so they are in too. The fixed-z, !! Lagrangian and density families are not: their interfaces do not !! tilt with the topography. integer, intent(in) :: code !! A `VCOORD_*` code from `parse_vcoord_type`. logical :: tf tf = (code == VCOORD_SIGMA .or. & code == VCOORD_ZSIGMA .or. code == VCOORD_ZSTAR_SIGMA) end function ocean_vcoord_is_terrain_following