GraphClass Module



Contents


Derived Types

type, public :: Graph_

Components

TypeVisibility AttributesNameInitial
integer(kind=int32), public, allocatable:: AdjacencyMatrix(:,:)
type(Vertex_), public, allocatable:: Vertex(:)
integer(kind=int32), public, allocatable:: Global_ID(:)
integer(kind=int32), public :: NumOfVertex =0

Type-Bound Procedures

procedure, public :: add => addGraph
procedure, public :: update => updateGraph
procedure, public :: show => showGraph
procedure, public :: remove => removeGraph
procedure, public :: sync => syncGraph

Subroutines

public subroutine removeGraph(obj, onlyVertex)

Arguments

Type IntentOptional AttributesName
class(Graph_), intent(inout) :: obj
logical, intent(in), optional :: onlyVertex

public subroutine addGraph(obj, vertex, from, to, between, and)

Arguments

Type IntentOptional AttributesName
class(Graph_), intent(inout) :: obj
type(Vertex_), intent(inout), optional :: vertex
integer(kind=int32), intent(in), optional :: from
integer(kind=int32), intent(in), optional :: to
integer(kind=int32), intent(in), optional :: between
integer(kind=int32), intent(in), optional :: and

public subroutine updateGraph(obj, ID, vertex, from, to, between, and)

Arguments

Type IntentOptional AttributesName
class(Graph_), intent(inout) :: obj
integer(kind=int32), intent(in) :: ID
type(Vertex_), intent(inout), optional :: vertex
integer(kind=int32), intent(in), optional :: from
integer(kind=int32), intent(in), optional :: to
integer(kind=int32), intent(in), optional :: between
integer(kind=int32), intent(in), optional :: and

public subroutine showGraph(obj, withname)

Arguments

Type IntentOptional AttributesName
class(Graph_), intent(in) :: obj
logical, intent(in), optional :: withname

public subroutine syncGraph(obj, AdjacencyMatrix)

Arguments

Type IntentOptional AttributesName
class(Graph_), intent(inout) :: obj
integer(kind=int32), intent(in) :: AdjacencyMatrix(:,:)