home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / sequence / dteul.for < prev    next >
Encoding:
Text File  |  1985-11-29  |  3.1 KB  |  103 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DTEUL
  5. C
  6. C        PURPOSE
  7. C           COMPUTE THE SUM OF FCT(K) FOR K FROM ONE UP TO INFINITY.
  8. C
  9. C        USAGE
  10. C           CALL DTEUL(FCT,SUM,MAX,EPS,IER)
  11. C           PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT.
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           FCT    - NAME OF AN EXTERNAL DOUBLE PRECISION FUNCTION
  15. C                    SUBPROGRAM USED. IT COMPUTES THE K-TH TERM OF THE
  16. C                    SERIES TO ANY GIVEN INDEX K.
  17. C           SUM    - RESULTANT VALUE IN DOUBLE PRECISION CONTAINING ON
  18. C                    RETURN THE SUM OF THE GIVEN SERIES.
  19. C           MAX    - INPUT VALUE, WHICH SPECIFIES THE MAXIMAL NUMBER
  20. C                    OF TERMS OF THE SERIES THAT ARE RESPECTED.
  21. C           EPS    - SINGLE PRECISION INPUT VALUE, WHICH SPECIFIES THE
  22. C                    UPPER BOUND OF THE RELATIVE ERROR.
  23. C                    SUMMATION IS STOPPED AS SOON AS FIVE TIMES IN
  24. C                    SUCCESSION THE ABSOLUTE VALUE OF THE TERMS OF THE
  25. C                    TRANSFORMED SERIES ARE FOUND TO BE LESS THAN
  26. C                    EPS*(ABSOLUTE VALUE OF CURRENT SUM).
  27. C           IER    - RESULTANT ERROR PARAMETER CODED IN THE FOLLOWING
  28. C                    FORM
  29. C                     IER=0  - NO ERROR
  30. C                     IER=1  - REQUIRED ACCURACY NOT REACHED WITH
  31. C                              MAXIMAL NUMBER OF TERMS
  32. C                     IER=-1 - THE INTEGER MAX IS LESS THAN ONE.
  33. C
  34. C        REMARKS
  35. C           NO ACTION BESIDES ERROR MESSAGE IN CASE MAX LESS THAN ONE.
  36. C
  37. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  38. C           THE EXTERNAL FUNCTION SUBPROGRAM FCT(K) MUST BE FURNISHED
  39. C           BY THE USER.
  40. C
  41. C        METHOD
  42. C           EVALUATION IS DONE BY MEANS OF A SUITABLY REFINED EULER
  43. C           TRANSFORMATION. FOR REFERENCE, SEE
  44. C           F.B.HILDEBRAND, INTRODUCTION TO NUMERICAL ANALYSIS,
  45. C           MCGRAW/HILL, NEW YORK/TORONTO/LONDON, 1956, PP.155-160, AND
  46. C           P. NAUR, REPORT ON THE ALGORITHMIC LANGUAGE ALGOL 60,
  47. C           CACM, VOL.3, ISS.5 (1960), PP.311.
  48. C
  49. C     ..................................................................
  50. C
  51.       SUBROUTINE DTEUL (FCT,SUM,MAX,EPS,IER)
  52. C
  53.       DIMENSION Y(15)
  54.       DOUBLE PRECISION FCT,SUM,Y,AMN,AMP
  55. C
  56. C        TEST ON WRONG INPUT PARAMETER MAX
  57. C
  58.       IF(MAX)1,1,2
  59.     1 IER=-1
  60.       GOTO 12
  61. C
  62. C        INITIALIZE EULER TRANSFORMATION
  63. C
  64.     2 IER=1
  65.       I=1
  66.       M=1
  67.       N=1
  68.       Y(1)=FCT(N)
  69.       SUM=Y(1)*.5D0
  70. C
  71. C        START EULER-LOOP
  72. C
  73.     3 J=0
  74.     4 I=I+1
  75.       IF(I-MAX)5,5,12
  76.     5 N=I
  77.       AMN=FCT(N)
  78.       DO 6 K=1,M
  79.       AMP=(AMN+Y(K))*.5D0
  80.       Y(K)=AMN
  81.     6 AMN=AMP
  82. C
  83. C        CHECK EULER TRANSFORMATION
  84. C
  85.       IF(DABS(AMN)-DABS(Y(M)))7,9,9
  86.     7 IF(M-15)8,9,9
  87.     8 M=M+1
  88.       Y(M)=AMN
  89.       AMN=.5D0*AMN
  90. C
  91. C        UPDATE SUM
  92. C
  93.     9 SUM=SUM+AMN
  94.       IF(ABS(SNGL(AMN))-EPS*ABS(SNGL(SUM)))10,10,3
  95. C
  96. C        TEST END OF PROCEDURE
  97. C
  98.    10 J=J+1
  99.       IF(J-5)4,11,11
  100.    11 IER=0
  101.    12 RETURN
  102.       END
  103.