TreeClass Module



Contents


Derived Types

type, public :: Nodep_

Components

TypeVisibility AttributesNameInitial
type(Node_), public, pointer:: Nodep

type, public :: Node_

Components

TypeVisibility AttributesNameInitial
type(Node_), public, pointer:: Parent
type(Nodep_), public, allocatable:: Child(:)
real(kind=real64), public :: coord(3)
real(kind=real64), public :: vector(3)
character(len=200), public :: Name
real(kind=real64), public :: fpval
integer(kind=int32), public :: intval
integer(kind=int32), public :: ID

Type-Bound Procedures

procedure, public :: Init => InitializeNode
procedure, public :: create => CreateNode

type, public :: Tree_

Components

TypeVisibility AttributesNameInitial
type(Nodep_), public, allocatable:: Node(:)
integer(kind=int32), public :: SortedUntil

Type-Bound Procedures

procedure, public :: Init => InitializeTree
procedure, public :: Add => AddNodeInTree
procedure, public :: cut => cutNodeInTree
procedure, public :: show => showTree
procedure, public :: NumOfTree
procedure, public :: parentNodeID => parentNodeIDTree
procedure, public :: countIfParentIDis
procedure, public :: setVisualMap => setVisualMapTree

Functions

public function NumOfTree(obj) result(num)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(in) :: obj

Return Value integer(kind=int32)

public function countIfParentIDis(obj, ParentID) result(num)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(in) :: obj
integer(kind=int32), intent(in) :: ParentID

Return Value integer(kind=int32)

public function parentNodeIDTree(obj, ParentID) result(NodeID)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(in) :: obj
integer(kind=int32), intent(in), optional :: ParentID

Return Value integer(kind=int32)


Subroutines

public subroutine InitializeNode(obj)

Arguments

Type IntentOptional AttributesName
class(Node_), intent(inout) :: obj

public subroutine CreateNode(obj, parent, Name)

Arguments

Type IntentOptional AttributesName
class(Node_), intent(inout), target:: obj
class(Node_), intent(inout), optional target:: parent
character(len=*), intent(in) :: Name

public subroutine InitializeTree(obj, NumOfNode)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: NumOfNode

public subroutine AddNodeInTree(obj, NodeObj)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(inout) :: obj
class(Node_), intent(in), target:: NodeObj

public subroutine cutNodeInTree(obj, NodeObj)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(inout) :: obj
class(Node_), intent(in), target:: NodeObj

public subroutine showTree(obj)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(in) :: obj

public subroutine setVisualMapTree(obj)

Arguments

Type IntentOptional AttributesName
class(Tree_), intent(in) :: obj