10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
14 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
15 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
20 dimension xpel(-25:25),xpga(-6:6),sxp(0:6)
25 DOUBLE PRECISION xx,qq,upv,dnv,usea,dsea,
str,chm,bot,
top,glu,
28 DATA value/20*0d0/,parm/20*
' '/
36 IF(kfa.EQ.13) pme=pmas(13,1)
37 IF(kfa.EQ.15) pme=pmas(15,1)
40 hle=
log(
max(3d0,q2/pme**2))
41 hbe2=(aem/paru(1))*(hle-1d0)
45 IF(
mstp(59).LE.1)
THEN
46 hde=1d0+(aem/paru(1))*(1.5d0*hle+1.289868d0)+(aem/paru(1))**2*
47 & (-2.164868d0*hle**2+9.840808d0*hle-10.130464d0)
48 hee=hbe2*(1d0-
x)**(hbe2-1d0)*sqrt(
max(0d0,hde))-
49 & 0.5d0*hbe2*(1d0+
x)+hbe2**2/8d0*((1d0+
x)*(-4d0*x1l+3d0*xl)-
50 & 4d0*xl/(1d0-
x)-5d0-
x)
52 hee=hbe2*(1d0-
x)**(hbe2-1d0)*exp(0.172784d0*hbe2)/
53 &
pygamm(1d0+hbe2)-0.5d0*hbe2*(1d0+
x)+hbe2**2/8d0*((1d0+
x)*
54 & (-4d0*x1l+3d0*xl)-4d0*xl/(1d0-
x)-5d0-
x)
57 IF(
x.GT.1d0-1d-10)
THEN
59 ELSEIF(
x.GT.1d0-1d-7)
THEN
60 hee=hee*1000d0**hbe2/(1000d0**hbe2-1d0)
65 aemp=
pyalem(pme*sqrt(
max(0d0,q2)))/paru(2)
66 IF(
mstp(13).LE.1)
THEN
71 xpel(22)=aemp*hlg*(1d0+(1d0-
x)**2)
72 hlw=
log(1d0+q2/pmas(24,1)**2)/(4d0*paru(102))
73 xpel(-24)=aemp*hlw*(1d0+(1d0-
x)**2)
76 IF(kfa.EQ.11.AND.
mstp(12).EQ.1)
THEN
77 xfsea=0.5d0*(aemp*(hle-1d0))**2*(4d0/3d0+
x-
x**2-4d0*
x**3/3d0+
79 xpel(11)=xpel(11)+xfsea
83 IF(
mstp(56).EQ.2)
THEN
90 IF(
mint(93).NE.3000000+
mstp(55))
THEN
108 sxp(kfl)=0.5d0*sxp(kfl)
111 IF(
iter.EQ.0) wtstp=0.5d0
117 xle=xl*(istp-0.5d0)/nstp
119 xe=min(1d0-1d-10,exp(xle))
120 xg=min(1d0-1d-10,
x/xe)
123 IF(
mstp(13).LE.1)
THEN
126 xpgp=xpgp*
log(
max(1d0,(
parp(13)/pme**2)*(1d0-xe)/xe**2))
129 IF(
mstp(56).EQ.1)
THEN
130 IF(
mstp(55).EQ.1)
THEN
132 ELSEIF(
mstp(55).GE.5.AND.
mstp(55).LE.8)
THEN
135 IF(
mstp(55).GE.7) p2mx=4.0d0
136 IF(
mstp(57).EQ.0) q2mx=p2mx
138 IF(
vint(120).LT.0d0) p2=
vint(120)**2
141 ELSEIF(
mstp(55).GE.9.AND.
mstp(55).LE.12)
THEN
144 IF(
mstp(55).GE.11) p2mx=4.0d0
145 IF(
mstp(57).EQ.0) q2mx=p2mx
147 IF(
vint(120).LT.0d0) p2=
vint(120)**2
152 sxp(kfl)=sxp(kfl)+wtstp*xpgp*xpga(kfl)
154 ELSEIF(
mstp(56).EQ.2)
THEN
157 qq=sqrt(
max(0d0,q2min,q2))
158 IF(
mstp(57).EQ.0) qq=sqrt(q2min)
160 sxp(0)=sxp(0)+wtstp*xpgp*glu
161 sxp(1)=sxp(1)+wtstp*xpgp*dnv
162 sxp(2)=sxp(2)+wtstp*xpgp*upv
163 sxp(3)=sxp(3)+wtstp*xpgp*
str
164 sxp(4)=sxp(4)+wtstp*xpgp*chm
165 sxp(5)=sxp(5)+wtstp*xpgp*bot
166 sxp(6)=sxp(6)+wtstp*xpgp*
top
169 sumxpp=sxp(0)+2d0*sxp(1)+2d0*sxp(2)
170 IF(
iter.LE.2.OR.(
iter.LE.7.AND.abs(sumxpp-sumxp).GT.
171 &
parp(14)*(sumxpp+sumxp))) goto 120
177 xpel(kfl)=fconv*sxp(kfl)