home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE TEUL
- C
- C PURPOSE
- C COMPUTE THE SUM OF FCT(K) FOR K FROM ONE UP TO INFINITY.
- C
- C USAGE
- C CALL TEUL(FCT,SUM,MAX,EPS,IER)
- C PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT.
- C
- C DESCRIPTION OF PARAMETERS
- C FCT - NAME OF AN EXTERNAL FUNCTION SUBPROGRAM USED.
- C IT COMPUTES THE K-TH TERM OF THE SERIES TO ANY
- C GIVEN INDEX K.
- C SUM - RESULTANT VALUE CONTAINING ON RETURN THE SUM OF
- C THE GIVEN SERIES.
- C MAX - INPUT VALUE, WHICH SPECIFIES THE MAXIMAL NUMBER
- C OF TERMS OF THE SERIES THAT ARE RESPECTED.
- C EPS - INPUT VALUE, WHICH SPECIFIES THE UPPER BOUND OF
- C THE RELATIVE ERROR.
- C SUMMATION IS STOPPED AS SOON AS FIVE TIMES IN
- C SUCCESSION THE ABSOLUTE VALUE OF THE TERMS OF THE
- C TRANSFORMED SERIES ARE FOUND TO BE LESS THAN
- C EPS*(ABSOLUTE VALUE OF CURRENT SUM).
- C IER - RESULTANT ERROR PARAMETER CODED IN THE FOLLOWING
- C FORM
- C IER=0 - NO ERROR
- C IER=1 - REQUIRED ACCURACY NOT REACHED WITH
- C MAXIMAL NUMBER OF TERMS
- C IER=-1 - THE INTEGER MAX IS LESS THAN ONE.
- C
- C REMARKS
- C NO ACTION BESIDES ERROR MESSAGE IN CASE MAX LESS THAN ONE.
- C
- C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
- C THE EXTERNAL FUNCTION SUBPROGRAM FCT(K) MUST BE FURNISHED
- C BY THE USER.
- C
- C METHOD
- C EVALUATION IS DONE BY MEANS OF A SUITABLY REFINED EULER
- C TRANSFORMATION. FOR REFERENCE, SEE
- C F.B.HILDEBRAND, INTRODUCTION TO NUMERICAL ANALYSIS,
- C MCGRAW/HILL, NEW YORK/TORONTO/LONDON, 1956, PP.155-160, AND
- C P. NAUR, REPORT ON THE ALGORITHMIC LANGUAGE ALGOL 60,
- C CACM, VOL.3, ISS.5 (1960), PP.311.
- C
- C ..................................................................
- C
- SUBROUTINE TEUL (FCT,SUM,MAX,EPS,IER)
- C
- DIMENSION Y(15)
- C
- C TEST ON WRONG INPUT PARAMETER MAX
- C
- IF(MAX)1,1,2
- 1 IER=-1
- GOTO 12
- C
- C INITIALIZE EULER TRANSFORMATION
- C
- 2 IER=1
- I=1
- M=1
- N=1
- Y(1)=FCT(N)
- SUM=Y(1)*.5
- C
- C START EULER-LOOP
- C
- 3 J=0
- 4 I=I+1
- IF(I-MAX)5,5,12
- 5 N=I
- AMN=FCT(N)
- DO 6 K=1,M
- AMP=(AMN+Y(K))*.5
- Y(K)=AMN
- 6 AMN=AMP
- C
- C CHECK EULER TRANSFORMATION
- C
- IF(ABS(AMN)-ABS(Y(M)))7,9,9
- 7 IF(M-15)8,9,9
- 8 M=M+1
- Y(M)=AMN
- AMN=.5*AMN
- C
- C UPDATE SUM
- C
- 9 SUM=SUM+AMN
- IF(ABS(AMN)-EPS*ABS(SUM))10,10,3
- C
- C TEST END OF PROCEDURE
- C
- 10 J=J+1
- IF(J-5)4,11,11
- 11 IER=0
- 12 RETURN
- END