public subroutine proto2Treelm(node_pos, treeID, leVal, proto, geometry, check_bnd, temData, nodeprops, nodecolors, meshUniverse)
Routine to convert protoTree to Treelm data format.
append all leaves to the temData%treeID
Add this element to the list of elements in the final tree, by adding:
* treeID
* propertyBits
If there is a boundary, also add the correct boundary data into the
26 direct neighbors (bc_ID), append to all 26 even if there is no
boundary condition in the given direction, no boundaries are indicated
by 0, boundary conditions are decided based on the trumping rule, that
is the minimal bc_ID of all boundary objects in the corresponding
neighbor are chosen.
Treat periodic boundaries here if possible by putting the opposite
treeID into the bc_ID.
Arguments
Type
Intent Optional Attributes
Name
integer,
intent(in)
::
node_pos
Position of leaf in the preliminary tree
integer(kind=long_k),
intent(in)
::
treeID
treeID of current node
type(levelValues_type ),
intent(in)
::
leVal
level value of current node
type(sdr_protoTree_type ),
intent(in)
::
proto
preliminary tree
type(sdr_geometry_type ),
intent(in)
::
geometry
contains all geometrical objects
logical,
intent(in)
::
check_bnd
does this node has boundary neighbor
type(sdr_temData_type ),
intent(inout)
::
temData
integer,
intent(in)
::
nodeprops
propertyBits of current node
character(len=1),
intent(in)
::
nodecolors (:)
Color information of the cuurent node
type(treelmesh_type ),
intent(inout)
::
meshUniverse
contains bounding cube information
proc~~proto2treelm~~CallsGraph
proc~proto2treelm
proto2Treelm
append
append
proc~proto2treelm->append
proc~sdr_identify_boundary
sdr_identify_boundary
proc~proto2treelm->proc~sdr_identify_boundary
tem_CoordOfId
tem_CoordOfId
proc~proto2treelm->tem_CoordOfId
val
val
proc~proto2treelm->val
proc~sdr_identify_boundary->val
kindpos
kindpos
proc~sdr_identify_boundary->kindpos
proc~getbcid_and_calcqval
getBCID_and_calcQval
proc~sdr_identify_boundary->proc~getbcid_and_calcqval
proc~getnormal
getNormal
proc~sdr_identify_boundary->proc~getnormal
proc~needcalcqvalbybcid
needCalcQValByBCID
proc~sdr_identify_boundary->proc~needcalcqvalbybcid
proc~sdr_neighbor_in_proto
sdr_neighbor_in_proto
proc~sdr_identify_boundary->proc~sdr_neighbor_in_proto
sdr_nodeprop_btest
sdr_nodeprop_btest
proc~sdr_identify_boundary->sdr_nodeprop_btest
tem_BaryOfId
tem_BaryOfId
proc~sdr_identify_boundary->tem_BaryOfId
tem_abort
tem_abort
proc~sdr_identify_boundary->tem_abort
tem_convertTreeIDtoCube
tem_convertTreeIDtoCube
proc~sdr_identify_boundary->tem_convertTreeIDtoCube
tem_pointCubeOverlap
tem_pointCubeOverlap
proc~sdr_identify_boundary->tem_pointCubeOverlap
proc~getbcid_and_calcqval->val
proc~getbcid_and_calcqval->proc~needcalcqvalbybcid
proc~sdr_find_periodic_neighbor
sdr_find_periodic_neighbor
proc~getbcid_and_calcqval->proc~sdr_find_periodic_neighbor
proc~sdr_qvalbynode
sdr_qValByNode
proc~getbcid_and_calcqval->proc~sdr_qvalbynode
proc~sdr_truncate_qval
sdr_truncate_qVal
proc~getbcid_and_calcqval->proc~sdr_truncate_qval
proc~getnormal->append
proc~getnormal->val
proc~getnormal->kindpos
destroy
destroy
proc~getnormal->destroy
init
init
proc~getnormal->init
mrgrnk
mrgrnk
proc~getnormal->mrgrnk
tem_triangle_normal_proximity
tem_triangle_normal_proximity
proc~getnormal->tem_triangle_normal_proximity
proc~needcalcqvalbybcid->val
proc~needcalcqvalbybcid->kindpos
positionofval
positionofval
proc~sdr_neighbor_in_proto->positionofval
tem_IdOfCoord
tem_IdOfCoord
proc~sdr_neighbor_in_proto->tem_IdOfCoord
tem_ParentOf
tem_ParentOf
proc~sdr_neighbor_in_proto->tem_ParentOf
proc~sdr_find_periodic_neighbor->tem_CoordOfId
proc~sdr_find_periodic_neighbor->val
proc~sdr_find_periodic_neighbor->kindpos
proc~sdr_find_periodic_neighbor->proc~needcalcqvalbybcid
proc~sdr_find_periodic_neighbor->sdr_nodeprop_btest
proc~sdr_find_periodic_neighbor->tem_BaryOfId
proc~sdr_find_periodic_neighbor->tem_abort
proc~sdr_find_periodic_neighbor->proc~sdr_qvalbynode
proc~sdr_find_periodic_neighbor->proc~sdr_truncate_qval
proc~sdr_find_periodic_neighbor->tem_IdOfCoord
proc~gettreeidposofcoord
getTreeIDPosOfCoord
proc~sdr_find_periodic_neighbor->proc~gettreeidposofcoord
proc~projectveconplane
projectVecOnPlane
proc~sdr_find_periodic_neighbor->proc~projectveconplane
tem_CoordOfReal
tem_CoordOfReal
proc~sdr_find_periodic_neighbor->tem_CoordOfReal
proc~sdr_qvalbynode->val
fraction_PointLine
fraction_PointLine
proc~sdr_qvalbynode->fraction_PointLine
intersect_RayTriangle
intersect_RayTriangle
proc~sdr_qvalbynode->intersect_RayTriangle
proc~sdr_truncate_qval->sdr_nodeprop_btest
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
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.
proc~~proto2treelm~~CalledByGraph
proc~proto2treelm
proto2Treelm
proc~traverse_tree
traverse_tree
proc~traverse_tree->proc~proto2treelm
proc~traverse_tree->proc~traverse_tree
proc~sdr_proto2treelm
sdr_proto2treelm
proc~sdr_proto2treelm->proc~traverse_tree
program~seeder
seeder
program~seeder->proc~sdr_proto2treelm
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
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.