ocean_vcoord_is_terrain_following Function

public 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.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: code

A VCOORD_* code from parse_vcoord_type.

Return Value logical


Called by

proc~~ocean_vcoord_is_terrain_following~~CalledByGraph proc~ocean_vcoord_is_terrain_following ocean_vcoord_is_terrain_following proc~ocean_stability_audit ocean_stability_audit proc~ocean_stability_audit->proc~ocean_vcoord_is_terrain_following proc~engine_setup engine_setup proc~engine_setup->proc~ocean_stability_audit proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~complete_ocean_create

Source Code

   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