Diagonally_Dominant_Matrix Function

public function Diagonally_Dominant_Matrix(A) result(diagonally_dominant)

function which checks if A is diagonally dominant

Arguments

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

Return Value logical


Source Code

    FUNCTION Diagonally_Dominant_Matrix(A) RESULT(diagonally_dominant)
        REAL(dp), DIMENSION(:, :), INTENT(IN) :: A
        LOGICAL :: diagonally_dominant
        REAL(dp) :: summation
        INTEGER :: i, N

        N = SIZE(A, 1)

        diagonally_dominant = .TRUE.

        DO i = 1, N
            summation = SUM(ABS(A(i, :) - A(i, i)))
            if (ABS(A(i, i)) < summation)THEN
                diagonally_dominant = .FALSE.
                EXIT
            END IF
        END DO

    END FUNCTION Diagonally_Dominant_Matrix