communicate_elements Subroutine

private subroutine communicate_elements(tree, proc, me, commPattern, pathFirst, pathLast, computeStencil)

exchange the requested treeIDs between all MPI processs

Now each process knows, which halos are requested. Continue with identifying the actual leaf elements, which are then communicated

Arguments

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

the global tree

type(tem_comm_env_type), intent(in) :: proc

Process description to use.

type(tem_levelDesc_type), intent(inout) :: me(tree%global%minlevel:)

the level descriptor to be filled

type(tem_commPattern_type), intent(in) :: commPattern

the communication pattern used

type(tem_path_type), intent(in) :: pathFirst(:)

first and last treeID path in every process

type(tem_path_type), intent(in) :: pathLast(:)

first and last treeID path in every process

type(tem_stencilHeader_type), intent(in) :: computeStencil(:)

stencil definition


Calls

proc~~communicate_elements~~CallsGraph proc~communicate_elements communicate_elements mpi_allreduce mpi_allreduce proc~communicate_elements->mpi_allreduce proc~identify_lists identify_lists proc~communicate_elements->proc~identify_lists proc~tem_elemlist_dump tem_elemList_dump proc~communicate_elements->proc~tem_elemlist_dump proc~communicate_nelemstotransfer communicate_nElemsToTransfer proc~communicate_elements->proc~communicate_nelemstotransfer proc~return_halocounts return_haloCounts proc~communicate_elements->proc~return_halocounts interface~changetype changeType proc~communicate_elements->interface~changetype interface~tem_logging_isactive tem_logging_isActive proc~communicate_elements->interface~tem_logging_isactive proc~redefine_halos redefine_halos proc~communicate_elements->proc~redefine_halos proc~request_remotehalos request_remoteHalos proc~communicate_elements->proc~request_remotehalos proc~tem_horizontalspacer tem_horizontalSpacer proc~communicate_elements->proc~tem_horizontalspacer

Called by

proc~~communicate_elements~~CalledByGraph proc~communicate_elements communicate_elements proc~tem_find_allelements tem_find_allElements proc~tem_find_allelements->proc~communicate_elements proc~tem_create_leveldesc tem_create_levelDesc proc~tem_create_leveldesc->proc~tem_find_allelements proc~tem_dimbydim_construction tem_dimByDim_construction proc~tem_dimbydim_construction->proc~tem_create_leveldesc proc~tem_build_face_info tem_build_face_info proc~tem_build_face_info->proc~tem_dimbydim_construction

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iLevel
integer, private :: iErr
integer, private :: nProcs
integer, private :: iProc
integer, private, allocatable:: nHalos(:)
integer, private :: nIterations
logical, private :: redo
logical, private :: redo_global