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