31 lines
935 B
Fortran
31 lines
935 B
Fortran
FUNCTION EXPINT(X)
|
|
C ==================
|
|
C
|
|
C First exponential integral function E1(X)
|
|
C
|
|
INCLUDE 'IMPLIC.FOR'
|
|
PARAMETER (A1 = -0.57721566,
|
|
* A2 = 0.99999193,
|
|
* A3 = -0.24991055,
|
|
* A4 = 0.05519968,
|
|
* A5 = -0.00976004,
|
|
* A6 = 0.00107857,
|
|
* B1 = 0.2677734343,
|
|
* B2 = 8.6347608925,
|
|
* B3 = 18.059016973,
|
|
* B4 = 8.5733287401,
|
|
* C1 = 3.9584969228,
|
|
* C2 = 21.0996530827,
|
|
* C3 = 25.6329561486,
|
|
* C4 = 9.5733223454,
|
|
* UN = 1.0)
|
|
C
|
|
IF(X.LE.UN) THEN
|
|
EXPINT=-LOG(X)+A1+X*(A2+X*(A3+X*(A4+X*(A5+X*A6))))
|
|
ELSE
|
|
EXPINT=EXP(-X)*((B1+X*(B2+X*(B3+X*(B4+X))))/
|
|
* (C1+X*(C2+X*(C3+X*(C4+X)))))/X
|
|
END IF
|
|
RETURN
|
|
END
|