lu_factor Interface

public interface lu_factor

Module Procedures

private subroutine lu_factor_dbl(a, ipvt, err)

Computes the LU factorization of an M-by-N matrix.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N matrix on which to operate. On output, the LU factored matrix in the form [L\U] where the unit diagonal elements of L are not stored.

integer(kind=int32), intent(out), dimension(:) :: ipvt

An MIN(M, N)-element array used to track row-pivot operations. The array stored pivot information such that row I is interchanged with row IPVT(I).

class(errors), intent(inout), optional, target :: err

An error object to report any errors that occur.

private subroutine lu_factor_cmplx(a, ipvt, err)

Computes the LU factorization of an M-by-N matrix.

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(inout), dimension(:,:) :: a

On input, the M-by-N matrix on which to operate. On output, the LU factored matrix in the form [L\U] where the unit diagonal elements of L are not stored.

integer(kind=int32), intent(out), dimension(:) :: ipvt

An MIN(M, N)-element array used to track row-pivot operations. The array stored pivot information such that row I is interchanged with row IPVT(I).

class(errors), intent(inout), optional, target :: err

An error object to report any errors that occur.

private subroutine csr_lu_factor(a, lu, ju, droptol, err)

Factors a matrix using an LU decomposition.

Arguments

Type IntentOptional Attributes Name
class(csr_matrix), intent(in) :: a

The matrix to factor.

type(msr_matrix), intent(out) :: lu

The LU matrix.

integer(kind=int32), intent(out), dimension(:) :: ju

The row tracking array.

real(kind=real64), intent(in), optional :: droptol

The drop tolerance for the ILUT factorization.

class(errors), intent(inout), optional, target :: err

The error object to be updated.