home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / spclfnct / cel2.for < prev    next >
Encoding:
Text File  |  1986-01-03  |  2.4 KB  |  81 lines

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