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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE DJELF
  5. C
  6. C        PURPOSE
  7. C           COMPUTES THE THREE JACOBIAN ELLIPTIC FUNCTIONS SN, CN, DN.
  8. C
  9. C        USAGE
  10. C           CALL DJELF(SN,CN,DN,X,SCK)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           SN    - RESULT VALUE SN(X) IN DOUBLE PRECISION
  14. C           CN    - RESULT VALUE CN(X) IN DOUBLE PRECISION
  15. C           DN    - RESULT VALUE DN(X) IN DOUBLE PRECISION
  16. C           X     - DOUBLE PRECISION ARGUMENT OF JACOBIAN ELLIPTIC
  17. C                   FUNCTIONS
  18. C           SCK   - SQUARE OF COMPLEMENTARY MODULUS IN DOUBLE PRECISION
  19. C
  20. C        REMARKS
  21. C           NONE
  22. C
  23. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  24. C           NONE
  25. C
  26. C        METHOD
  27. C           DEFINITION
  28. C           X=INTEGRAL(1/SQRT((1-T*T)*(1-(K*T)**2)), SUMMED OVER
  29. C           T FROM 0 TO SN), WHERE K=SQRT(1-SCK).
  30. C           SN*SN + CN*CN = 1
  31. C           (K*SN)**2 + DN**2 = 1.
  32. C           EVALUATION
  33. C           CALCULATION IS DONE USING THE PROCESS OF THE ARITHMETIC
  34. C           GEOMETRIC MEAN TOGETHER WITH GAUSS DESCENDING TRANSFORMATION
  35. C           BEFORE INVERSION OF THE INTEGRAL TAKES PLACE.
  36. C           REFERENCE
  37. C           R. BULIRSCH, NUMERICAL CALCULATION OF ELLIPTIC INTEGRALS AND
  38. C                  ELLIPTIC FUNCTIOMS.
  39. C                  HANDBOOK SERIES OF SPECIAL FUNCTIONS
  40. C                  NUMERISCHE MATHEMATIK VOL. 7, 1965, PP. 78-90.
  41. C
  42. C     ..................................................................
  43. C
  44.       SUBROUTINE DJELF(SN,CN,DN,X,SCK)
  45. C
  46.       DIMENSION ARI(12),GEO(12)
  47.       DOUBLE PRECISION SN,CN,DN,X,SCK,ARI,GEO,CM,Y,A,B,C,D
  48. C
  49. C        TEST MODULUS
  50. C
  51.       CM=SCK
  52.       Y=X
  53.       IF(SCK)3,1,4
  54.     1 D=DEXP(X)
  55.       A=1.D0/D
  56.       B=A+D
  57.       CN=2.D0/B
  58.       DN=CN
  59.       A=(D-A)/2.D0
  60.       SN=A*CN
  61. C        DEGENERATE CASE SCK=0 GIVES RESULTS
  62. C           CN X = DN X = 1/COSH X
  63. C           SN X = TANH X
  64.     2 RETURN
  65. C
  66. C        JACOBIS MODULUS TRANSFORMATION
  67. C
  68.     3 D=1.D0-SCK
  69.       CM=-SCK/D
  70.       D=DSQRT(D)
  71.       Y=D*X
  72.     4 A=1.D0
  73.       DN=1.D0
  74.       DO 6 I=1,12
  75.       L=I
  76.       ARI(I)=A
  77.       CM=DSQRT(CM)
  78.       GEO(I)=CM
  79.       C=(A+CM)*.5D0
  80.       IF(DABS(A-CM)-1.D-9*A)7,7,5
  81.     5 CM=A*CM
  82.     6 A=C
  83. C
  84. C        START BACKWARD RECURSION
  85. C
  86.     7 Y=C*Y
  87.       SN=DSIN(Y)
  88.       CN=DCOS(Y)
  89.       IF(SN)8,13,8
  90.     8 A=CN/SN
  91.       C=A*C
  92.       DO 9 I=1,L
  93.       K=L-I+1
  94.       B=ARI(K)
  95.       A=C*A
  96.       C=DN*C
  97.       DN=(GEO(K)+A)/(B+A)
  98.     9 A=C/B
  99.       A=1.D0/DSQRT(C*C+1.D0)
  100.       IF(SN)10,11,11
  101.    10 SN=-A
  102.       GOTO 12
  103.    11 SN=A
  104.    12 CN=C*SN
  105.    13 IF(SCK)14,2,2
  106.    14 A=DN
  107.       DN=CN
  108.       CN=A
  109.       SN=SN/D
  110.       RETURN
  111.       END
  112.