8 FUNCTION pyspen(XREIN,XIMIN,IREIM)
11 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
15 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
20 &1.000000d+00, -5.000000d-01, 1.666667d-01,
21 &0.000000d+00, -3.333333d-02, 0.000000d+00,
22 &2.380952d-02, 0.000000d+00, -3.333333d-02,
23 &0.000000d+00, 7.575757d-02, 0.000000d+00,
24 &-2.531135d-01, 0.000000d+00, 1.166667d+00/
28 IF(abs(1d0-xre).LT.1d-6.AND.abs(xim).LT.1d-6)
THEN
29 IF(ireim.EQ.1)
pyspen=paru(1)**2/6d0
34 xmod=sqrt(xre**2+xim**2)
41 xarg=
sign(acos(xre/xmod),xim)
47 algxim=xarg-
sign(paru(1),xarg)
48 sp0re=-paru(1)**2/6d0-(algxre**2-algxim**2)/2d0
61 xmod=sqrt(xre**2+xim**2)
62 xarg=
sign(acos(xre/xmod),xim)
65 sp0re=sp0re+sgn*(paru(1)**2/6d0-(algxre*algyre-algxim*algyim))
66 sp0im=sp0im-sgn*(algxre*algyim+algxim*algyre)
72 xmod=sqrt(xre**2+xim**2)
73 xarg=
sign(acos(xre/xmod),xim)
82 IF(
max(abs(savere),abs(saveim)).LT.1d-30) goto 110
83 termre=(savere*zre-saveim*zim)/dble(
i+1)
84 termim=(savere*zim+saveim*zre)/dble(
i+1)
91 110
IF(ireim.EQ.1)
pyspen=sp0re+sgn*spre
92 IF(ireim.EQ.2)
pyspen=sp0im+sgn*spim