traverse_tree Subroutine

public recursive subroutine traverse_tree(node_pos, leVal, proto, geometry, temData, header, meshUniverse)

Recursively traverse the tree in a depth first manner to obtain the the ordering required by treelm.

Only considere flooded nodes here, no need to traverse further down any non flooded node, as it does not belong to the computational domain. All virtual nodes containing at least one flooded leaf node has already been determined and set after flooding in sdr_flood_module::sdr_flood_tree. If the leaf node is reached, hand over to the ::refine_leaf routine, to find all elements, that actually should be created in the computational domain.

If this node is flooded or fluidifyable it needs to be included in the final mesh.

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: node_pos

Position of leaf in the preliminary tree

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

type(sdr_temData_type), intent(inout) :: temData

temData contains final treelmesh

type(sdr_confHead_type), intent(in) :: header

Header information

type(treelmesh_type), intent(inout) :: meshUniverse

contains bounding cube information


Calls

proc~~traverse_tree~~CallsGraph proc~traverse_tree traverse_tree proc~traverse_tree->proc~traverse_tree proc~sdr_nodecolors sdr_nodeColors proc~traverse_tree->proc~sdr_nodecolors proc~tem_firstidatlevel tem_FirstIdAtLevel proc~traverse_tree->proc~tem_firstidatlevel proc~proto2treelm proto2Treelm proc~traverse_tree->proc~proto2treelm proc~create_target create_target proc~traverse_tree->proc~create_target proc~sdr_bitfieldcolors sdr_bitfieldColors proc~sdr_nodecolors->proc~sdr_bitfieldcolors proc~tem_coordofid tem_CoordOfId proc~proto2treelm->proc~tem_coordofid proc~sdr_identify_boundary sdr_identify_boundary proc~proto2treelm->proc~sdr_identify_boundary interface~append~10 append proc~proto2treelm->interface~append~10 proc~create_target->proc~tem_coordofid proc~sdr_nodeprop_btest sdr_nodeProp_btest proc~create_target->proc~sdr_nodeprop_btest proc~ply_convertfromoversample ply_convertFromOversample proc~create_target->proc~ply_convertfromoversample proc~sdr_color_log2char sdr_color_log2char proc~create_target->proc~sdr_color_log2char proc~sdr_find_periodic_neighbor sdr_find_periodic_neighbor proc~create_target->proc~sdr_find_periodic_neighbor interface~ply_poly_project_n2m ply_poly_project_n2m proc~create_target->interface~ply_poly_project_n2m proc~tem_abort tem_abort proc~create_target->proc~tem_abort proc~newunit newunit proc~create_target->proc~newunit proc~sdr_color_points sdr_color_points proc~create_target->proc~sdr_color_points proc~create_target->proc~sdr_bitfieldcolors proc~create_target->interface~append~10 interface~positionofval~3 positionofval proc~create_target->interface~positionofval~3 proc~sdr_neighbor_in_proto sdr_neighbor_in_proto proc~create_target->proc~sdr_neighbor_in_proto

Called by

proc~~traverse_tree~~CalledByGraph proc~traverse_tree traverse_tree 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

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public :: minlevel
integer, public :: child_pos
integer, public :: iChild
logical, public :: check_bnd
type(levelValues_type), public :: child_leVal
integer, public :: nodeprops
character, public :: nodecolors(proto%node%nColorChars)