a vertex of a directed acyclic graph (DAG)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | dimension(:), allocatable | :: | edges |
these are the vertices that this vertex depends on |
||
| integer, | private | :: | ivertex | = | 0 |
vertex number |
|
| logical, | private | :: | checking | = | .false. |
used for toposort |
|
| logical, | private | :: | marked | = | .false. |
used for toposort |
|
| character(len=:), | private, | allocatable | :: | label |
used for diagraph |
||
| character(len=:), | private, | allocatable | :: | attributes |
used for diagraph |
specify the edge indices for this vertex
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(vertex), | intent(inout) | :: | me | |||
| integer, | intent(in), | dimension(:) | :: | edges |
add an edge index for this vertex
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(vertex), | intent(inout) | :: | me | |||
| integer, | intent(in) | :: | edge |
specify the edge indices for this vertex
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(vertex), | intent(inout) | :: | me | |||
| integer, | intent(in), | dimension(:) | :: | edges |
type :: vertex !! a vertex of a directed acyclic graph (DAG) private integer,dimension(:),allocatable :: edges !! these are the vertices that this vertex depends on integer :: ivertex = 0 !! vertex number logical :: checking = .false. !! used for toposort logical :: marked = .false. !! used for toposort character(len=:),allocatable :: label !! used for diagraph character(len=:),allocatable :: attributes !! used for diagraph contains generic :: set_edges => set_edge_vector, add_edge procedure :: set_edge_vector procedure :: add_edge end type vertex