Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:16:23

0001 C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0002 C++ Copyright S. Zhang and J. M. Jing                               ++
0003 C++ Computation of Special Functions, John Wiley & Sons, New York,  ++
0004 C++ 1996 and http://jin.ece.illinois.edu .                          ++
0005 C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
0006 C
0007         SUBROUTINE EIX(X,EI)
0008 C
0009 C       ============================================
0010 C       Purpose: Compute exponential integral Ei(x)
0011 C       Input :  x  --- Argument of Ei(x)
0012 C       Output:  EI --- Ei(x) ( x > 0 )
0013 C       ============================================
0014 C
0015         IMPLICIT DOUBLE PRECISION (A-H,O-Z)
0016         IF (X.EQ.0.0) THEN
0017            EI=-1.0D+300
0018         ELSE IF (X.LE.40.0) THEN
0019            EI=1.0D0
0020            R=1.0D0
0021            DO 15 K=1,100
0022               R=R*K*X/(K+1.0D0)**2
0023               EI=EI+R
0024               IF (DABS(R/EI).LE.1.0D-15) GO TO 20
0025 15         CONTINUE
0026 20         GA=0.5772156649015328D0
0027            EI=GA+DLOG(X)+X*EI
0028         ELSE
0029            EI=1.0D0
0030            R=1.0D0
0031            DO 25 K=1,20
0032               R=R*K/X
0033 25            EI=EI+R
0034            EI=DEXP(X)/X*EI
0035         ENDIF
0036         RETURN
0037         END