CTITLEARMEAN -- SLIDING MEAN 00010001 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR STU NELAN 00020000 CA DESIGNER STU NELAN 00030000 CA LANGUAGE FORTRAN 00040001 CA SYSTEM IBM AND CRAY 00050001 CA WRITTEN 00060000 C REVISED 07-11-86 ESN. FOR USE ON THE IBM. 00070001 CA 00080000 CA 00090000 CA CALL ARMEAN (A, B, N, WL) 00100000 CA INPUT A = REAL ARRAY R4 00110000 CA OUTPUT B = REAL ARRAY R4 00120000 CA INPUT N = NUMBER OF ELEMENTS IN A I4 00130000 CA INPUT WL = WINDOW LENGTH IN POINTS I4 00140000 CA 00150000 CA 00160000 CA ARMEAN SLIDES A WINDOW OF 'WL' POINTS ALONG THE INPUT ARRAY A 00170000 CA AND WRITES IN ARRAY B THE SUM OF VALUES DIVIDED BY 00180000 CA THE NUMBER OF VALUES IN THE WINDOW. THE OUTPUT LENGTH OF B 00190000 CA WILL BE EQUAL TO N - WL + 1 00200000 CAEND 00210000 SUBROUTINE ARMEAN (A, B, N, WL) 00220000 C 00230000 REAL A (1) 00240000 REAL B (1) 00250000 C 00260000 DOUBLE PRECISION SUM 00270000 C 00280000 INTEGER WL 00290000 C 00300000 NSAMPS = N - WL + 1 00310000 SUM = 0.0 00320000 C 00330000 C COMPUTE THE INITIAL AVERAGE 00340000 C 00350000 DO 10 I = 1, WL 00360000 SUM = SUM + A(I) 00370000 10 CONTINUE 00380000 C 00390000 B(1) = SUM / WL 00400000 IS = 1 00410000 IE = WL + 1 00420000 C 00430000 C COMPUTE THE RUNNING SUMS AND AVERAGES 00440000 C 00450000 DO 20 I = 2, NSAMPS 00460000 SUM = SUM - A(IS) + A(IE) 00470000 IS = IS + 1 00480000 IE = IE + 1 00490000 B(I) = SUM / WL 00500000 20 CONTINUE 00510000 C 00520000 RETURN 00530000 C 00540000 END 00550000