solve_sparse_crs_lu Module Subroutine

module subroutine solve_sparse_crs_lu(self, A, b, x, status)

Arguments

Type IntentOptional Attributes Name
class(type_solver_sparse_crs_lu), intent(inout) :: self
class(abst_matrix), intent(in) :: A
real(kind=real64), intent(inout) :: b(:)
real(kind=real64), intent(inout) :: x(:)
integer(kind=int32), intent(inout) :: status

Calls

proc~~solve_sparse_crs_lu~~CallsGraph proc~solve_sparse_crs_lu solve_sparse_crs_lu pardiso pardiso proc~solve_sparse_crs_lu->pardiso

Source Code

    module subroutine solve_sparse_crs_lu(self, A, b, x, status)
        implicit none
        class(type_solver_sparse_crs_lu), intent(inout) :: self
        class(abst_matrix), intent(in) :: A
        real(real64), intent(inout) :: b(:)
        real(real64), intent(inout) :: x(:)
        integer(int32), intent(inout) :: status

        select type (matrix => A)
        type is (type_crs)
            call PARDISO(self%PT, self%MAXFCT, self%MNUM, self%MTYPE, self%PHASE, self%N, matrix%val, self%IA, self%JA, &
                         self%PERM, self%NRHS, self%IPARM, self%MSGLVL, b, x, self%ERROR)
            status = transfer(self%ERROR, status)
        end select

    end subroutine solve_sparse_crs_lu