C 00010001 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CTITLESATRIMA -- SMOOTH THE ARRAY WITH A ALPHA TRIM FILTER 00020001 CA AUTHOR S. BICKEL 00030001 CA DESIGNER B. S BOK 00040001 CA LANGUAGE FORTRAN 00050001 CA SYSTEM IBM / CRAY 00060001 CA WRITTEN AUGUST, 1990 00070001 C REVISED 12-21-91 JJC - MODIFIED TO MEET EDP STANDARDS. C 00080001 CA 00090001 CA CALL SATRIMA(NY, Y, IY, NF, S, ALPHA) 00100001 CA 00110001 CA IN/OUT Y = INPUT ARRAY TO BE SMOOTHED R4 00120001 CA INPUT NY = NUMBER OF ELEMENTS IN Y I4 00130001 CA INPUT IY = STRIDE OF THE ARRAY Y I4 CA INPUT NF = THE LENGTH OF THE FILTER I4 00140001 CA INPUT S = WORK ARRAY WITH NF ELEMENTS (NY+2*NF) R4 00180001 CA INPUT ALPHA = FILTER PARAMETER ALPHA (0 <= AL <= 0.5) R4 00150001 CA (IF AL = .0 MOVING AVERAGE FILTER 00160001 CA AL = .5 MOVING MEDIAN FILTER ) 00170001 CA 00200001 CA THIS ROUTINE IS TO SMOOTH THE ARRAY Y WITH A ALPHA TRIM FILTER 00210001 CA 00220001 C************************************************************** C * C SUBROUTINES AND FUNCTIONS CALLED FROM THIS ROUTINE * C * C SAALPHT SCOPY * C * C************************************************************** C 00110000 SUBROUTINE SATRIMA (NY, Y, IY, NF, S, ALPHA) 00100000 C IMPLICIT INTEGER (A-Z) 00160000 C REAL Y(NY*IY),S(NY+2*NF),ALPHA 00170000 INTEGER NY,IY,NF 00180000 C IF (IY .EQ. 1) THEN CALL SAALPHT ( NY, Y, NF, S, S(1 + NF), ALPHA ) ELSE CALL SCOPY ( NY, Y, IY, S, 1 ) CALL SAALPHT ( NY, S, NF, S(1 + NY), S(1 + NF + NY), ALPHA ) CALL SCOPY ( NY, S, 1, Y, IY ) ENDIF RETURN END