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

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