SELF_SupportRoutines Module

\file SELF_SupportRoutines.f90 Contains the \ref SELF_SupportRoutines module \defgroup SELF_SupportRoutines SELF_SupportRoutines This module defines a set of general purpose routines.


Uses

  • module~~self_supportroutines~~UsesGraph module~self_supportroutines SELF_SupportRoutines iso_fortran_env iso_fortran_env module~self_supportroutines->iso_fortran_env module~self_constants SELF_Constants module~self_supportroutines->module~self_constants module~self_constants->iso_fortran_env iso_c_binding iso_c_binding module~self_constants->iso_c_binding

Used by

  • module~~self_supportroutines~~UsedByGraph module~self_supportroutines SELF_SupportRoutines module~self_model SELF_Model module~self_model->module~self_supportroutines module~self_domaindecomposition_t SELF_DomainDecomposition_t module~self_domaindecomposition_t->module~self_supportroutines module~self_lagrange~3 SELF_Lagrange module~self_domaindecomposition_t->module~self_lagrange~3 module~self_dgmodel3d_t SELF_DGModel3D_t module~self_dgmodel3d_t->module~self_supportroutines module~self_dgmodel3d_t->module~self_model module~self_geometry_3d SELF_Geometry_3D module~self_dgmodel3d_t->module~self_geometry_3d module~self_mesh_3d~2 SELF_Mesh_3D module~self_dgmodel3d_t->module~self_mesh_3d~2 module~self_mappedvector_3d~2 SELF_MappedVector_3D module~self_dgmodel3d_t->module~self_mappedvector_3d~2 module~self_mappedscalar_3d~2 SELF_MappedScalar_3D module~self_dgmodel3d_t->module~self_mappedscalar_3d~2 module~self_geometry_1d SELF_Geometry_1D module~self_geometry_1d->module~self_supportroutines module~self_mesh_1d SELF_Mesh_1D module~self_geometry_1d->module~self_mesh_1d module~self_geometry_1d->module~self_lagrange~3 module~self_data SELF_Data module~self_geometry_1d->module~self_data module~self_scalar_1d~3 SELF_Scalar_1D module~self_geometry_1d->module~self_scalar_1d~3 module~self_mesh_3d_t SELF_Mesh_3D_t module~self_mesh_3d_t->module~self_supportroutines module~self_domaindecomposition SELF_DomainDecomposition module~self_mesh_3d_t->module~self_domaindecomposition module~self_mesh_3d_t->module~self_lagrange~3 module~self_mesh SELF_Mesh module~self_mesh_3d_t->module~self_mesh module~self_lagrange_t SELF_Lagrange_t module~self_lagrange_t->module~self_supportroutines module~self_mesh_2d_t SELF_Mesh_2D_t module~self_mesh_2d_t->module~self_supportroutines module~self_mesh_2d_t->module~self_domaindecomposition module~self_mesh_2d_t->module~self_lagrange~3 module~self_mesh_2d_t->module~self_mesh module~self_geometry_2d SELF_Geometry_2D module~self_geometry_2d->module~self_supportroutines module~self_mesh_2d SELF_Mesh_2D module~self_geometry_2d->module~self_mesh_2d module~self_geometry_2d->module~self_lagrange~3 module~self_geometry_2d->module~self_data module~self_vector_2d~2 SELF_Vector_2D module~self_geometry_2d->module~self_vector_2d~2 module~self_scalar_2d SELF_Scalar_2D module~self_geometry_2d->module~self_scalar_2d module~self_tensor_2d~2 SELF_Tensor_2D module~self_geometry_2d->module~self_tensor_2d~2 module~self_dgmodel2d_t SELF_DGModel2D_t module~self_dgmodel2d_t->module~self_supportroutines module~self_dgmodel2d_t->module~self_model module~self_dgmodel2d_t->module~self_geometry_2d module~self_dgmodel2d_t->module~self_mesh_2d module~self_mappedvector_2d SELF_MappedVector_2D module~self_dgmodel2d_t->module~self_mappedvector_2d module~self_mappedscalar_2d~2 SELF_MappedScalar_2D module~self_dgmodel2d_t->module~self_mappedscalar_2d~2 module~self_mesh_1d->module~self_supportroutines module~self_mesh_1d->module~self_lagrange~3 module~self_mesh_1d->module~self_mesh module~self_mesh_1d->module~self_data module~self_mesh_1d->module~self_scalar_1d~3 module~self_dgmodel1d_t SELF_DGModel1D_t module~self_dgmodel1d_t->module~self_supportroutines module~self_dgmodel1d_t->module~self_model module~self_dgmodel1d_t->module~self_mesh_1d module~self_mappedscalar_1d SELF_MappedScalar_1D module~self_dgmodel1d_t->module~self_mappedscalar_1d module~self_geometry_3d->module~self_supportroutines module~self_geometry_3d->module~self_mesh_3d~2 module~self_geometry_3d->module~self_lagrange~3 module~self_geometry_3d->module~self_data module~self_vector_3d SELF_Vector_3D module~self_geometry_3d->module~self_vector_3d module~self_tensor_3d SELF_Tensor_3D module~self_geometry_3d->module~self_tensor_3d module~self_scalar_3d~2 SELF_Scalar_3D module~self_geometry_3d->module~self_scalar_3d~2 module~self_dgmodel1d SELF_DGModel1D module~self_dgmodel1d->module~self_supportroutines module~self_dgmodel1d->module~self_model module~self_dgmodel1d->module~self_mesh_1d module~self_dgmodel1d->module~self_dgmodel1d_t module~self_dgmodel1d->module~self_mappedscalar_1d module~self_nulldgmodel3d_t self_NullDGModel3D_t module~self_nulldgmodel3d_t->module~self_model module~self_dgmodel3d SELF_DGModel3D module~self_nulldgmodel3d_t->module~self_dgmodel3d module~self_nulldgmodel3d_t->module~self_mesh module~self_burgers1d_t self_Burgers1D_t module~self_burgers1d_t->module~self_model module~self_dgmodel1d~2 SELF_DGModel1D module~self_burgers1d_t->module~self_dgmodel1d~2 module~self_burgers1d_t->module~self_mesh module~self_dgmodel2d~2 SELF_DGModel2D module~self_dgmodel2d~2->module~self_dgmodel2d_t module~self_mappedscalar_2d_t SELF_MappedScalar_2D_t module~self_mappedscalar_2d_t->module~self_geometry_2d module~self_mappedscalar_2d_t->module~self_mesh_2d module~self_mappedscalar_2d_t->module~self_domaindecomposition module~self_mappedscalar_2d_t->module~self_lagrange~3 module~self_mappedscalar_2d_t->module~self_scalar_2d module~self_mappedscalar_2d_t->module~self_tensor_2d~2 module~self_linearshallowwater2d_t self_LinearShallowWater2D_t module~self_linearshallowwater2d_t->module~self_model module~self_dgmodel2d SELF_DGModel2D module~self_linearshallowwater2d_t->module~self_dgmodel2d module~self_linearshallowwater2d_t->module~self_mesh module~self_lagrange~2 SELF_Lagrange module~self_lagrange~2->module~self_lagrange_t module~self_dgmodel2d->module~self_dgmodel2d_t module~self_dgmodel1d~2->module~self_dgmodel1d_t module~self_mappedvector_3d_t SELF_MappedVector_3D_t module~self_mappedvector_3d_t->module~self_geometry_3d module~self_mappedvector_3d_t->module~self_domaindecomposition module~self_mappedvector_3d_t->module~self_mesh_3d~2 module~self_mappedvector_3d_t->module~self_lagrange~3 module~self_nulldgmodel2d_t self_NullDGModel2D_t module~self_nulldgmodel2d_t->module~self_model module~self_nulldgmodel2d_t->module~self_dgmodel2d module~self_nulldgmodel2d_t->module~self_mesh module~self_dgmodel3d->module~self_dgmodel3d_t module~self_mappedscalar_1d_t SELF_MappedScalar_1D_t module~self_mappedscalar_1d_t->module~self_geometry_1d module~self_mappedscalar_1d_t->module~self_mesh_1d module~self_mappedscalar_1d_t->module~self_lagrange~3 module~self_mappedscalar_1d_t->module~self_scalar_1d~3 module~self_mesh_3d SELF_Mesh_3D module~self_mesh_3d->module~self_mesh_3d_t module~self_dgmodel3d~2 SELF_DGModel3D module~self_dgmodel3d~2->module~self_dgmodel3d_t module~self_mesh_2d->module~self_mesh_2d_t module~self_lineareuler2d_t self_LinearEuler2D_t module~self_lineareuler2d_t->module~self_model module~self_lineareuler2d_t->module~self_dgmodel2d module~self_lineareuler2d_t->module~self_mesh module~self_advection_diffusion_3d_t self_advection_diffusion_3d_t module~self_advection_diffusion_3d_t->module~self_model module~self_advection_diffusion_3d_t->module~self_dgmodel3d module~self_advection_diffusion_3d_t->module~self_mesh module~self_domaindecomposition->module~self_domaindecomposition_t module~self_mesh_3d~2->module~self_mesh_3d_t module~self_advection_diffusion_1d_t self_advection_diffusion_1d_t module~self_advection_diffusion_1d_t->module~self_model module~self_advection_diffusion_1d_t->module~self_dgmodel1d~2 module~self_advection_diffusion_1d_t->module~self_mesh module~self_lagrange~3->module~self_lagrange_t module~self_mappedvector_2d_t SELF_MappedVector_2D_t module~self_mappedvector_2d_t->module~self_geometry_2d module~self_mappedvector_2d_t->module~self_mesh_2d module~self_mappedvector_2d_t->module~self_domaindecomposition module~self_mappedvector_2d_t->module~self_lagrange~3 module~self_mappedvector_2d_t->module~self_vector_2d~2 module~self_mappedvector_2d_t->module~self_tensor_2d~2 module~self_lagrange SELF_Lagrange module~self_lagrange->module~self_lagrange_t module~self_nulldgmodel1d_t self_NullDGModel1D_t module~self_nulldgmodel1d_t->module~self_model module~self_nulldgmodel1d_t->module~self_dgmodel1d~2 module~self_nulldgmodel1d_t->module~self_mesh module~self_domaindecomposition~2 SELF_DomainDecomposition module~self_domaindecomposition~2->module~self_domaindecomposition_t module~self_mesh_2d~2 SELF_Mesh_2D module~self_mesh_2d~2->module~self_mesh_2d_t module~self_mappedscalar_3d_t SELF_MappedScalar_3D_t module~self_mappedscalar_3d_t->module~self_geometry_3d module~self_mappedscalar_3d_t->module~self_domaindecomposition module~self_mappedscalar_3d_t->module~self_mesh_3d~2 module~self_mappedscalar_3d_t->module~self_lagrange~3 module~self_mappedscalar_3d_t->module~self_tensor_3d module~self_mappedscalar_3d_t->module~self_scalar_3d~2 module~self_nulldgmodel2d~2 self_NullDGModel2D module~self_nulldgmodel2d~2->module~self_nulldgmodel2d_t module~self_mappedscalar_1d->module~self_mappedscalar_1d_t module~self_mappedscalar_3d SELF_MappedScalar_3D module~self_mappedscalar_3d->module~self_mappedscalar_3d_t module~self_burgers1d self_Burgers1D module~self_burgers1d->module~self_burgers1d_t module~self_mappedvector_3d~2->module~self_mappedvector_3d_t module~self_vector_3d_t SELF_Vector_3D_t module~self_vector_3d_t->module~self_lagrange~3 module~self_vector_3d_t->module~self_data module~self_mappedvector_2d~2 SELF_MappedVector_2D module~self_mappedvector_2d~2->module~self_mappedvector_2d_t module~self_nulldgmodel3d self_NullDGModel3D module~self_nulldgmodel3d->module~self_nulldgmodel3d_t module~self_mappedscalar_2d SELF_MappedScalar_2D module~self_mappedscalar_2d->module~self_mappedscalar_2d_t module~self_linearshallowwater2d self_LinearShallowWater2D module~self_linearshallowwater2d->module~self_linearshallowwater2d_t module~self_mesh->module~self_domaindecomposition module~self_scalar_3d_t SELF_Scalar_3D_t module~self_scalar_3d_t->module~self_lagrange~3 module~self_scalar_3d_t->module~self_data module~self_nulldgmodel1d~2 self_NullDGModel1D module~self_nulldgmodel1d~2->module~self_nulldgmodel1d_t module~self_burgers1d~2 self_Burgers1D module~self_burgers1d~2->module~self_burgers1d_t module~self_advection_diffusion_1d self_advection_diffusion_1d module~self_advection_diffusion_1d->module~self_dgmodel1d~2 module~self_advection_diffusion_1d->module~self_advection_diffusion_1d_t module~self_lineareuler2d~2 self_LinearEuler2D module~self_lineareuler2d~2->module~self_lineareuler2d_t module~self_data->module~self_lagrange~3 module~self_vector_2d_t SELF_Vector_2D_t module~self_vector_2d_t->module~self_lagrange~3 module~self_vector_2d_t->module~self_data module~self_mappedvector_2d->module~self_mappedvector_2d_t module~self_mappedscalar_1d~2 SELF_MappedScalar_1D module~self_mappedscalar_1d~2->module~self_mappedscalar_1d_t module~self_tensor_2d_t SELF_Tensor_2D_t module~self_tensor_2d_t->module~self_lagrange~3 module~self_tensor_2d_t->module~self_data module~self_tensor_3d_t SELF_Tensor_3D_t module~self_tensor_3d_t->module~self_lagrange~3 module~self_tensor_3d_t->module~self_data module~self_scalar_1d_t SELF_Scalar_1D_t module~self_scalar_1d_t->module~self_lagrange~3 module~self_scalar_1d_t->module~self_data module~self_nulldgmodel1d self_NullDGModel1D module~self_nulldgmodel1d->module~self_nulldgmodel1d_t module~self_mappedscalar_3d~2->module~self_mappedscalar_3d_t module~self_linearshallowwater2d~2 self_LinearShallowWater2D module~self_linearshallowwater2d~2->module~self_linearshallowwater2d_t module~self_nulldgmodel2d self_NullDGModel2D module~self_nulldgmodel2d->module~self_nulldgmodel2d_t module~self_advection_diffusion_3d~2 self_advection_diffusion_3d module~self_advection_diffusion_3d~2->module~self_advection_diffusion_3d_t module~self_scalar_2d_t SELF_Scalar_2D_t module~self_scalar_2d_t->module~self_lagrange~3 module~self_scalar_2d_t->module~self_data module~self_mappedscalar_2d~2->module~self_mappedscalar_2d_t module~self_nulldgmodel3d~2 self_NullDGModel3D module~self_nulldgmodel3d~2->module~self_nulldgmodel3d_t module~self_mappedvector_3d SELF_MappedVector_3D module~self_mappedvector_3d->module~self_mappedvector_3d_t module~self_advection_diffusion_3d self_advection_diffusion_3d module~self_advection_diffusion_3d->module~self_advection_diffusion_3d_t module~self_advection_diffusion_2d_t self_advection_diffusion_2d_t module~self_advection_diffusion_2d_t->module~self_dgmodel2d module~self_advection_diffusion_2d_t->module~self_mesh module~self_lineareuler2d self_LinearEuler2D module~self_lineareuler2d->module~self_lineareuler2d_t module~self_advection_diffusion_1d~2 self_advection_diffusion_1d module~self_advection_diffusion_1d~2->module~self_advection_diffusion_1d_t module~self_vector_3d->module~self_vector_3d_t module~self_scalar_3d SELF_Scalar_3D module~self_scalar_3d->module~self_scalar_3d_t module~self_vector_2d~2->module~self_vector_2d_t module~self_vector_2d SELF_Vector_2D module~self_vector_2d->module~self_vector_2d_t module~self_tensor_2d SELF_Tensor_2D module~self_tensor_2d->module~self_tensor_2d_t module~self_tensor_3d->module~self_tensor_3d_t module~self_scalar_1d SELF_Scalar_1D module~self_scalar_1d->module~self_scalar_1d_t module~self_scalar_2d->module~self_scalar_2d_t module~self_scalar_2d~2 SELF_Scalar_2D module~self_scalar_2d~2->module~self_scalar_2d_t module~self_advection_diffusion_2d~2 self_advection_diffusion_2d module~self_advection_diffusion_2d~2->module~self_advection_diffusion_2d_t module~self_scalar_3d~2->module~self_scalar_3d_t module~self_vector_3d~2 SELF_Vector_3D module~self_vector_3d~2->module~self_vector_3d_t module~self_tensor_2d~2->module~self_tensor_2d_t module~self_tensor_3d~2 SELF_Tensor_3D module~self_tensor_3d~2->module~self_tensor_3d_t module~self_scalar_1d~3->module~self_scalar_1d_t module~self_scalar_1d~2 SELF_Scalar_1D module~self_scalar_1d~2->module~self_scalar_1d_t module~self_advection_diffusion_2d self_advection_diffusion_2d module~self_advection_diffusion_2d->module~self_advection_diffusion_2d_t

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=prec), private, parameter:: tolerance =10.0**(-10)

