tem_find_depProc_globSearch Subroutine

public subroutine tem_find_depProc_globSearch(depProc, nDepProcs, elemPath, p_lb, p_ub, PathFirst, PathLast)

Find the remote partitions holding data on a given path

Using a binary search over the processes first and last elements.

Is the element in question a local or remote element? To look up a certain element by its treeID in the distributed list of elements, it is sufficient to know the splitting positions of all chunks. That is, the first and last treeID of each partition. With a binary search over the splitting positions any requested element can then be identified to be either outside the computational domain at all, or inside of one or several known partitions.

Arguments

TypeIntentOptionalAttributesName
integer, intent(out) :: depProc

List of partitions

integer, intent(out) :: nDepProcs

Number of partitions

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

Element to look up

integer, intent(in) :: p_lb

Left interval bound to search in

integer, intent(in) :: p_ub

Right interval bound to search in

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

Left partition bounds

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

Right partition bounds


Calls

proc~~tem_find_depproc_globsearch~~CallsGraph proc~tem_find_depproc_globsearch tem_find_depProc_globSearch proc~tem_pathcomparison tem_PathComparison proc~tem_find_depproc_globsearch->proc~tem_pathcomparison

Called by

proc~~tem_find_depproc_globsearch~~CalledByGraph proc~tem_find_depproc_globsearch tem_find_depProc_globSearch proc~tem_find_depproc tem_find_depProc proc~tem_find_depproc->proc~tem_find_depproc_globsearch proc~check_find_depproc check_find_depProc proc~check_find_depproc->proc~tem_find_depproc_globsearch proc~identify_elements identify_elements proc~identify_elements->proc~tem_find_depproc proc~identify_elements->proc~identify_elements proc~create_allparentneighbors create_allParentNeighbors proc~identify_elements->proc~create_allparentneighbors proc~identify_stencilneigh identify_stencilNeigh proc~identify_elements->proc~identify_stencilneigh program~tem_construction_test tem_construction_test program~tem_construction_test->proc~check_find_depproc proc~build_levelelements build_levelElements proc~build_levelelements->proc~identify_elements proc~identify_additionalneigh identify_additionalNeigh proc~build_levelelements->proc~identify_additionalneigh proc~identify_additionalneigh->proc~identify_elements proc~create_allparentneighbors->proc~identify_elements proc~create_allparentneighbors->proc~identify_stencilneigh proc~identify_stencilneigh->proc~identify_elements proc~tem_find_allelements tem_find_allElements proc~tem_find_allelements->proc~build_levelelements proc~tem_find_allelements->proc~identify_additionalneigh proc~request_remotehalos request_remoteHalos proc~request_remotehalos->proc~create_allparentneighbors proc~request_remotehalos->proc~identify_stencilneigh

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: lb
integer, private :: ub
integer, private :: foundProc
integer, private :: lastProc
integer, private :: curProc
integer, private :: pComp