Calculate_ILU_preconditioner Subroutine

public subroutine Calculate_ILU_preconditioner(A, L, U, omega, alpha, fill_level)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:, :) :: A
real(kind=dp), intent(out), dimension(size(A, 1), size(A, 2)) :: L
real(kind=dp), intent(out), dimension(size(A, 1), size(A, 2)) :: U
real(kind=dp), intent(in) :: omega
real(kind=dp), intent(in) :: alpha
integer, intent(in), optional :: fill_level

Calls

proc~~calculate_ilu_preconditioner~~CallsGraph proc~calculate_ilu_preconditioner Calculate_ILU_preconditioner proc~ilu_decomposition ILU_decomposition proc~calculate_ilu_preconditioner->proc~ilu_decomposition

Source Code

    subroutine Calculate_ILU_preconditioner(A, L, U, omega, alpha, fill_level)
        real(dp), dimension(:, :), intent(in) :: A
        real(dp), intent(in) :: omega, alpha
        real(dp), dimension(size(A, 1), size(A, 2)), intent(out) :: L, U
        integer, optional, intent(in) :: fill_level
        integer :: N

        N = size(A, 1)

        L = 0.d0
        U = 0.d0

        if (present(fill_level)) then
            call ILU_decomposition(A, L, U, fill_level)
        else
            call ILU_decomposition(A, L, U)
        end if

        L = alpha / omega * L

    end subroutine Calculate_ILU_preconditioner