Interfaces

public interface AlmostEqual

  • public function AlmostEqual_r64(a, b) result(AisB)

    \addtogroup SELF_SupportRoutines @{ \fn AlmostEqual Compares two floating point numbers and determines if they are equal (to machine precision).

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    real(kind=real64) :: a
    real(kind=real64) :: b

    Return Value logical


Functions

public function AlmostEqual_r64(a, b) result(AisB)

\addtogroup SELF_SupportRoutines @{ \fn AlmostEqual Compares two floating point numbers and determines if they are equal (to machine precision).

Read more…

Arguments

TypeIntentOptionalAttributesName
real(kind=real64) :: a
real(kind=real64) :: b

Return Value logical

public function CompareArray(arrayOne, arrayTwo, N) result(arraysMatch)

\addtogroup SELF_SupportRoutines @{ \fn CompareArray Compares to INTEGER arrays and determines if they are identical.

Read more…

Arguments

TypeIntentOptionalAttributesName
integer :: arrayOne(1:N)
integer :: arrayTwo(1:N)
integer :: N

Return Value logical

public function UniformPoints(a, b, firstInd, lastInd) result(xU)

\addtogroup SELF_SupportRoutines @{ \fn UniformPoints Generates a REAL(prec) array of N points evenly spaced between two points.

Read more…

Arguments

TypeIntentOptionalAttributesName
real(kind=prec) :: a
real(kind=prec) :: b
integer :: firstInd
integer :: lastInd

Return Value real(kind=prec)(firstInd:lastInd)

public function UpperCase(str) result(Upper)

Arguments

TypeIntentOptionalAttributesName
character, intent(in) :: str

Return Value character

public function newunit(unit)

Arguments

TypeIntentOptionalAttributesName
integer, intent(out), optional :: unit

Return Value integer


Subroutines

public subroutine ForwardShift(myArray, N)

\addtogroup SELF_SupportRoutines @{ \fn ForwardShift Shift an array integers by one index forward, moving the last index to the first.

Read more…

Arguments

TypeIntentOptionalAttributesName
integer, intent(inout) :: myArray(1:N)
integer, intent(in) :: N