PROCEDURE confine(VAR x_in,x_out : real_array; n, std_devs : INTEGER ); VAR average, diffrnce, max : REAL; datum : INTEGER; BEGIN x_out[1] := x_in[1]; FOR datum := 2 TO (n - 1) DO BEGIN average := (x_in[datum - 1] + x_in[datum + 1])/2.0; diffrnce := x_in[datum] - average; max := std_devs * SQR(x_in[datum]); IF ABS(diffrnce) < ABS(max) THEN x_out[datum] := x_in[datum] ELSE BEGIN IF diffrnce > 0 THEN x_out[datum] := x_in[datum] - max ELSE x_out[datum] := x_in[datum] + max; END; { of : IF ABS(... THEN.. ELSE } END; { of : FOR loop } x_out[n] := x_in[datum]; END; { of : PROCEDURE confine } .