C C .................................................................. C C SAMPLE MAIN PROGRAM FOR TRIPLE EXPONENTIAL SMOOTHING - EXPON C C PURPOSE C (1) READ THE PROBLEM PARAMETER CARD AND A TIME SERIES, C (2) CALL THE SUBROUTINE EXSMO TO SMOOTH THE TIME SERIES, C AND (3) PRINT THE RESULT. C C REMARKS C A SMOOTHING CONSTANT SPECIFIED IN THE PROBLEM PARAMETER C CARD MUST BE GREATER THAN ZERO BUT LESS THAN ONE IN ORDER C TO OBTAIN REASONABLE RESULTS. C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C EXSMO C C METHOD C REFER TO R. G. BROWN, 'SMOOTHING, FORECASTING AND PREDICTION C OF DISCRETE TIME SERIES', PRENTICE-HALL, N.J., 1963, C PP. 140 TO 144. C C .................................................................. C C THE FOLLOWING DIMENSION MUST BE GREATER THAN OR EQUAL TO THE C NUMBER OF DATA POINTS IN A GIVEN TIME SERIES.. C DIMENSION X(1000),S(1000) C C .................................................................. C 1 FORMAT(A4,A2,I4,F5.0,3F10.0) 2 FORMAT(12F6.0) 3 FORMAT(34H1TRIPLE EXPONENTIAL SMOOTHING.....,A4,A2//22H NUMBER OF 1DATA POINTS,I6/19H SMOOTHING CONSTANT,F9.3/) 4 FORMAT(13H0COEFFICIENTS,9X,1HA,14X,1HB,14X,1HC) 5 FORMAT(9H0ORIGINAL,F19.5,2F15.5) 6 FORMAT(8H0UPDATED,F20.5,2F15.5/) 7 FORMAT(1H0,27X,13HSMOOTHED DATA/7X,10HINPUT DATA,12X,10H(FORECAST) 1) 8 FORMAT(F17.5,8X,F15.5) C OPEN (UNIT=5, DEVICE='CDR', ACCESS='SEQIN') C OPEN (UNIT=6, DEVICE='LPT', ACCESS='SEQOUT') C C .................................................................. C C READ PROBLEM PARAMETER CARD C LOGICAL EOF CALL CHKEOF (EOF) 100 READ (5,1) PR,PR1,NX,AL,A,B,C IF (EOF) GOTO 999 C PR......PROBLEM NUMBER (MAY BE ALPHAMERIC) C PR1.....PROBLEM NUMBER (CONTINUED) C NX......NUMBER OF DATA POINTS IN TIME SERIES C AL......SMOOTHING CONSTANT C A,B,C...COEFFICIENTS OF THE PREDICTION EQUATION C WRITE (6,3) PR,PR1,NX,AL C C PRINT ORIGINAL COEFFICIENTS C WRITE (6,4) WRITE (6,5) A,B,C C C READ TIME SERIES DATA C READ (5,2) (X(I),I=1,NX) C CALL EXSMO (X,NX,AL,A,B,C,S) C C PRINT UPDATED COEFFICIENTS C WRITE (6,6) A,B,C C C PRINT INPUT AND SMOOTHED DATA C WRITE (6,7) DO 200 I=1,NX 200 WRITE (6,8) X(I),S(I) GO TO 100 999 STOP END