xpsi.f 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. *DECK XPSI
  2. REAL FUNCTION XPSI (A, IPSIK, IPSIX)
  3. C***BEGIN PROLOGUE XPSI
  4. C***SUBSIDIARY
  5. C***PURPOSE To compute values of the Psi function for XLEGF.
  6. C***LIBRARY SLATEC
  7. C***CATEGORY C7C
  8. C***TYPE SINGLE PRECISION (XPSI-S, DXPSI-D)
  9. C***KEYWORDS PSI FUNCTION
  10. C***AUTHOR Smith, John M., (NBS and George Mason University)
  11. C***ROUTINES CALLED (NONE)
  12. C***REVISION HISTORY (YYMMDD)
  13. C 820728 DATE WRITTEN
  14. C 890126 Revised to meet SLATEC CML recommendations. (DWL and JMS)
  15. C 901019 Revisions to prologue. (DWL and WRB)
  16. C 901106 Changed all specific intrinsics to generic. (WRB)
  17. C Corrected order of sections in prologue and added TYPE
  18. C section. (WRB)
  19. C 920127 Revised PURPOSE section of prologue. (DWL)
  20. C***END PROLOGUE XPSI
  21. REAL A,B,C,CNUM,CDENOM
  22. DIMENSION CNUM(12),CDENOM(12)
  23. SAVE CNUM, CDENOM
  24. C
  25. C CNUM(I) AND CDENOM(I) ARE THE ( REDUCED ) NUMERATOR
  26. C AND 2*I*DENOMINATOR RESPECTIVELY OF THE 2*I TH BERNOULLI
  27. C NUMBER.
  28. C
  29. DATA CNUM(1),CNUM(2),CNUM(3),CNUM(4),CNUM(5),CNUM(6),CNUM(7),
  30. 1CNUM(8),CNUM(9),CNUM(10),CNUM(11),CNUM(12)
  31. 2 / 1., -1., 1., -1., 1.,
  32. 3 -691., 1., -3617., 43867., -174611., 77683.,
  33. 4 -236364091./
  34. DATA CDENOM(1),CDENOM(2),CDENOM(3),CDENOM(4),CDENOM(5),CDENOM(6),
  35. 1 CDENOM(7),CDENOM(8),CDENOM(9),CDENOM(10),CDENOM(11),CDENOM(12)
  36. 2/12.,120., 252., 240.,132.,
  37. 3 32760., 12., 8160., 14364., 6600., 276., 65520./
  38. C***FIRST EXECUTABLE STATEMENT XPSI
  39. N=MAX(0,IPSIX-INT(A))
  40. B=N+A
  41. K1=IPSIK-1
  42. C
  43. C SERIES EXPANSION FOR A .GT. IPSIX USING IPSIK-1 TERMS.
  44. C
  45. C=0.
  46. DO 12 I=1,K1
  47. K=IPSIK-I
  48. 12 C=(C+CNUM(K)/CDENOM(K))/B**2
  49. XPSI=LOG(B)-(C+.5/B)
  50. IF(N.EQ.0) GO TO 20
  51. B=0.
  52. C
  53. C RECURRENCE FOR A .LE. IPSIX.
  54. C
  55. DO 15 M=1,N
  56. 15 B=B+1./(N-M+A)
  57. XPSI=XPSI-B
  58. 20 RETURN
  59. END