dag_s Submodule


Uses

  • module~~dag_s~~UsesGraph module~dag_s dag_s assert_m assert_m module~dag_s->assert_m intrinsic_array_m intrinsic_array_m module~dag_s->intrinsic_array_m iso_fortran_env iso_fortran_env module~dag_s->iso_fortran_env iso_varying_string iso_varying_string module~dag_s->iso_varying_string module~dag_m dag_m module~dag_s->module~dag_m rojff rojff module~dag_s->rojff module~dag_m->rojff module~vertex_m vertex_m module~dag_m->module~vertex_m module~vertex_m->iso_varying_string module~vertex_m->rojff

Contents


Derived Types

Components

Type Visibility Attributes Name Initial
integer, public, allocatable, dimension(:) :: o
integer, public, allocatable, dimension(:) :: s

Functions

pure function topological_sort(dag) result(order)

Provide array of vertex numbers ordered in a way that respects dependencies

Arguments

Type IntentOptional Attributes Name
type(dag_t), intent(in) :: dag

Return Value integer, allocatable, (:)


Module Procedures

module procedure construct_from_components module procedure construct_from_components()

Arguments

None

module procedure construct_from_json module procedure construct_from_json()

Arguments

None

module procedure dependencies_for pure module function dependencies_for(self, vertex_id) result(dependency_ids)

Arguments

Type IntentOptional Attributes Name
class(dag_t), intent(in) :: self
integer, intent(in) :: vertex_id

Return Value integer, allocatable, (:)

module procedure depends_on pure module function depends_on(self, vertex_num) result(dependencies)

Arguments

Type IntentOptional Attributes Name
class(dag_t), intent(in) :: self
integer, intent(in) :: vertex_num

Return Value integer, allocatable, (:)

module procedure graphviz_digraph pure module function graphviz_digraph(self) result(digraph)

Arguments

Type IntentOptional Attributes Name
class(dag_t), intent(in) :: self

Return Value character(len=:), allocatable

module procedure is_sorted_and_acyclic elemental module function is_sorted_and_acyclic(self)

Arguments

Type IntentOptional Attributes Name
class(dag_t), intent(in) :: self

Return Value logical

module procedure num_vertices elemental module function num_vertices(self)

Arguments

Type IntentOptional Attributes Name
class(dag_t), intent(in) :: self

Return Value integer

module procedure to_json module function to_json(self) result(json_object)

Arguments

Type IntentOptional Attributes Name
class(dag_t), intent(in) :: self

Return Value type(json_object_t)