dag_add_edge Subroutine

private subroutine dag_add_edge(me, ivertex, iedge, label, attributes, metadata)

Add an edge to a dag.

Type Bound

dag

Arguments

Type IntentOptional Attributes Name
class(dag), intent(inout) :: me
integer(kind=ip), intent(in) :: ivertex

vertex number

integer(kind=ip), intent(in) :: iedge

the vertex to connect to ivertex

character(len=*), intent(in), optional :: label

edge label

character(len=*), intent(in), optional :: attributes

other attributes when saving as a diagraph.

class(*), intent(in), optional :: metadata

optional user-defined metadata


Calls

proc~~dag_add_edge~~CallsGraph proc~dag_add_edge dag_module::dag%dag_add_edge none~set_edges dag_module::vertex%set_edges proc~dag_add_edge->none~set_edges proc~add_edge dag_module::vertex%add_edge none~set_edges->proc~add_edge proc~set_edge_vector_vector dag_module::vertex%set_edge_vector_vector none~set_edges->proc~set_edge_vector_vector proc~sort_ascending dag_module::sort_ascending proc~add_edge->proc~sort_ascending proc~set_edge_vector_vector->proc~sort_ascending proc~swap dag_module::swap proc~sort_ascending->proc~swap

Source Code

    subroutine dag_add_edge(me,ivertex,iedge,label,attributes,metadata)

    class(dag),intent(inout) :: me
    integer(ip),intent(in)   :: ivertex !! vertex number
    integer(ip),intent(in)   :: iedge   !! the vertex to connect to `ivertex`
    character(len=*),intent(in),optional :: label !! edge label
    character(len=*),intent(in),optional :: attributes !! other attributes when
                                                       !! saving as a diagraph.
    class(*),intent(in),optional :: metadata !! optional user-defined metadata

    call me%vertices(ivertex)%set_edges(iedge,&
                        label=label,&
                        attributes=attributes,&
                        metadata=metadata)

    end subroutine dag_add_edge