code 34332;
procedure CHLSOLBND(A, N, W, B); value N, W; integer N, W;
array A, B;
begin integer I, K, IMAX, KK, W1;
KK:= - W; W1:= W + 1;
for K:= 1 step 1 until N do
begin KK:= KK + W1;
B[K]:= (B[K] - VECVEC(if K <= W1 then 1 else K - W,
K - 1, KK - K, B, A)) / A[KK]
end;
IMAX:= - 1;
for K:= N step - 1 until 1 do
begin if IMAX < W then IMAX:= IMAX + 1;
B[K]:= (B[K] - SCAPRD1(KK + W, W, K + 1, 1, IMAX, A, B)) /
A[KK]; KK:= KK - W1
end
end CHLSOLBND;
eop