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