OpenCMISS-Iron Internal API Documentation
comp_environment Module Reference

This module contains all computational environment variables. More...

Data Types

type  cache_type
 Contains information on a cache heirarchy. More...
 
type  computational_environment_type
 Contains information on the computational environment the program is running in. More...
 
type  computational_node_type
 Contains information on a computational node containing a number of processors. More...
 
type  computational_work_group_ptr_type
 !>pointer type to COMPUTATIONAL_WORK_GROUP_TYPE More...
 
type  computational_work_group_type
 Contains information on logical working groups (added by Robert on 01/04/2010) More...
 
type  mpi_computational_node_type
 Contains information on the MPI type to transfer information about a computational node. More...
 

Functions/Subroutines

subroutine, public computational_work_group_subgroup_add (PARENT_WORK_GROUP, NUMBER_COMPUTATIONAL_NODES, ADDED_WORK_GROUP, ERR, ERROR,)
 Add the work sub-group to the parent group based on the computational requirements (called by user) More...
 
subroutine, public computational_work_group_create_start (WORLD_WORK_GROUP, NUMBER_COMPUTATIONAL_NODES, ERR, ERROR,)
 Create the highest level work group (Default: GROUP_WORLD) More...
 
recursive subroutine computational_workgroupgeneratecompenviron (WORK_GROUP, AVAILABLE_RANK_LIST, ERR, ERROR,)
 Generate computational environment for current level work group tree and all it's subgroups recursively. More...
 
subroutine, public computational_work_group_create_finish (WORLD_WORK_GROUP, ERR, ERROR,)
 Generate the hierarchy computational environment based on work group tree. More...
 
subroutine computational_node_finalise (COMPUTATIONAL_NODE, ERR, ERROR,)
 Finalises the computational node data structures and deallocates all memory. More...
 
subroutine computational_node_initialise (COMPUTATIONAL_NODE, RANK, ERR, ERROR,)
 Initialises the computational node data structures. More...
 
subroutine computational_node_mpi_type_finalise (ERR, ERROR,)
 Finalises the data structure containing the MPI type information for the COMPUTATIONAL_NODE_TYPE. More...
 
subroutine computational_node_mpi_type_initialise (COMPUTATIONAL_NODE, ERR, ERROR,)
 Initialises the data structure containing the MPI type information for the COMPUTATIONAL_NODE_TYPE. More...
 
subroutine, public computational_environment_finalise (ERR, ERROR,)
 Finalises the computational environment data structures and deallocates all memory. More...
 
subroutine, public computational_environment_initialise (ERR, ERROR,)
 Initialises the computational environment data structures. More...
 
integer(intg) function, public computational_node_number_get (ERR, ERROR)
 Returns the number/rank of the computational nodes. More...
 
integer(intg) function, public computational_nodes_number_get (ERR, ERROR)
 Returns the number of computational nodes. More...
 

Variables

type(computational_environment_type), target, public computational_environment
 The computational environment the program is running in. More...
 
