************80
! FACTRB constructs a partial PLU factorization.
Discussion:
This factorization corresponds to steps 1 through LAST in Gauss
elimination for the matrix W of order ( NROW, NCOL ), using
pivoting of scaled rows.
Modified:
14 February 2007
Author:
Carl DeBoor
Reference:
Carl DeBoor,
A Practical Guide to Splines,
Springer, 2001,
ISBN: 0387953663,
LC: QA1.A647.v27.
Parameters:
Input/output, real ( kind = 8 ) W(NROW,NCOL); on input, contains the
matrix to be partially factored; on output, the partial factorization.
Output, integer ( kind = 4 ) IPIVOT(NROW), contains a record of the
pivoting strategy used; row IPIVOT(I) is used during the I-th elimination
step, for I = 1, ..., LAST.
Workspace, real ( kind = 8 ) D(NROW), used to store the maximum entry
in each row.
Input, integer ( kind = 4 ) NROW, the number of rows of W.
Input, integer ( kind = 4 ) NCOL, the number of columns of W.
Input, integer ( kind = 4 ) LAST, the number of elimination steps to
be carried out.
Input/output, integer ( kind = 4 ) IFLAG. On output, equals the input
value times (-1)**(number of row interchanges during the factorization
process), in case no zero pivot was encountered.
Otherwise, IFLAG = 0 on output.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8) | :: | w(nrow,ncol) | ||||
integer(kind=4) | :: | ipivot(nrow) | ||||
real(kind=8) | :: | d(nrow) | ||||
integer(kind=4) | :: | nrow | ||||
integer(kind=4) | :: | ncol | ||||
integer(kind=4) | :: | last | ||||
integer(kind=4) | :: | iflag |