putit Subroutine

subroutine putit(t, kpm, left, scrtch, dbiatx, q, nrow, b)

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

! PUTIT puts together one block of the collocation equation system.

Method:

The K collocation equations for the interval ( T(LEFT), T(LEFT+1) )
are constructed with the aid of the subroutine DIFEQU( 2, ., . ) 
and interspersed (in order) with the side conditions, if any, in
this interval, using DIFEQU ( 3, ., . )  for the information.

The block Q has KPM columns, corresponding to the KPM B-splines of order 
KPM which have the interval ( T(LEFT), T(LEFT+1) ) in their support.

The block's diagonal is part of the diagonal of the total system.

The first equation in this block not overlapped by the preceding block 
is therefore equation LOWROW, with LOWROW = number of side conditions 
in preceding intervals (or blocks).

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 ) T(LEFT+KPM), the knot sequence.

Input, integer ( kind = 4 ) KPM, the order of the spline.

Input, integer ( kind = 4 ) LEFT, indicates the interval of interest, 
that is, the interval ( T(LEFT), T(LEFT+1) ).

Workspace, real ( kind = 8 ) SCRTCH(KPM,KPM).

Workspace, real ( kind = 8 ) DBIATX(KPM,M+1), derivatives of B-splines, 
with DBIATX(J,I+1) containing the I-th derivative of the J-th B-spline 
of interest.

Output, real ( kind = 8 ) Q(NROW,KPM), the block.

Input, integer ( kind = 4 ) NROW, number of rows in block to be

! put together.

Output, real ( kind = 8 ) B(NROW), the corresponding piece of 
the right hand side.

Arguments

Type IntentOptional Attributes Name
real(kind=8) :: t(left+kpm)
integer(kind=4) :: kpm
integer(kind=4) :: left
real(kind=8) :: scrtch(kpm,kpm)
real(kind=8) :: dbiatx(kpm,*)
real(kind=8) :: q(nrow,kpm)
integer(kind=4) :: nrow
real(kind=8) :: b(nrow)

Calls

proc~~putit~2~~CallsGraph proc~putit~2 putit bsplvd bsplvd proc~putit~2->bsplvd difequ difequ proc~putit~2->difequ

Common Blocks

colloc (subroutine)
difequ (subroutine)
eqblok (subroutine)
putit (subroutine)
colloc (subroutine)
difequ (subroutine)
eqblok (subroutine)
"> common /other/

Type Attributes Name Initial
integer(kind=4) :: itermx
integer(kind=4) :: k
real :: rho(19)

colloc (subroutine)
difequ (subroutine)
eqblok (subroutine)
putit (subroutine)
colloc (subroutine)
difequ (subroutine)
eqblok (subroutine)
"> common /side/

Type Attributes Name Initial
integer(kind=4) :: m
integer(kind=4) :: iside
real :: xside(10)