add_all_virtual_children Subroutine

private recursive subroutine add_all_virtual_children(sourceID, sourceProperty, foundPos, elemPath, targetLevel, levelDesc, minLevel, tree, stencil, nesting, updated)

Find all the virtual children of the sourceID down to the targetLevel and add to the level-wise ghostFromCoarser list in the level descriptor

Arguments

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

source treeID (existing founded ID in tree%treeID list or children ID from recursion)

integer(kind=long_k), intent(in) :: sourceProperty

property of source element

integer, intent(in) :: foundPos

position of this sourceID in elem%tID list

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

element path

integer, intent(in) :: targetLevel

level upto which virtual children must be created

type(tem_levelDesc_type), intent(inout) :: levelDesc(minLevel:)

the level descriptor to be filled

integer, intent(in) :: minLevel

minimum level in the tree

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

tree information

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

current stencil definition

integer, intent(in) :: nesting

nesting level

logical, intent(out) :: updated

was the element updated in this call?


Calls

proc~~add_all_virtual_children~~CallsGraph proc~add_all_virtual_children add_all_virtual_children proc~add_all_virtual_children->proc~add_all_virtual_children interface~positionofval~4 positionofval proc~add_all_virtual_children->interface~positionofval~4 interface~append~4 append proc~add_all_virtual_children->interface~append~4 proc~tem_find_bcs_fromcoarser tem_find_BCs_fromCoarser proc~add_all_virtual_children->proc~tem_find_bcs_fromcoarser proc~tem_idofcoord tem_IdOfCoord proc~add_all_virtual_children->proc~tem_idofcoord proc~tem_childnumber tem_childNumber proc~add_all_virtual_children->proc~tem_childnumber proc~tem_coordofid tem_CoordOfId proc~add_all_virtual_children->proc~tem_coordofid proc~tem_levelof tem_LevelOf proc~add_all_virtual_children->proc~tem_levelof interface~init~15 init proc~add_all_virtual_children->interface~init~15 proc~posofval_label posofval_label interface~positionofval~4->proc~posofval_label 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~childtostencil childToStencil proc~tem_find_bcs_fromcoarser->proc~childtostencil proc~tem_coordofid->proc~tem_levelof proc~init_ga2d_real init_ga2d_real interface~init~15->proc~init_ga2d_real interface~expand~2 expand proc~append_ga_dynlong->interface~expand~2 proc~append_ga_dynlong_vec->interface~expand~2 interface~sortedposofval~4 sortedposofval proc~posofval_label->interface~sortedposofval~4 proc~expand_ga_dynlong expand_ga_dynlong interface~expand~2->proc~expand_ga_dynlong proc~sortposofval_label sortposofval_label interface~sortedposofval~4->proc~sortposofval_label

Called by

proc~~add_all_virtual_children~~CalledByGraph proc~add_all_virtual_children add_all_virtual_children proc~add_all_virtual_children->proc~add_all_virtual_children proc~identify_local_element identify_local_element proc~identify_local_element->proc~add_all_virtual_children proc~single_process_element single_process_element proc~single_process_element->proc~identify_local_element proc~identify_halo identify_halo proc~identify_halo->proc~identify_local_element proc~identify_elements identify_elements proc~identify_elements->proc~single_process_element proc~identify_elements->proc~identify_elements proc~request_remotehalos request_remoteHalos proc~request_remotehalos->proc~identify_halo proc~create_allparentneighbors create_allParentNeighbors proc~create_allparentneighbors->proc~identify_elements proc~identify_stencilneigh identify_stencilNeigh proc~identify_stencilneigh->proc~identify_elements proc~communicate_elements communicate_elements proc~communicate_elements->proc~request_remotehalos proc~build_levelelements build_levelElements proc~build_levelelements->proc~identify_elements proc~identify_additionalneigh identify_additionalNeigh proc~identify_additionalneigh->proc~identify_elements

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: targetPos
integer, private :: iChild
integer, private :: iDir
integer, private :: nVals
integer, private :: sourceLevel
integer, private :: sourcePos
logical, private :: wasAdded
logical, private :: childUpdated
integer(kind=long_k), private :: cTreeID
integer(kind=long_k), private :: ichildID
integer(kind=long_k), private :: curNeighborID
integer(kind=long_k), private, allocatable:: tNeighID(:)
type(tem_stencilElement_type), private :: tStencil(1)
integer, private :: iChildCoord(4)
integer, private :: curLevel
integer, private :: offset(4)
integer, private :: xc(4)
integer, private :: childCoord(4)
integer, private :: addedPos