Diag Function

public function Diag(A) result(D)

function that extracts the diagonal of a matrix where is a vector containing the diagonal elements of the matrix .

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A

Return Value real(kind=dp), dimension(size(A, 1))


Called by

proc~~diag~~CalledByGraph proc~diag Diag proc~calculate_gauss_seidel_preconditioner Calculate_Gauss_Seidel_preconditioner proc~calculate_gauss_seidel_preconditioner->proc~diag proc~calculate_jacobi_preconditioner Calculate_Jacobi_preconditioner proc~calculate_jacobi_preconditioner->proc~diag proc~calculate_jor_preconditioner Calculate_JOR_preconditioner proc~calculate_jor_preconditioner->proc~diag proc~calculate_sor_preconditioner Calculate_SOR_preconditioner proc~calculate_sor_preconditioner->proc~diag proc~is_non_zero_diagonal is_non_zero_diagonal proc~is_non_zero_diagonal->proc~diag

Source Code

    function Diag(A) result(D)
        real(dp), dimension(:, :), intent(in) :: A
        real(dp), dimension(size(A, 1)) :: D
        integer :: i, N

        N = size(A, 1)

        forall (i=1:N) D(i) = A(i, i)

    end function Diag