ocean_bdrag_config_t Derived Type

type, public :: ocean_bdrag_config_t


Inherited by

type~~ocean_bdrag_config_t~~InheritedByGraph type~ocean_bdrag_config_t ocean_bdrag_config_t type~ocean_config_t ocean_config_t type~ocean_config_t->type~ocean_bdrag_config_t bdrag type~config_t config_t type~config_t->type~ocean_config_t ocean type~ocean_handle_t ocean_handle_t type~ocean_handle_t->type~config_t cfg

Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: bbl_thick_min = 0.0_wp

Minimum effective BBL thickness (m). Typical 0.1 m.

real(kind=wp), public :: bed_factor = 1.0_wp

Multiplier on the bed-layer (k=1) drag tendency only. Default 1.0 = bit-identical.

real(kind=wp), public :: bg_vel = 0.0_wp

Background velocity floor (m/s) for the distributed quadratic form. Typical 0.1 m/s.

real(kind=wp), public :: cd = 0.0_wp

Quadratic drag coefficient (dimensionless). Typical 2.5e-3. Zero disables the quadratic branch.

real(kind=wp), public :: cdrag_side = 0.0_wp

Side-wall drag coefficient (dimensionless) for the channel drag. Zero (default) disables the branch.

logical, public :: channel_drag = .false.

Lateral side-wall (channel) drag: a per-layer Rayleigh sink at every layer with a partially blocked cross-stream perimeter. Default .false.. Flat-bottom/all-wet ⇒ exact no-op.

character(len=16), public :: form = "quadratic"

Bottom-drag variant: “quadratic” (default, log-layer du/dt = -C_d·|U|·u/h) or “linear” (Rayleigh du/dt = -r·u).

real(kind=wp), public :: hbbl = 0.0_wp

Bottom-boundary-layer thickness (m) over which drag is distributed. Zero (default) = bed-only mode.

logical, public :: implicit = .false.

Backward-Euler (implicit) bottom drag: u^{n+1}=u/(1+dt·λ), unconditionally stable. Default .false. = explicit forward-Euler (bit-identical) but unstable on thin shelf layers. Recommend .true. for shallow-shelf runs.

real(kind=wp), public :: r = 0.0_wp

Linear Rayleigh coefficient (1/s). Active when form = "linear".


Source Code

   type :: ocean_bdrag_config_t
      character(len=16) :: form = "quadratic"
         !! Bottom-drag variant: "quadratic" (default, log-layer
         !! du/dt = -C_d·|U|·u/h) or "linear" (Rayleigh du/dt = -r·u).
      real(wp) :: cd = 0.0_wp
         !! Quadratic drag coefficient (dimensionless).  Typical 2.5e-3.
         !! Zero disables the quadratic branch.
      real(wp) :: r = 0.0_wp
         !! Linear Rayleigh coefficient (1/s).  Active when `form = "linear"`.
      real(wp) :: hbbl = 0.0_wp
         !! Bottom-boundary-layer thickness (m) over which drag is
         !! distributed.  Zero (default) = bed-only mode.
      real(wp) :: bg_vel = 0.0_wp
         !! Background velocity floor (m/s) for the distributed quadratic
         !! form.  Typical 0.1 m/s.
      real(wp) :: bbl_thick_min = 0.0_wp
         !! Minimum effective BBL thickness (m).  Typical 0.1 m.
      real(wp) :: bed_factor = 1.0_wp
         !! Multiplier on the bed-layer (k=1) drag tendency only.  Default
         !! `1.0` = bit-identical.
      logical :: channel_drag = .false.
         !! Lateral side-wall (channel) drag: a per-layer Rayleigh sink at
         !! every layer with a partially blocked cross-stream perimeter.
         !! Default `.false.`.  Flat-bottom/all-wet ⇒ exact no-op.
      real(wp) :: cdrag_side = 0.0_wp
         !! Side-wall drag coefficient (dimensionless) for the channel drag.
         !! Zero (default) disables the branch.
      logical :: implicit = .false.
         !! Backward-Euler (implicit) bottom drag: `u^{n+1}=u/(1+dt·λ)`,
         !! unconditionally stable.  Default `.false.` = explicit
         !! forward-Euler (bit-identical) but unstable on thin shelf layers.
         !! Recommend `.true.` for shallow-shelf runs.
   end type ocean_bdrag_config_t