subfor Subroutine

subroutine subfor(w, ipivot, nrow, last, b, x)

************80

! SUBFOR carries out the forward pass of substitution for the current block.

Discussion:

The forward pass is the action on the right hand side corresponding to the 
elimination carried out in FACTRB for this block.

At the end, X(1:NROW) contains the right hand side of the transformed
IPIVOT(1:NROW)-th equation in this block.

Then, since for I=1,...,NROW-LAST, B(NROW+I) is going to be used as 
the right hand side of equation I in the next block (shifted over there 
from this block during factorization), it is set equal to X(LAST+I) here.

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, real ( kind = 8 ) W(NROW,LAST), integer IPIVOT(NROW), 
integer ( kind = 4 ) NROW, integer LAST, are as on return from FACTRB.

Output, real ( kind = 8 ) B(2*NROW-LAST).  On input, B(1:NROW)
contains the right hand sides for this block.  On output,
B(NROW+1:2*NROW-LAST) contains the appropriately modified right
hand sides for the next block.

Output, real X(NROW), contains, on output, the appropriately modified
right hand sides of equations IPIVOT(1:NROW).

Arguments

Type IntentOptional Attributes Name
real(kind=8) :: w(nrow,last)
integer(kind=4) :: ipivot(nrow)
integer(kind=4) :: nrow
integer(kind=4) :: last
real(kind=8) :: b(nrow+nrow-last)
real(kind=8) :: x(nrow)