kochergin1987_entrainment_mod Module

Provides a concrete implementation of abstract_entrainment in the form of the parameterisation described by Kochergin (1987).


Uses

  • module~~kochergin1987_entrainment_mod~~UsesGraph module~kochergin1987_entrainment_mod kochergin1987_entrainment_mod factual_mod factual_mod module~kochergin1987_entrainment_mod->factual_mod iso_fortran_env iso_fortran_env module~kochergin1987_entrainment_mod->iso_fortran_env module~entrainment_mod entrainment_mod module~kochergin1987_entrainment_mod->module~entrainment_mod module~entrainment_mod->factual_mod module~entrainment_mod->iso_fortran_env

Contents


Interfaces

public interface kochergin1987_entrainment

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

    Arguments

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

    The entrainment coefficient

    real(kind=r8), intent(in) :: delta

    The ratio

    Return Value type(kochergin1987_entrainment)

    A new entrainment object


Derived Types

A parameterisation of entrainment () as described by Kochergin (1987): Here, is an entrainment coefficient, is the velocity of the plume, is the reduced gravity, and is the turbulent Schmidt number. The latter-most can be expressed as , where is the Richardson number.

Components

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

The entrainment coefficient

real(kind=r8), private :: delta =0.036_r8

The ratio

Constructor

private pure function constructor(coefficient, delta)

Type-Bound Procedures

procedure, public :: entrainment_rate => kochergin1987_rate

Returns the entrainment rate for ambient water into the plume.


Functions

private pure function constructor(coefficient, delta) result(this)

Arguments

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

The entrainment coefficient

real(kind=r8), intent(in) :: delta

The ratio

Return Value type(kochergin1987_entrainment)

A new entrainment object

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

Author
Christopher MacMackin
Date
Feburary 2018

Here, is an entrainment coefficient, is the velocity of the plume, is the reduced gravity, and is the turbulent Schmidt number. The Schmidt number is a function of the Richardson number :

Arguments

Type IntentOptional AttributesName
class(kochergin1987_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