Computes the LU factorization of a general nbyn banded distributed matrix.
Syntax
FORTRAN:

call psgbtrf(n, bwl, bwu, a, ja, desca, ipiv, af, laf, work, lwork, info)
call pdgbtrf(n, bwl, bwu, a, ja, desca, ipiv, af, laf, work, lwork, info)
call pcgbtrf(n, bwl, bwu, a, ja, desca, ipiv, af, laf, work, lwork, info)
call pzgbtrf(n, bwl, bwu, a, ja, desca, ipiv, af, laf, work, lwork, info)
C:

void psgbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , float *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , float *af , MKL_INT *laf , float *work , MKL_INT *lwork , MKL_INT *info );
void pdgbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , double *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , double *af , MKL_INT *laf , double *work , MKL_INT *lwork , MKL_INT *info );
void pcgbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_Complex8 *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , MKL_Complex8 *af , MKL_INT *laf , MKL_Complex8 *work , MKL_INT *lwork , MKL_INT *info );
void pzgbtrf (MKL_INT *n , MKL_INT *bwl , MKL_INT *bwu , MKL_Complex16 *a , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , MKL_Complex16 *af , MKL_INT *laf , MKL_Complex16 *work , MKL_INT *lwork , MKL_INT *info );
Description
The p?gbtrf routine computes the LU factorization of a general nbyn real/complex banded distributed matrix A(1:n, ja:ja+n1)
using partial pivoting with row interchanges.
The resulting factorization is not the same factorization as returned from the LAPACK routine ?gbtrf. Additional permutations are performed on the matrix for the sake of parallelism.
The factorization has the form
A(1:n, ja:ja+n1) = P*L*U*Q
where P and Q are permutation matrices, and L and U are banded lower and upper triangular matrices, respectively. The matrix Q represents reordering of columns for the sake of parallelism, while P represents reordering of rows for numerical stability using classic partial pivoting.
Input Parameters
 n

(global) INTEGER. The number of rows and columns in the distributed submatrix
A(1:n, ja:ja+n1)
;n ≥ 0
.  bwl

(global) INTEGER. The number of subdiagonals within the band of A
( 0 ≤ bwl ≤ n1 )
.  bwu

(global) INTEGER. The number of superdiagonals within the band of A
( 0 ≤ bwu ≤ n1 )
.  a

(local)
REAL for psgbtrf
DOUBLE PRECISION for pdgbtrf
COMPLEX for pcgbtrf
DOUBLE COMPLEX for pzgbtrf.
Pointer into the local memory to an array of local dimension
(lld_a, LOC_{c}(ja+n1)
wherelld_a ≥ 2*bwl + 2*bwu +1
.Contains the local pieces of the nbyn distributed banded matrix
A(1:n, ja:ja+n1)
to be factored.  ja

(global) INTEGER. The index in the global array A that points to the start of the matrix to be operated on ( which may be either all of A or a submatrix of A).
 desca

(global and local) INTEGER array, dimension (dlen_). The array descriptor for the distributed matrix A.
If
desca(dtype_) = 501
, thendlen_ ≥ 7
;else if
desca(dtype_) = 1
, thendlen_ ≥ 9
.  laf

(local) INTEGER. The dimension of the array af.
Must be
laf ≥ (NB+bwu)*(bwl+bwu)+6*(bwl+bwu)*(bwl+2*bwu)
.If laf is not large enough, an error code will be returned and the minimum acceptable size will be returned in af(1).
 work

(local) Same type as a. Workspace array of dimension lwork .
 lwork

(local or global) INTEGER. The size of the work array
(lwork ≥ 1)
. If lwork is too small, the minimal acceptable size will be returned in work(1) and an error code is returned.
Output Parameters
 a

On exit, this array contains details of the factorization. Note that additional permutations are performed on the matrix, so that the factors returned are different from those returned by LAPACK.
 ipiv

(local) INTEGER array.
The dimension of ipiv must be
≥ desca(NB)
.Contains pivot indices for local factorizations. Note that you should not alter the contents of this array between factorization and solve.
 af

(local)
REAL for psgbtrf
DOUBLE PRECISION for pdgbtrf
COMPLEX for pcgbtrf
DOUBLE COMPLEX for pzgbtrf.
Array, dimension (laf).
Auxiliary Fillin space. Fillin is created during the factorization routine p?gbtrf and this is stored in af.
Note that if a linear system is to be solved using p?gbtrs after the factorization routine, af must not be altered after the factorization.
work(1)

On exit,
work(1)
contains the minimum value of lwork required for optimum performance.  info

(global) INTEGER.
If
info=0
, the execution is successful.info < 0
:If the ith argument is an array and the jth entry had an illegal value, then
info = (i*100+j)
; if the ith argument is a scalar and had an illegal value, theninfo = i
.info > 0
:If
info = k ≤ NPROCS
, the submatrix stored on processor info and factored locally was not nonsingular, and the factorization was not completed. Ifinfo = k > NPROCS
, the submatrix stored on processorinfoNPROCS
representing interactions with other processors was not nonsingular, and the factorization was not completed.