identify_additionalNeigh Subroutine

private subroutine identify_additionalNeigh(tree, proc, levelDesc, pathFirst, pathLast, stencil)

identify additionally required neighbor elements run over the 'require' list of elements, which was accumulated before in init_elemLevels. The list includes neighbor elements of stencil neighbors, for stencils with the requireNeighNeigh attribute set. This is needed for example for LBM boundary stencil elements, which in turn require their compute stencil neighborhood to allow PULL operations from there

What exactly is the require list for? - Used ONLY for boundary stencil with higher order neighbors i.e only when require nVals > 0

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) :: levelDesc(tree%global%minlevel:)

the level descriptor to be filled

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_stencilHeader_type), intent(in) :: stencil

the compute stencil, for which the additional neighbors are reconstructed


Calls

proc~~identify_additionalneigh~~CallsGraph proc~identify_additionalneigh identify_additionalNeigh proc~tem_horizontalspacer tem_horizontalSpacer proc~identify_additionalneigh->proc~tem_horizontalspacer interface~positionofval~4 positionofval proc~identify_additionalneigh->interface~positionofval~4 proc~identify_elements identify_elements proc~identify_additionalneigh->proc~identify_elements proc~posofval_label posofval_label interface~positionofval~4->proc~posofval_label proc~identify_elements->proc~identify_elements proc~single_process_element single_process_element proc~identify_elements->proc~single_process_element proc~create_allparentneighbors create_allParentNeighbors proc~identify_elements->proc~create_allparentneighbors proc~tem_pathof tem_PathOf proc~identify_elements->proc~tem_pathof proc~identify_stencilneigh identify_stencilNeigh proc~identify_elements->proc~identify_stencilneigh proc~tem_tidinfo tem_tIDinfo proc~identify_elements->proc~tem_tidinfo proc~tem_find_depproc tem_find_depProc proc~identify_elements->proc~tem_find_depproc interface~init~15 init proc~identify_elements->interface~init~15 proc~tem_directchildren tem_directChildren proc~identify_elements->proc~tem_directchildren interface~append~4 append proc~identify_elements->interface~append~4 proc~tem_levelof tem_LevelOf proc~identify_elements->proc~tem_levelof proc~single_process_element->interface~init~15 proc~single_process_element->interface~append~4 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~create_allparentneighbors->proc~identify_elements proc~create_allparentneighbors->proc~identify_stencilneigh proc~create_allparentneighbors->interface~append~4 interface~tem_parentof tem_ParentOf proc~create_allparentneighbors->interface~tem_parentof proc~identify_stencilneigh->proc~identify_elements proc~tem_baryofid tem_BaryOfId proc~tem_tidinfo->proc~tem_baryofid proc~tem_elemsize tem_ElemSize proc~tem_tidinfo->proc~tem_elemsize proc~tem_coordofid tem_CoordOfId proc~tem_tidinfo->proc~tem_coordofid 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 interface~sortedposofval~4 sortedposofval proc~posofval_label->interface~sortedposofval~4 proc~init_ga2d_real init_ga2d_real interface~init~15->proc~init_ga2d_real 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

Called by

proc~~identify_additionalneigh~~CalledByGraph proc~identify_additionalneigh identify_additionalNeigh proc~build_levelelements build_levelElements proc~build_levelelements->proc~identify_additionalneigh proc~tem_find_allelements tem_find_allElements proc~tem_find_allelements->proc~identify_additionalneigh proc~tem_find_allelements->proc~build_levelelements 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 :: posInElem
integer, private :: neighPos
integer, private :: elemPos
integer, private :: iNeighElem
integer, private :: iElem
integer(kind=long_k), private :: treeID