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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DCEL2
  5. C
  6. C        PURPOSE
  7. C           COMPUTES THE GENERALIZED COMPLETE ELLIPTIC INTEGRAL OF
  8. C           SECOND KIND.
  9. C
  10. C        USAGE
  11. C           CALL DCEL2(RES,AK,A,B,IER)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           RES   - RESULT VALUE IN DOUBLE PRECISION
  15. C           AK    - MODULUS (INPUT) IN DOUBLE PRECISION
  16. C           A     - DOUBLE PRECISION CONSTANT TERM IN NUMERATOR
  17. C           B     - DOUBLE PRECISION FACTOR OF QUADRATIC TERM
  18. C                   IN NUMERATOR
  19. C           IER   - RESULTANT ERROR CODE WHERE
  20. C                   IER=0  NO ERROR
  21. C                   IER=1  AK NOT IN RANGE -1 TO +1
  22. C
  23. C        REMARKS
  24. C           FOR ABS(AK) GE 1 THE RESULT IS SET TO 1.E75 IF B IS
  25. C           POSITIVE, TO -1.D75 IF B IS NEGATIVE.
  26. C           SPECIAL CASES ARE
  27. C           K(K) OBTAINED WITH A = 1, B = 1
  28. C           E(K) OBTAINED WITH A = 1, B = CK*CK WHERE CK IS
  29. C           COMPLEMENTARY MODULUS.
  30. C           B(K) OBTAINED WITH A = 1, B = 0
  31. C           D(K) OBTAINED WITH A = 0, B = 1
  32. C           WHERE K, E, B, D DEFINE SPECIAL CASES OF THE GENERALIZED
  33. C           COMPLETE ELLIPTIC INTEGRAL OF SECOND KIND IN THE USUAL
  34. C           NOTATION, AND THE ARGUMENT K OF THESE FUNCTIONS MEANS
  35. C           THE MODULUS.
  36. C
  37. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  38. C           NONE
  39. C
  40. C        METHOD
  41. C           DEFINITION
  42. C           RES=INTEGRAL((A+B*T*T)/(SQRT((1+T*T)*(1+(CK*T)**2))*(1+T*T))
  43. C           SUMMED OVER T FROM 0 TO INFINITY).
  44. C           EVALUATION
  45. C           LANDENS TRANSFORMATION IS USED FOR CALCULATION.
  46. C           REFERENCE
  47. C           R.BULIRSCH, 'NUMERICAL CALCULATION OF ELLIPTIC INTEGRALS
  48. C           AND ELLIPTIC FUNCTIONS', HANDBOOK SERIES SPECIAL FUNCTIONS,
  49. C           NUMERISCHE MATHEMATIK VOL. 7, 1965, PP. 78-90.
  50. C
  51. C     ..................................................................
  52. C
  53.       SUBROUTINE DCEL2(RES,AK,A,B,IER)
  54.       DOUBLE PRECISION RES,AK,A,B,GEO,ARI,AARI,B0,A1
  55.       IER=0
  56.       ARI=2.D0
  57.       GEO=(0.5D0-AK)+0.5D0
  58.       GEO=GEO+GEO*AK
  59.       RES=A
  60.       A1=A+B
  61.       B0=B+B
  62.       IF(GEO)1,2,6
  63.     1 IER=1
  64.     2 IF(B)3,8,4
  65.     3 RES=-1.D75
  66.       RETURN
  67.     4 RES=1.D75
  68.       RETURN
  69.     5 GEO=GEO*AARI
  70.     6 GEO=DSQRT(GEO)
  71.       GEO=GEO+GEO
  72.       AARI=ARI
  73.       ARI=ARI+GEO
  74.       B0=B0+RES*GEO
  75.       RES=A1
  76.       B0=B0+B0
  77.       A1=B0/ARI+A1
  78.       IF(GEO/AARI-0.999999995D0)5,7,7
  79.     7 RES=A1/ARI
  80.       RES=RES+0.57079632679489662D0*RES
  81.     8 RETURN
  82.       END
  83.