File JELF.FT (FORTRAN source file)

Directory of image this file is from
This file as a plain text file

C
C     ..................................................................
C
C        SUBROUTINE JELF
C
C        PURPOSE
C           COMPUTES THE THREE JACOBIAN ELLIPTIC FUNCTIONS SN, CN, DN.
C
C        USAGE
C           CALL JELF(SN,CN,DN,X,SCK)
C
C        DESCRIPTION OF PARAMETERS
C           SN    - RESULT VALUE SN(X)
C           CN    - RESULT VALUE CN(X)
C           DN    - RESULT VALUE DN(X)
C           X     - ARGUMENT OF JACOBIAN ELLIPTIC FUNCTIONS
C           SCK   - SQUARE OF COMPLEMENTARY MODULUS
C
C        REMARKS
C           NONE
C
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
C           NONE
C
C        METHOD
C           DEFINITION
C           X=INTEGRAL(1/SQRT((1-T*T)*(1-(K*T)**2)), SUMMED OVER
C           T FROM 0 TO SN), WHERE K=SQRT(1-SCK).
C           SN*SN + CN*CN = 1
C           (K*SN)**2 + DN**2 = 1.
C           EVALUATION
C           CALCULATION IS DONE USING THE PROCESS OF THE ARITHMETIC
C           GEOMETRIC MEAN TOGETHER WITH GAUSS DESCENDING TRANSFORMATION
C           BEFORE INVERSION OF THE INTEGRAL TAKES PLACE.
C           REFERENCE
C           R. BULIRSCH, NUMERICAL CALCULATION OF ELLIPTIC INTEGRALS AND
C                  ELLIPTIC FUNCTIOMS.
C                  HANDBOOK SERIES OF SPECIAL FUNCTIONS
C                  NUMERISCHE MATHEMATIK VOL. 7, 1965, PP. 78-90.
C
C     ..................................................................
C
      SUBROUTINE JELF(SN,CN,DN,X,SCK)
C
C
      DIMENSION ARI(12),GEO(12)
C     TEST MODULUS
      CM=SCK
      Y=X
      IF(SCK)3,1,4
    1 D=EXP(X)
      A=1./D
      B=A+D
      CN=2./B
      DN=CN
      SN=TANH(X)
C        DEGENERATE CASE SCK=0 GIVES RESULTS
C           CN X = DN X = 1/COSH X
C           SN X = TANH X
    2 RETURN
C        JACOBIS MODULUS TRANSFORMATION
    3 D=1.-SCK
      CM=-SCK/D
      D=SQRT(D)
      Y=D*X
    4 A=1.
      DN=1.
      DO 6 I=1,12
      L=I
      ARI(I)=A
      CM=SQRT(CM)
      GEO(I)=CM
      C=(A+CM)*.5
      IF(ABS(A-CM)-1.E-4*A)7,7,5
    5 CM=A*CM
    6 A=C
C
C     START BACKWARD RECURSION
    7 Y=C*Y
      SN=SIN(Y)
      CN=COS(Y)
      IF(SN)8,13,8
    8 A=CN/SN
      C=A*C
      DO 9 I=1,L
      K=L-I+1
      B=ARI(K)
      A=C*A
      C=DN*C
      DN=(GEO(K)+A)/(B+A)
    9 A=C/B
      A=1./SQRT(C*C+1.)
      IF(SN)10,11,11
   10 SN=-A
      GOTO 12
   11 SN=A
   12 CN=C*SN
   13 IF(SCK)14,2,2
   14 A=DN
      DN=CN
      CN=A
      SN=SN/D
      RETURN
      END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search