plume_boundary_mod Module

Provides an abstract derived type which can be subtyped in order to specify the boundary conditions for plume types.


Uses

  • module~~plume_boundary_mod~~UsesGraph module~plume_boundary_mod plume_boundary_mod factual_mod factual_mod module~plume_boundary_mod->factual_mod iso_fortran_env iso_fortran_env module~plume_boundary_mod->iso_fortran_env module~boundary_types_mod boundary_types_mod module~plume_boundary_mod->module~boundary_types_mod

Used by

  • module~~plume_boundary_mod~~UsedByGraph module~plume_boundary_mod plume_boundary_mod module~asymmetric_plume_mod asymmetric_plume_mod module~asymmetric_plume_mod->module~plume_boundary_mod module~upstream_plume_mod upstream_plume_mod module~asymmetric_plume_mod->module~upstream_plume_mod module~simple_plume_boundary_mod simple_plume_boundary_mod module~asymmetric_plume_mod->module~simple_plume_boundary_mod module~upstream_plume_mod->module~plume_boundary_mod module~simple_plume_boundary_mod->module~plume_boundary_mod module~dallaston2015_seasonal_mod dallaston2015_seasonal_mod module~dallaston2015_seasonal_mod->module~plume_boundary_mod module~static_plume_mod static_plume_mod module~static_plume_mod->module~plume_boundary_mod module~static_plume_mod->module~upstream_plume_mod module~static_plume_mod->module~simple_plume_boundary_mod module~plume_mod plume_mod module~plume_mod->module~plume_boundary_mod module~plume_mod->module~upstream_plume_mod module~plume_mod->module~simple_plume_boundary_mod

Contents


Derived Types

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.

Read more…

Type-Bound Procedures

procedure, public :: thickness_bound_info => bound_info

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

procedure, public :: velocity_bound_info => bound_info

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

procedure, public :: temperature_bound_info => bound_info

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

procedure, public :: salinity_bound_info => bound_info

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

procedure, public :: thickness_bound => scalar_bound

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

procedure, public :: velocity_bound => vector_bound

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

procedure, public :: temperature_bound => scalar_bound

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

procedure, public :: salinity_bound => scalar_bound

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

procedure, public :: set_time

Specifies the time at which to calculate the boundary conditions.


Functions

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

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


Subroutines

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.

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