code 34193;
comment MCA 2423;
procedure COMSCL(A, N, N1, N2, IM); value N, N1, N2;
integer N, N1, N2; array A, IM;
begin integer I, J, K;
real S, U, V, W;
for J:= N1 step 1 until N2 do
begin S:= 0; if IM[J] ^= 0 then
begin for I:= 1 step 1 until N do
begin U:= A[I,J] ** 2 + A[I,J + 1] ** 2;
if U > S then begin S:= U; K:= I end
end;
if S ^= 0 then
begin V:= A[K,J] / S; W:= - A[K,J + 1] / S;
for I:= 1 step 1 until N do
begin U:= A[I,J]; S:= A[I,J + 1];
A[I,J]:= U * V - S * W;
A[I,J + 1]:= U * W + S * V
end
end;
J:= J + 1
end
else
begin for I:= 1 step 1 until N do
if ABS(A[I,J]) > ABS(S) then S:= A[I,J];
if S ^= 0 then
for I:= 1 step 1 until N do A[I,J]:= A[I,J] / S
end
end
end COMSCL;
eop