boundaryRoutine Abstract Interface

abstract interface

Interface definition for the boundary condition subroutines

private subroutine boundaryRoutine(me, state, bcBuffer, globBC, levelDesc, tree, nSize, iLevel, sim_time, neigh, layout, fieldProp, varPos, nScalars, varSys, derVarPos, physics, iField, mixture)


class(boundary_type) :: me

field boundary type

real(kind=rk), intent(inout) :: state(:)

State array

real(kind=rk), intent(in) :: bcBuffer(:)

state values of boundary elements of all fields of iLevel

type(glob_boundary_type), intent(in) :: globBC

scheme global boundary type

type(tem_levelDesc_type), intent(in) :: levelDesc

iLevel descriptor

type(treelmesh_type), intent(in) :: tree

global treelm mesh

integer, intent(in) :: nSize

size of state array ( in terms of elements )

integer, intent(in) :: iLevel

level which invokes boundary

type(tem_time_type), intent(in) :: sim_time

global time information

integer, intent(in) :: neigh(:)

global parameters

type(mus_scheme_layout_type), intent(in) :: layout

scheme layout

type(mus_field_prop_type), intent(in) :: fieldProp

Fluid property

integer, intent(in) :: varPos(:)

pointer to field variable in the state vector

integer, intent(in) :: nScalars

number of Scalars in the scheme var system

type(tem_varSys_type), intent(in) :: varSys

scheme variable system

type(mus_derVarPos_type), intent(in) :: derVarPos

position of derived quantities in varsys

type(mus_physics_type), intent(in) :: physics

scheme global boundary type

integer, intent(in) :: iField

current field

type(mus_mixture_type), intent(in) :: mixture

mixture info


This abstract interface defines the interface for boundary routines. All boundary routines that need to be called via fnct function pointer need to implement this interface. In case of new boundary routines, mark them with a comment reffering to fnct in order to find the routine in case the interface needs to be changed.