dag_generate_dependency_matrix Subroutine

private subroutine dag_generate_dependency_matrix(me, mat)

Generate the dependency matrix for the DAG.

This is an matrix with elements , such that is true if vertex depends on vertex .

Type Bound

dag

Arguments

Type IntentOptional Attributes Name
class(dag), intent(in) :: me
logical, intent(out), dimension(:,:), allocatable :: mat

dependency matrix


Called by

proc~~dag_generate_dependency_matrix~~CalledByGraph proc~dag_generate_dependency_matrix dag_module::dag%dag_generate_dependency_matrix program~dag_example dag_example program~dag_example->proc~dag_generate_dependency_matrix

Source Code

    subroutine dag_generate_dependency_matrix(me,mat)

    implicit none

    class(dag),intent(in) :: me
    logical,dimension(:,:),intent(out),allocatable :: mat !! dependency matrix

    integer :: i !! vertex counter

    if (me%n > 0) then

        allocate(mat(me%n,me%n))
        mat = .false.

        do i=1,me%n
            if (allocated(me%vertices(i)%edges)) then
                mat(i,me%vertices(i)%edges) = .true.
            end if
        end do

    end if

    end subroutine dag_generate_dependency_matrix