identify_elements Subroutine

private recursive subroutine identify_elements(treeID, tree, pathFirst, pathLast, levelDesc, elemPos, proc, Stencil, nesting, skip_add_additionalGhost)

Check, on which partition a given element is located add required elements to corresponding lists: if remote, add to halo if ghost, add to resp. ghost list

Arguments

TypeIntentOptionalAttributesName
integer(kind=long_k), intent(in) :: treeID

treeID to identify

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

tree information

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

first treeID path in every process

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

last treeID path in every process

type(tem_levelDesc_type), intent(inout) :: levelDesc(tree%global%minLevel:)

the level descriptor to be filled

integer, intent(out) :: elemPos

nTreeID element position in the levelDesc % elem list

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

Process description to use.

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

current stencil definition

integer, intent(in) :: nesting

nesting level

logical, intent(in), optional :: skip_add_additionalGhost

logical, optional, if true no ghosts are added


Calls

proc~~identify_elements~~CallsGraph proc~identify_elements identify_elements proc~identify_elements->proc~identify_elements proc~tem_tidinfo tem_tIDinfo proc~identify_elements->proc~tem_tidinfo interface~append~4 append proc~identify_elements->interface~append~4 proc~identify_stencilneigh identify_stencilNeigh proc~identify_elements->proc~identify_stencilneigh proc~create_allparentneighbors create_allParentNeighbors proc~identify_elements->proc~create_allparentneighbors interface~init~15 init proc~identify_elements->interface~init~15 proc~tem_directchildren tem_directChildren proc~identify_elements->proc~tem_directchildren proc~tem_levelof tem_LevelOf proc~identify_elements->proc~tem_levelof proc~tem_pathof tem_PathOf proc~identify_elements->proc~tem_pathof proc~single_process_element single_process_element proc~identify_elements->proc~single_process_element proc~tem_find_depproc tem_find_depProc proc~identify_elements->proc~tem_find_depproc proc~tem_coordofid tem_CoordOfId proc~tem_tidinfo->proc~tem_coordofid proc~tem_baryofid tem_BaryOfId proc~tem_tidinfo->proc~tem_baryofid proc~tem_elemsize tem_ElemSize proc~tem_tidinfo->proc~tem_elemsize proc~append_ga_dynlong append_ga_dynlong interface~append~4->proc~append_ga_dynlong proc~append_ga_dynlong_vec append_ga_dynlong_vec interface~append~4->proc~append_ga_dynlong_vec proc~identify_stencilneigh->proc~identify_elements proc~create_allparentneighbors->proc~identify_elements proc~create_allparentneighbors->interface~append~4 proc~create_allparentneighbors->proc~identify_stencilneigh interface~tem_parentof tem_ParentOf proc~create_allparentneighbors->interface~tem_parentof proc~init_ga2d_real init_ga2d_real interface~init~15->proc~init_ga2d_real proc~single_process_element->interface~append~4 proc~single_process_element->interface~init~15 proc~single_process_element->proc~tem_levelof proc~tem_abort tem_abort proc~single_process_element->proc~tem_abort proc~identify_local_element identify_local_element proc~single_process_element->proc~identify_local_element proc~tem_find_depproc_globsearch tem_find_depProc_globSearch proc~tem_find_depproc->proc~tem_find_depproc_globsearch proc~tem_pathcomparison tem_PathComparison proc~tem_find_depproc->proc~tem_pathcomparison proc~tem_coordofid->proc~tem_levelof proc~tem_parentatlevel tem_ParentAtLevel interface~tem_parentof->proc~tem_parentatlevel proc~tem_directparent tem_directParent interface~tem_parentof->proc~tem_directparent mpi_abort mpi_abort proc~tem_abort->mpi_abort proc~tem_baryofid->proc~tem_coordofid proc~tem_elemsizelevel tem_ElemSizeLevel proc~tem_baryofid->proc~tem_elemsizelevel proc~tem_elemsize->proc~tem_levelof proc~tem_elemsize->proc~tem_elemsizelevel interface~expand~2 expand proc~append_ga_dynlong->interface~expand~2 proc~tem_find_depproc_globsearch->proc~tem_pathcomparison proc~append_ga_dynlong_vec->interface~expand~2 proc~identify_local_element->proc~tem_tidinfo proc~identify_local_element->interface~append~4 proc~identify_local_element->proc~tem_levelof proc~identify_local_element->proc~tem_pathof proc~tem_posofpath tem_PosOfPath proc~identify_local_element->proc~tem_posofpath proc~add_ghostfromfiner add_ghostFromFiner proc~identify_local_element->proc~add_ghostfromfiner proc~add_all_virtual_children add_all_virtual_children proc~identify_local_element->proc~add_all_virtual_children interface~positionofval~4 positionofval proc~identify_local_element->interface~positionofval~4

Called by

proc~~identify_elements~~CalledByGraph proc~identify_elements identify_elements proc~identify_elements->proc~identify_elements proc~identify_stencilneigh identify_stencilNeigh proc~identify_elements->proc~identify_stencilneigh proc~create_allparentneighbors create_allParentNeighbors proc~identify_elements->proc~create_allparentneighbors proc~identify_additionalneigh identify_additionalNeigh proc~identify_additionalneigh->proc~identify_elements proc~build_levelelements build_levelElements proc~build_levelelements->proc~identify_elements proc~build_levelelements->proc~identify_additionalneigh proc~identify_stencilneigh->proc~identify_elements proc~create_allparentneighbors->proc~identify_elements proc~create_allparentneighbors->proc~identify_stencilneigh proc~request_remotehalos request_remoteHalos proc~request_remotehalos->proc~identify_stencilneigh proc~request_remotehalos->proc~create_allparentneighbors proc~tem_find_allelements tem_find_allElements proc~tem_find_allelements->proc~identify_additionalneigh proc~tem_find_allelements->proc~build_levelelements proc~communicate_elements communicate_elements proc~tem_find_allelements->proc~communicate_elements proc~tem_create_leveldesc tem_create_levelDesc proc~tem_create_leveldesc->proc~tem_find_allelements proc~communicate_elements->proc~request_remotehalos proc~tem_dimbydim_construction tem_dimByDim_construction proc~tem_dimbydim_construction->proc~tem_create_leveldesc

Contents


Variables

TypeVisibilityAttributesNameInitial
integer(kind=long_k), private :: children(8)
integer, private :: nDepProcs
integer, private :: depProc
integer, private :: iChild
integer, private :: neighLevel
type(tem_path_type), private :: elemPath
type(tem_stencilElement_type), private :: emptyStencil(1)
integer, private :: childPos
integer, private :: nNesting
integer, private :: hashpos
integer, private :: elemNesting
logical, private :: cacheHit
logical, private :: updated
logical, private :: l_skip_add_additionalGhost