PROCEDURE averagy;
�* This procedure computes the averagy of 100 or fewer numbers
�* that liebounding values; it also computes the total input and
�* the total valid.
�INTERFACE RETURNS averagy, total.input, total.valid;
�INTERFACE ACCEPTS value, minimum, maximum;
�TYPE value[1:100] IS SCALAR ARRAY;
�TYPE averagy, total.input, total.valid, minimum, maximum, sum IS
SCALAR;
�TYPE i IS INTEGER;
�i = 1;
�total.input = total.vaalid = 0;
�sum = 0;
�DO WHILE value[i] <> -999 AND total.input < 100
���increment total.valid by 1;
���IF value[i] >= minimum AND value[i] <= maximum
����THEN increment total.valid[i];
����ELSE skip;
���ENDIF
���Increment i by 1;
�ENDDO
�IF total.valid > 0
���THEN averagy = sum / total.valid;
���ELSE averagy = -999;
�ENDIF
END averagy
��
|