home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE DSE15
- C
- C PURPOSE
- C TO COMPUTE A VECTOR OF SMOOTHED FUNCTION VALUES GIVEN A
- C VECTOR OF FUNCTION VALUES WHOSE ENTRIES CORRESPOND TO
- C EQUIDISTANTLY SPACED ARGUMENT VALUES.
- C
- C USAGE
- C CALL DSE15(Y,Z,NDIM,IER)
- C
- C DESCRIPTION OF PARAMETERS
- C Y - GIVEN VECTOR OF DOUBLE PRECISION FUNCTION VALUES
- C (DIMENSION NDIM)
- C Z - RESULTING VECTOR OF DOUBLE PRECISION SMOOTHED
- C FUNCTION VALUES (DIMENSION NDIM)
- C NDIM - DIMENSION OF VECTORS Y AND Z
- C IER - RESULTING ERROR PARAMETER
- C IER = -1 - NDIM IS LESS THAN 5
- C IER = 0 - NO ERROR
- C
- C REMARKS
- C (1) IF IER=-1 THERE HAS BEEN NO COMPUTATION.
- C (2) Z CAN HAVE THE SAME STORAGE ALLOCATION AS Y. IF Y IS
- C DISTINCT FROM Z, THEN IT IS NOT DESTROYED.
- C
- C SUBROUTINE AND FUNCTION SUBPROGRAMS REQUIRED
- C NONE
- C
- C METHOD
- C IF X IS THE (SUPPRESSED) VECTOR OF ARGUMENT VALUES, THEN
- C EXCEPT AT THE POINTS X(1),X(2),X(NDIM-1) AND X(NDIM), EACH
- C SMOOTHED VALUE Z(I) IS OBTAINED BY EVALUATING AT X(I) THE
- C LEAST-SQUARES POLYNOMIAL OF DEGREE 1 RELEVANT TO THE 5
- C SUCCESSIVE POINTS (X(I+K),Y(I+K)) K = -2,-1,...,2. (SEE
- C HILDEBRAND, F.B., INTRODUCTION TO NUMERICAL ANALYSIS,
- C MC GRAW-HILL, NEW YORK/TORONTO/LONDON, 1956, PP. 295-302.)
- C
- C ..................................................................
- C
- SUBROUTINE DSE15(Y,Z,NDIM,IER)
- C
- C
- DIMENSION Y(1),Z(1)
- DOUBLE PRECISION Y,Z,A,B,C
- C
- C TEST OF DIMENSION
- IF(NDIM-5)3,1,1
- C
- C PREPARE LOOP
- 1 A=Y(1)+Y(1)
- C=Y(2)+Y(2)
- B=.2D0*(A+Y(1)+C+Y(3)-Y(5))
- C=.1D0*(A+A+C+Y(2)+Y(3)+Y(3)+Y(4))
- C
- C START LOOP
- DO 2 I=5,NDIM
- A=B
- B=C
- C=.2D0*(Y(I-4)+Y(I-3)+Y(I-2)+Y(I-1)+Y(I))
- 2 Z(I-4)=A
- C END OF LOOP
- C
- C UPDATE LAST FOUR COMPONENTS
- A=Y(NDIM)+Y(NDIM)
- 0A=.1D0*(A+A+Y(NDIM-1)+Y(NDIM-1)+Y(NDIM-1)+Y(NDIM-2)+Y(NDIM-2)
- 1 +Y(NDIM-3))
- Z(NDIM-3)=B
- Z(NDIM-2)=C
- Z(NDIM-1)=A
- Z(NDIM)=A+A-C
- IER=0
- RETURN
- C
- C ERROR EXIT IN CASE NDIM IS LESS THAN 5
- 3 IER=-1
- RETURN
- END