factrb Subroutine

subroutine factrb(w, ipivot, d, nrow, ncol, last, iflag)

************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.

Arguments

Type IntentOptional 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