inHerit_intersectedObject Subroutine

private subroutine inHerit_intersectedObject(proto, geometry, parent, parentID, testAll, intersected_object, grwObjPos, parent_objPos, leVal, child_intersected_object, child_nodePos, memLeft, isDistRefObj)

This routine inherit the intersected boundary objects from parent to childrens

Update the intersected_first and last for children

Arguments

Type IntentOptional Attributes Name
type(sdr_protoTree_type), intent(inout) :: proto

The proto tree description with all the data to refine further

type(sdr_geometry_type), intent(in) :: geometry

type which contains all geometry object infos

integer, intent(in) :: parent

Position of parent node in protoTree

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

TreeID of parent

logical, intent(in) :: testAll

To test all intersected objects

type(grw_intarray_type), intent(inout) :: intersected_object

Growing array of intersected objects. Could be user defined or distance refine spatial objects

type(grw_intersectObjPosArray_type), intent(inout) :: grwObjPos

First and last position of intersected object of all nodes in intersected_object list

type(sdr_intersectObjPos_type), intent(in) :: parent_objPos

Position of first ans last intersected object of parent node in intersected_object list

type(levelValues_type), intent(in) :: leVal

contains information on current level on which children are created

type(grw_intarray_type), intent(inout) :: child_intersected_object

Temporary array of intersected objects for 8 children

integer, intent(in) :: child_nodePos(8)

8 children node position in protoTree

integer, intent(out) :: memLeft

memory of parent intersected object unused by children

logical, intent(in) :: isDistRefObj

Is this distance refine objects


Calls

proc~~inherit_intersectedobject~~CallsGraph proc~inherit_intersectedobject inHerit_intersectedObject append append proc~inherit_intersectedobject->append proc~is_intersecting is_intersecting proc~inherit_intersectedobject->proc~is_intersecting sdr_append_childintersectedobject sdr_append_childintersectedobject proc~inherit_intersectedobject->sdr_append_childintersectedobject tem_CoordOfId tem_CoordOfId proc~inherit_intersectedobject->tem_CoordOfId tem_sphereCubeOverlap tem_sphereCubeOverlap proc~inherit_intersectedobject->tem_sphereCubeOverlap val val proc~inherit_intersectedobject->val proc~is_intersecting->tem_sphereCubeOverlap proc~is_intersecting->val sdr_periodicplanecubeoverlap sdr_periodicplanecubeoverlap proc~is_intersecting->sdr_periodicplanecubeoverlap sdr_spacerinterwovencubeoverlap sdr_spacerinterwovencubeoverlap proc~is_intersecting->sdr_spacerinterwovencubeoverlap tem_boxCubeOverlap tem_boxCubeOverlap proc~is_intersecting->tem_boxCubeOverlap tem_cylinderCubeOverlap tem_cylinderCubeOverlap proc~is_intersecting->tem_cylinderCubeOverlap tem_ellipsoidCubeOverlap tem_ellipsoidCubeOverlap proc~is_intersecting->tem_ellipsoidCubeOverlap tem_lineCubeOverlap tem_lineCubeOverlap proc~is_intersecting->tem_lineCubeOverlap tem_pointCubeOverlap tem_pointCubeOverlap proc~is_intersecting->tem_pointCubeOverlap tem_triangleCubeOverlap tem_triangleCubeOverlap proc~is_intersecting->tem_triangleCubeOverlap

Called by

proc~~inherit_intersectedobject~~CalledByGraph proc~inherit_intersectedobject inHerit_intersectedObject proc~sdr_inherit_distancerefineobject sdr_inHerit_distanceRefineObject proc~sdr_inherit_distancerefineobject->proc~inherit_intersectedobject proc~sdr_refine_leaf sdr_refine_leaf proc~sdr_refine_leaf->proc~inherit_intersectedobject program~seeder seeder program~seeder->proc~sdr_inherit_distancerefineobject program~seeder->proc~sdr_refine_leaf