C #SMUTHA V1B 16-MAY-73. C LAST UPDATE: C SUBROUTINE SMUTHA( Y, N) DIMENSION Y(N) C C *PURPOSE. C TO SMOOTH A REAL ARRAY OF DATA Y(I) BY A SIMPLE C THREE POINT RULE. C C *PARAMETERS: C C Y - THE REAL ARRAY OF DIMENSION "N" OR MORE CONTAINING THE C DATA TO BE SMOOTHED. THE SMOOTHED DATA IS RETURNED IN C THIS ARRAY AND THE ORIGINAL DATA LOST. C N - THE LOGICAL LENGHT OF THE VECTOR OF DATA TO BE SMOOTHED. C C INPUT PARAMETERS: C Y, N C OUTPUT PARAMETERS: C Y C C *METHOD. C A SIMPLE " 1 - 2 - 1 " FILTER IS APPLIED TO SMOOTH THE DATA C AT ALL POINTS. AT THE ENDPOINTS A SLIGHT ADJUSTMENT IS MADE TO C THIS RULE TO ENSURE THAT THE SUM OF THE SMOOTHED DATA IS THE SAME C AS THE SUM OF THE ORIGINAL DATA. THE ROUTINE CAN BE CALLED C REPEATEDLY TO PRODUCE HIGHER ORDER SMOOTHINGS WITH FILTERS C OF BINOMIAL COEFFICIENTS. FOR EXAMPLE TWO APPLICATIONS C GIVES THE 5-POINT " 1 - 4 - 6 - 4 - 1 " RULE AND THREE GIVE C THE 7-POINT RULE " 1 - 6 - 15 - 20 - 15 - 6 - 1 ". C C *ACCURACY. C C *RESTRICTIONS. C C *ERROR CONDITIONS. C C *NON STANDARD ROUTINES CALLED. C C *TYPICAL TIMES. C C *ORIGIN. M.R.MANNING. C C *COMMENTS. C C #END. C C #START. NM1= N - 1 YM1= Y(1) Y0= Y(1) DO 100 I= 1, NM1 YP1= Y(I+1) T= (YM1 + Y0 + Y0 + YP1)/4. YM1= Y(I) Y0= YP1 100 Y(I)= T Y(N)= (YM1 + Y0 + Y0 + Y0)/4. RETURN END