type(mpi_computational_node_typempi_computational_node_type_data
 The MPI data on the computational nodes. More...
 

Detailed Description

This module contains all computational environment variables.

Function/Subroutine Documentation

subroutine, public comp_environment::computational_environment_finalise ( integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Finalises the computational environment data structures and deallocates all memory.

Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 503 of file computational_environment.f90.

References computational_environment, computational_node_finalise(), computational_node_mpi_type_finalise(), base_routines::enters(), base_routines::exits(), cmiss_mpi::mpi_error_check(), and cmisspetsc::petsc_finalise().

Referenced by cmiss::cmfe_finalise_(), and computational_environment_initialise().

subroutine, public comp_environment::computational_environment_initialise ( integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
subroutine comp_environment::computational_node_finalise ( type(computational_node_type), intent(inout)  COMPUTATIONAL_NODE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalises the computational node data structures and deallocates all memory.

Parameters
[in,out]computational_nodeThe computational node to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 347 of file computational_environment.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by computational_environment_finalise().

subroutine comp_environment::computational_node_initialise ( type(computational_node_type), intent(out)  COMPUTATIONAL_NODE,
integer(intg), intent(in)  RANK,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialises the computational node data structures.

Parameters
[out]computational_nodeThe computational node to initialise
[in]rankThe MPI rank of the computational node
[out]errThe error code
[out]errorThe error string

Definition at line 373 of file computational_environment.f90.

References base_routines::enters(), base_routines::exits(), and cmiss_mpi::mpi_error_check().

Referenced by computational_environment_initialise().

subroutine comp_environment::computational_node_mpi_type_finalise ( integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalises the data structure containing the MPI type information for the COMPUTATIONAL_NODE_TYPE.

Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 403 of file computational_environment.f90.

References base_routines::enters(), base_routines::exits(), mpi_computational_node_type_data, and cmiss_mpi::mpi_error_check().

Referenced by computational_environment_finalise(), and computational_node_mpi_type_initialise().

subroutine comp_environment::computational_node_mpi_type_initialise ( type(computational_node_type), intent(in)  COMPUTATIONAL_NODE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialises the data structure containing the MPI type information for the COMPUTATIONAL_NODE_TYPE.

Parameters
[in]computational_nodeThe computational node containing the MPI type to initialise
[out]errThe error code
[out]errorThe error string

Definition at line 436 of file computational_environment.f90.

References computational_node_mpi_type_finalise(), base_routines::diagnostic_output_type, base_routines::diagnostics3, base_routines::enters(), base_routines::exits(), mpi_computational_node_type_data, and cmiss_mpi::mpi_error_check().

Referenced by computational_environment_initialise().

integer(intg) function, public comp_environment::computational_nodes_number_get ( integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the number of computational nodes.

Parameters
[out]errThe error code
[out]errorThe error string
Returns
On exit, the number of computational nodes for the program.

Definition at line 668 of file computational_environment.f90.

References computational_environment, base_routines::enters(), and base_routines::exits().

Referenced by distributed_matrix_vector::distributed_vector_update_finish(), distributed_matrix_vector::distributed_vector_update_start(), field_io_routines::field_io_elements_export(), field_io_routines::field_io_fields_import(), and field_io_routines::field_io_nodes_export().

subroutine, public comp_environment::computational_work_group_create_finish ( type(computational_work_group_type), intent(inout), pointer  WORLD_WORK_GROUP,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Generate the hierarchy computational environment based on work group tree.

Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 311 of file computational_environment.f90.

References computational_environment, computational_workgroupgeneratecompenviron(), base_routines::enters(), and base_routines::exits().

subroutine, public comp_environment::computational_work_group_create_start ( type(computational_work_group_type), intent(inout), pointer  WORLD_WORK_GROUP,
integer(intg), intent(in)  NUMBER_COMPUTATIONAL_NODES,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Create the highest level work group (Default: GROUP_WORLD)

Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 205 of file computational_environment.f90.

References base_routines::exits().

subroutine, public comp_environment::computational_work_group_subgroup_add ( type(computational_work_group_type), intent(inout), pointer  PARENT_WORK_GROUP,
integer(intg), intent(in)  NUMBER_COMPUTATIONAL_NODES,
type(computational_work_group_type), intent(inout), pointer  ADDED_WORK_GROUP,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Add the work sub-group to the parent group based on the computational requirements (called by user)

Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 144 of file computational_environment.f90.

References base_routines::exits().

recursive subroutine comp_environment::computational_workgroupgeneratecompenviron ( type(computational_work_group_type), intent(inout), pointer  WORK_GROUP,
integer(intg), dimension(:), intent(inout), allocatable  AVAILABLE_RANK_LIST,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Generate computational environment for current level work group tree and all it's subgroups recursively.

Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 237 of file computational_environment.f90.

References computational_environment, base_routines::enters(), base_routines::exits(), and cmiss_mpi::mpi_error_check().

Referenced by computational_work_group_create_finish().

Variable Documentation

type(mpi_computational_node_type) comp_environment::mpi_computational_node_type_data
private

The MPI data on the computational nodes.

Definition at line 126 of file computational_environment.f90.

Referenced by computational_node_mpi_type_finalise(), and computational_node_mpi_type_initialise().