code 34427; procedure SOLTRIPIV(SUB, DIAG, SUPER, N, AID, PIV, B); value N; integer N; array SUB, DIAG, SUPER, AID, B; boolean array PIV; begin integer I, N1; real BI, BI1, R, S, T; N1:= N - 1; for I:= 1 step 1 until N1 do begin if PIV[I] then begin BI:= B[I+1]; BI1:= B[I] end else begin BI:= B[I]; BI1:= B[I+1] end; R:= B[I]:= BI / DIAG[I]; B[I+1]:= BI1 - SUB[I] * R end; R:= B[N]:= B[N] / DIAG[N]; T:= B[N1]:= B[N1] - SUPER[N1] * R; for I:= N - 2 step -1 until 1 do begin S:= R; R:= T; T:= B[I]:= B[I] - SUPER[I] * R - (if PIV[I] then AID[I] * S else 0) end end SOLTRIPIV eop