package_implementation Submodule

Encapsulate information and procedures for structured_grid block halo exchanges


Uses

  • module~~package_implementation~~UsesGraph module~package_implementation package_implementation module~assertions_interface assertions_interface module~package_implementation->module~assertions_interface module~emulated_intrinsics_interface emulated_intrinsics_interface module~package_implementation->module~emulated_intrinsics_interface module~package_interface package_interface module~package_implementation->module~package_interface module~kind_parameters kind_parameters module~package_interface->module~kind_parameters iso_fortran_env iso_fortran_env module~kind_parameters->iso_fortran_env

Contents


Variables

TypeVisibility AttributesNameInitial
integer, private, parameter:: success =0

Module Procedures

module procedure copy pure module subroutine copy(this, rhs)

Arguments

Type IntentOptional AttributesName
class(package), intent(inout) :: this
type(package), intent(in) :: rhs

module procedure get_fluxes pure module function get_fluxes(this, scalar_id) result(this_fluxes)

Arguments

Type IntentOptional AttributesName
class(package), intent(in) :: this
integer, intent(in) :: scalar_id

Return Value real(kind=r8k), allocatable, dimension(:,:)

module procedure get_neighbor_block_id pure module function get_neighbor_block_id(this) result(this_neighbor_block_id)

Arguments

Type IntentOptional AttributesName
class(package), intent(in) :: this

Return Value integer

module procedure get_positions pure module function get_positions(this) result(this_positions)

Arguments

Type IntentOptional AttributesName
class(package), intent(in) :: this

Return Value real(kind=r8k), allocatable, dimension(:,:,:,:)

module procedure neighbor_block_id_null elemental module function neighbor_block_id_null(this) result(is_null)

Arguments

Type IntentOptional AttributesName
class(package), intent(in) :: this

Return Value logical

module procedure set_neighbor_block_id elemental module subroutine set_neighbor_block_id(this, neighbor_block_id)

Arguments

Type IntentOptional AttributesName
class(package), intent(inout) :: this
integer, intent(in) :: neighbor_block_id

module procedure set_normal_scalar_fluxes pure module subroutine set_normal_scalar_fluxes(this, fluxes, scalar_id)

Arguments

Type IntentOptional AttributesName
class(package), intent(inout) :: this
real(kind=r8k), intent(in), dimension(:,:):: fluxes

surface-normal scalar flux components: shape = [Ny, Nz] or [Nx, Nz] or [Nx, Ny]

integer, intent(in) :: scalar_id

module procedure set_num_scalars elemental module subroutine set_num_scalars(this, num_scalars)

Arguments

Type IntentOptional AttributesName
class(package), intent(inout) :: this
integer, intent(in) :: num_scalars

set size of surface_normal_fluxes array

module procedure set_step elemental module subroutine set_step(this, step)

Arguments

Type IntentOptional AttributesName
class(package), intent(inout) :: this
integer, intent(in) :: step

module procedure set_surface_positions pure module subroutine set_surface_positions(this, positions)

Arguments

Type IntentOptional AttributesName
class(package), intent(inout) :: this
real(kind=r8k), intent(in), dimension(:,:,:,:):: positions

surface vertices: shape=[Nx,Ny,Nz,space_dim] where dimension(s) of unit extent designate fixed coordinate(s)