jenkins1991_entrainment Derived Type

type, public, extends(abstract_entrainment) :: jenkins1991_entrainment

A parameterisation of entrainment () as described by Jenkins (1991): Here, is a coefficient typically taken to be 0.036 (the default value), is the velocity of the plume, is the angle of slope of the ice shelf base, and is the basal depth of the ice shelf.


Inherits

type~~jenkins1991_entrainment~~InheritsGraph type~jenkins1991_entrainment jenkins1991_entrainment type~abstract_entrainment abstract_entrainment type~jenkins1991_entrainment->type~abstract_entrainment

Contents


Components

TypeVisibility AttributesNameInitial
real(kind=r8), private :: coefficient =1.0_r8

The entrainment coefficient $E_0$


Constructor

public interface jenkins1991_entrainment

  • private pure function constructor(coefficient) result(this)

    Arguments

    Type IntentOptional AttributesName
    real(kind=r8), intent(in) :: coefficient

    The entrainment coefficient, $E_0$ to be used

    Return Value type(jenkins1991_entrainment)

    A new entrainment object


Type-Bound Procedures

procedure, public :: entrainment_rate => jenkins1991_rate

Returns the entrainment rate for ambient water into the plume.

  • private function jenkins1991_rate(this, velocity, thickness, depth, density_diff, time) result(entrainment)

    Author
    Christopher MacMackin
    Date
    October 2016

    Here, is a coefficient typically taken to be 0.036 (the default value), is the velocity of the plume, is the angle of slope of the ice shelf base, and is the basal depth of the ice shelf.

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(jenkins1991_entrainment), intent(in) :: this
    class(vector_field), intent(in) :: velocity

    The velocity field of the plume into which fluid is being entrained.

    class(scalar_field), intent(in) :: thickness

    The thickness of the plume into which fluid is being entrained

    class(scalar_field), intent(in) :: depth

    The depth of the upper surface of the plume into which fluid is being entrained

    class(scalar_field), intent(in) :: density_diff

    The difference between the ambient density and the density of the plume into which the ambient fluid is being entrained.

    real(kind=r8), intent(in), optional :: time

    The time at which the entrainment is being calculated. If not present then assumed to be same as previous value passed.

    Return Value class(scalar_field), pointer

    The value of the entrainment

Source Code

  type, extends(abstract_entrainment), public :: jenkins1991_entrainment
    !* Author: Christopher MacMackin
    !  Date: October 2016
    !
    ! A parameterisation of entrainment (\(e\)) as described by Jenkins
    ! (1991): $$e = E_0 |\vec{U}\sin(\theta) \simeq
    ! E_0|\vec{U}||\nabla b|.$$ Here, \(E_0\) is a coefficient typically
    ! taken to be 0.036 (the default value), \(\vec{U}\) is the velocity
    ! of the plume, \(\theta\) is the angle of slope of the ice shelf
    ! base, and \(b\) is the basal depth of the ice shelf.
    !
    private
    real(r8) :: coefficient = 1.0_r8
      !! The entrainment coefficient $E_0$
  contains
    procedure :: entrainment_rate => jenkins1991_rate
      !! Returns the entrainment rate for ambient water into the plume.
  end type jenkins1991_entrainment