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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DCEL1
  5. C
  6. C        PURPOSE
  7. C           CALCULATE COMPLETE ELLIPTIC INTEGRAL OF FIRST KIND
  8. C
  9. C        USAGE
  10. C           CALL DCEL1(RES,AK,IER)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           RES   - RESULT VALUE IN DOUBLE PRECISION
  14. C           AK    - MODULUS (INPUT) IN DOUBLE PRECISION
  15. C           IER   - RESULTANT ERROR CODE WHERE
  16. C                   IER=0  NO ERROR
  17. C                   IER=1  AK NOT IN RANGE -1 TO +1
  18. C
  19. C        REMARKS
  20. C           THE RESULT IS SET TO 1.E75 IF ABS(AK) GE 1
  21. C           FOR MODULUS AK AND COMPLEMENTARY MODULUS CK,
  22. C           EQUATION AK*AK+CK*CK=1.D0 IS USED.
  23. C           AK MUST BE IN THE RANGE -1 TO +1
  24. C
  25. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  26. C           NONE
  27. C
  28. C        METHOD
  29. C           DEFINITION
  30. C           CEL1(AK)=INTEGRAL(1/SQRT((1+T*T)*(1+(CK*T)**2)), SUMMED
  31. C           OVER T FROM 0 TO INFINITY).
  32. C           EQUIVALENT ARE THE DEFINITIONS
  33. C           CEL1(AK)=INTEGRAL(1/(COS(T)SQRT(1+(CK*TAN(T))**2)),SUMMED
  34. C           OVER T FROM 0 TO PI/2),
  35. C           CEL1(AK)=INTEGRAL(1/SQRT(1-(AK*SIN(T))**2),SUMMED OVER T
  36. C           FROM 0 TO PI/2), WHERE K=SQRT(1.-CK*CK).
  37. C           EVALUATION
  38. C           LANDENS TRANSFORMATION IS USED FOR CALCULATION.
  39. C           REFERENCE
  40. C           R.BULIRSCH, 'NUMERICAL CALCULATION OF ELLIPTIC INTEGRALS
  41. C           AND ELLIPTIC FUNCTIONS', HANDBOOK SERIES SPECIAL FUNCTIONS,
  42. C           NUMERISCHE MATHEMATIK VOL. 7, 1965, PP. 78-90.
  43. C
  44. C     ..................................................................
  45. C
  46.       SUBROUTINE DCEL1(RES,AK,IER)
  47.       DOUBLE PRECISION RES,AK,GEO,ARI,AARI
  48.       IER=0
  49.       ARI=2.D0
  50.       GEO=(0.5D0-AK)+0.5D0
  51.       GEO=GEO+GEO*AK
  52.       RES=0.5D0
  53.       IF(GEO)1,2,4
  54.     1 IER=1
  55.     2 RES=1.D75
  56.       RETURN
  57.     3 GEO=GEO*AARI
  58.     4 GEO=DSQRT(GEO)
  59.       GEO=GEO+GEO
  60.       AARI=ARI
  61.       ARI=ARI+GEO
  62.       RES=RES+RES
  63.       IF(GEO/AARI-0.999999995D0)3,5,5
  64.     5 RES=RES/ARI*6.2831853071795865D0
  65.       RETURN
  66.       END
  67.