public subroutine sdr_refine_leaf(proto, geometry)
This routine extends the protoTree with max of minlevel or level of
refinement object.
If it is a leaf, check for intersected objects, and keep
on refining accordingly down to the maximum requested level.
When the desired level is reached (no refinement object,
or desired level of intersected refinement object reached, check all
(26) direct neigbors. If there is a neighbor intersected by a boundary
check its refinement level, if it is higher then the current one,
do another refinement step.
Arguments
Type Intent Optional 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
Calls
proc~~sdr_refine_leaf~~CallsGraph
proc~sdr_refine_leaf
sdr_refine_leaf
proc~tem_firstidatlevel
tem_FirstIdAtLevel
proc~sdr_refine_leaf->proc~tem_firstidatlevel
interface~destroy~11
destroy
proc~sdr_refine_leaf->interface~destroy~11
proc~sdr_set_nodeprop_bit
sdr_set_nodeProp_bit
proc~sdr_refine_leaf->proc~sdr_set_nodeprop_bit
interface~truncate~10
truncate
proc~sdr_refine_leaf->interface~truncate~10
interface~init~11
init
proc~sdr_refine_leaf->interface~init~11
proc~inherit_intersectedobject
inHerit_intersectedObject
proc~sdr_refine_leaf->proc~inherit_intersectedobject
proc~tem_stoptimer
tem_stopTimer
proc~sdr_refine_leaf->proc~tem_stoptimer
proc~tem_starttimer
tem_startTimer
proc~sdr_refine_leaf->proc~tem_starttimer
proc~check_bndlevel
check_bndLevel
proc~sdr_refine_leaf->proc~check_bndlevel
proc~create_children
create_children
proc~sdr_refine_leaf->proc~create_children
interface~append~10
append
proc~sdr_refine_leaf->interface~append~10
proc~tem_horizontalspacer
tem_horizontalSpacer
proc~sdr_refine_leaf->proc~tem_horizontalspacer
proc~inherit_intersectedobject->interface~append~10
proc~tem_coordofid
tem_CoordOfId
proc~inherit_intersectedobject->proc~tem_coordofid
proc~is_intersecting
is_intersecting
proc~inherit_intersectedobject->proc~is_intersecting
proc~tem_spherecubeoverlap
tem_sphereCubeOverlap
proc~inherit_intersectedobject->proc~tem_spherecubeoverlap
interface~sdr_append_childintersectedobject
sdr_append_childIntersectedObject
proc~inherit_intersectedobject->interface~sdr_append_childintersectedobject
proc~check_bndlevel->proc~tem_coordofid
proc~sdr_nodeprop_btest
sdr_nodeProp_btest
proc~check_bndlevel->proc~sdr_nodeprop_btest
proc~sdr_neighbor_in_proto
sdr_neighbor_in_proto
proc~check_bndlevel->proc~sdr_neighbor_in_proto
proc~create_children->proc~sdr_set_nodeprop_bit
proc~create_children->interface~append~10
proc~tem_directchildren
tem_directChildren
proc~create_children->proc~tem_directchildren
proc~sdr_inheritbnd_eligiblechildren
sdr_inHeritBnd_eligibleChildren
proc~create_children->proc~sdr_inheritbnd_eligiblechildren
proc~sdr_clear_nodeprop_bit
sdr_clear_nodeProp_bit
proc~create_children->proc~sdr_clear_nodeprop_bit
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Called by
proc~~sdr_refine_leaf~~CalledByGraph
proc~sdr_refine_leaf
sdr_refine_leaf
program~seeder
seeder
program~seeder->proc~sdr_refine_leaf
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Variables
Type Visibility Attributes Name Initial
integer(kind=long_k),
private ::
parent_ID_offset
integer(kind=long_k),
private ::
parentID
integer,
private ::
objkind_count (sdr_object_kinds_max)
integer,
private ::
maxLevel
integer,
private ::
parentProps
integer,
private ::
iObject
integer,
private ::
iDist
integer,
private ::
nObjects
integer,
private ::
obj_pos
integer,
private ::
attr_pos
integer,
private ::
dist_pos
integer,
private ::
attr_kind
integer,
private ::
parent_pos
integer,
private ::
iLevel
integer,
private ::
iParent
integer,
private ::
firstParent
integer,
private ::
lastParent
integer,
private ::
nNodesOld
integer,
private ::
nNodes
logical,
private ::
testAll
type(levelValues_type ),
private ::
leVal
type(grw_longarray_type ),
private ::
grwTreeID
type(sdr_intersectObjPos_type ),
private ::
userObjPos
type(sdr_intersectObjPos_type ),
private ::
distObjPos
integer,
private ::
child_nodePos (8)
integer,
private ::
nDistRefine_objs
integer,
private ::
memLeft
logical,
private ::
noSub