plume_boundary Derived Type

type, public :: plume_boundary

A type in which procedures for getting the boundary conditions of plumes are to be specified. The descendent types can contain whatever data is needed to compute the result.

This class effectively provides free boundary conditions. It's type-bound procedures should be overridden to provide case-specific conditions.


Inherited by

type~~plume_boundary~~InheritedByGraph type~plume_boundary plume_boundary type~dallaston2015_seasonal_boundary dallaston2015_seasonal_boundary type~dallaston2015_seasonal_boundary->type~plume_boundary type~asym_plume asym_plume type~asym_plume->type~plume_boundary boundaries type~upstream_plume_boundary upstream_plume_boundary type~upstream_plume_boundary->type~plume_boundary type~simple_plume_boundary simple_plume_boundary type~simple_plume_boundary->type~plume_boundary type~static_plume static_plume type~static_plume->type~plume_boundary boundaries type~plume plume type~plume->type~plume_boundary boundaries

Contents

Source Code


Type-Bound Procedures

procedure, public :: thickness_bound_info => bound_info

Indicates the type and depth of the thickness boundary at different locations.

  • private subroutine bound_info(this, location, bound_type, bound_depth)

    Author
    Chris MacMackin
    Date
    March 2017

    Provides information about the type of boundary, and the number of layers of data-points needed to describe it.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    integer, intent(out) :: bound_type

    An integer representing what sort of boundary condition is used. The integer value corresponding to each boundary type is specified in the boundary_types_mod.

    integer, intent(out) :: bound_depth

    The number of layers of data-points needed to specify the boundary condition.

procedure, public :: velocity_bound_info => bound_info

Indicates the type and depth of the thickness boundary at different locations.

  • private subroutine bound_info(this, location, bound_type, bound_depth)

    Author
    Chris MacMackin
    Date
    March 2017

    Provides information about the type of boundary, and the number of layers of data-points needed to describe it.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    integer, intent(out) :: bound_type

    An integer representing what sort of boundary condition is used. The integer value corresponding to each boundary type is specified in the boundary_types_mod.

    integer, intent(out) :: bound_depth

    The number of layers of data-points needed to specify the boundary condition.

procedure, public :: temperature_bound_info => bound_info

Indicates the type and depth of the thickness boundary at different locations.

  • private subroutine bound_info(this, location, bound_type, bound_depth)

    Author
    Chris MacMackin
    Date
    March 2017

    Provides information about the type of boundary, and the number of layers of data-points needed to describe it.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    integer, intent(out) :: bound_type

    An integer representing what sort of boundary condition is used. The integer value corresponding to each boundary type is specified in the boundary_types_mod.

    integer, intent(out) :: bound_depth

    The number of layers of data-points needed to specify the boundary condition.

procedure, public :: salinity_bound_info => bound_info

Indicates the type and depth of the thickness boundary at different locations.

  • private subroutine bound_info(this, location, bound_type, bound_depth)

    Author
    Chris MacMackin
    Date
    March 2017

    Provides information about the type of boundary, and the number of layers of data-points needed to describe it.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    integer, intent(out) :: bound_type

    An integer representing what sort of boundary condition is used. The integer value corresponding to each boundary type is specified in the boundary_types_mod.

    integer, intent(out) :: bound_depth

    The number of layers of data-points needed to specify the boundary condition.

procedure, public :: thickness_bound => scalar_bound

Produces a field containing the boundary conditions for plume thickness at the specified location.

  • private function scalar_bound(this, location)

    Author
    Chris MacMackin
    Date
    March 2017

    Returns a field containing the boundary values for the specified boundary location.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    Return Value class(scalar_field), pointer

procedure, public :: velocity_bound => vector_bound

Produces a field containing the boundary conditions for plume velocity at the specified location.

  • private function vector_bound(this, location)

    Author
    Chris MacMackin
    Date
    March 2017

    Returns a field containing the boundary values for the specified boundary location.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    Return Value class(vector_field), pointer

procedure, public :: temperature_bound => scalar_bound

Produces a field containing the boundary conditions for plume temperature at the specified location.

  • private function scalar_bound(this, location)

    Author
    Chris MacMackin
    Date
    March 2017

    Returns a field containing the boundary values for the specified boundary location.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    Return Value class(scalar_field), pointer

procedure, public :: salinity_bound => scalar_bound

Produces a field containing the boundary conditions for plume salinity at the specified location.

  • private function scalar_bound(this, location)

    Author
    Chris MacMackin
    Date
    March 2017

    Returns a field containing the boundary values for the specified boundary location.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(in) :: this
    integer, intent(in) :: location

    Which boundary information is to be provided for. The boundary will be the one normal to dimension of number abs(boundary). If the argument is negative, then the lower boundary is returned. If positive, then the upper boundary is returned.

    Return Value class(scalar_field), pointer

procedure, public :: set_time

Specifies the time at which to calculate the boundary conditions.

  • private subroutine set_time(this, time)

    Author
    Chris MacMackin
    Date
    May 2017

    Sets the time at which boundary conditions are to be calculated.

    Arguments

    Type IntentOptional AttributesName
    class(plume_boundary), intent(inout) :: this
    real(kind=r8), intent(in) :: time

Source Code

  type, public :: plume_boundary
    !* Author: Chris MacMackin
    !  Date: September 2016
    !
    ! A type in which procedures for getting the boundary conditions
    ! of plumes are to be specified. The descendent types can contain
    ! whatever data is needed to compute the result.
    !
    ! This class effectively provides free boundary conditions. It's 
    ! type-bound procedures should be overridden to provide case-specific
    ! conditions.
    !
  contains
    procedure :: thickness_bound_info => bound_info
      !! Indicates the type and depth of the thickness boundary at
      !! different locations.
    procedure :: velocity_bound_info => bound_info
      !! Indicates the type and depth of the thickness boundary at
      !! different locations.
    procedure :: temperature_bound_info => bound_info
      !! Indicates the type and depth of the thickness boundary at
      !! different locations.
    procedure :: salinity_bound_info => bound_info
      !! Indicates the type and depth of the thickness boundary at
      !! different locations.
    procedure :: thickness_bound => scalar_bound
      !! Produces a field containing the boundary conditions for plume
      !! thickness at the specified location.
    procedure :: velocity_bound => vector_bound
      !! Produces a field containing the boundary conditions for plume
      !! velocity at the specified location.
    procedure :: temperature_bound => scalar_bound
      !! Produces a field containing the boundary conditions for plume
      !! temperature at the specified location.
    procedure :: salinity_bound => scalar_bound
      !! Produces a field containing the boundary conditions for plume
      !! salinity at the specified location.
    procedure :: set_time
      !! Specifies the time at which to calculate the boundary
      !! conditions.
  end type plume_boundary