4 common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
5 common/ludat2/kchg(500,3),pmas(500,4),parf(2000),vckm(4,4)
6 common/pypars/mstp(200),parp(200),msti(200),pari(200)
7 common/pyint1/mint(400),vint(400)
10 dimension xpel(-25:25),xpga(-6:6),sxp(0:6)
15 DOUBLE PRECISION xx,qq,upv,dnv,usea,dsea,str,chm,bot,
top,glu,
18 DATA value/20*0d0/,parm/20*
' '/
29 hbe2=(aem/paru(1))*(hle-1.)
33 IF(mstp(59).LE.1)
THEN
34 hde=1.+(aem/paru(1))*(1.5*hle+1.289868)+(aem/paru(1))**2*
35 & (-2.164868*hle**2+9.840808*hle-10.130464)
36 hee=hbe2*(1.-
x)**(hbe2-1.)*sqrt(
max(0.,hde))-
37 & 0.5*hbe2*(1.+
x)+hbe2**2/8.*((1.+
x)*(-4.*x1l+3.*xl)-
40 hee=hbe2*(1.-
x)**(hbe2-1.)*exp(0.172784*hbe2)/
pygamm(1.+hbe2)-
41 & 0.5*hbe2*(1.+
x)+hbe2**2/8.*((1.+
x)*(-4.*x1l+3.*xl)-
44 IF(
x.GT.0.9999.AND.
x.LE.0.999999)
THEN
45 hee=hee*100.**hbe2/(100.**hbe2-1.)
46 ELSEIF(
x.GT.0.999999)
THEN
53 IF(mstp(13).LE.1)
THEN
56 hlg=
log(
max(1.,(parp(13)/pme**2)*(1.-
x)/
x**2))
58 xpel(22)=aemp*hlg*(1.+(1.-
x)**2)
59 hlw=
log(1.+q2/pmas(24,1)**2)/(4.*paru(102))
60 xpel(-24)=aemp*hlw*(1.+(1.-
x)**2)
63 IF(mstp(12).EQ.1)
THEN
64 xfsea=0.5*(aemp*(hle-1.))**2*(4./3.+
x-
x**2-4.*
x**3/3.+
66 xpel(11)=xpel(11)+xfsea
70 IF(mstp(56).EQ.2)
THEN
74 value(2)=mstp(55)/1000
76 value(3)=mod(mstp(55),1000)
77 IF(mint(93).NE.3000000+mstp(55))
THEN
78 CALL pdfset(parm,
value)
79 mint(93)=3000000+mstp(55)
98 IF(
iter.EQ.0) wtstp=0.5
104 xle=xl*(istp-0.5)/nstp
106 xe=
min(0.999999,exp(xle))
107 xg=
min(0.999999,
x/xe)
110 IF(mstp(13).LE.1)
THEN
113 xpgp=xpgp*
log(
max(1.,(parp(13)/pme**2)*(1.-xe)/xe**2))
116 IF(mstp(56).EQ.1)
THEN
119 sxp(kfl)=sxp(kfl)+wtstp*xpgp*xpga(kfl)
121 ELSEIF(mstp(56).EQ.2)
THEN
124 qq=sqrt(
max(0.,sngl(q2min),q2))
125 IF(mstp(57).EQ.0) qq=sqrt(q2min)
126 CALL structm(xx,qq,upv,dnv,usea,dsea,str,chm,bot,
top,glu)
127 sxp(0)=sxp(0)+wtstp*xpgp*glu
128 sxp(1)=sxp(1)+wtstp*xpgp*dnv
129 sxp(2)=sxp(2)+wtstp*xpgp*upv
130 sxp(3)=sxp(3)+wtstp*xpgp*str
131 sxp(4)=sxp(4)+wtstp*xpgp*chm
132 sxp(5)=sxp(5)+wtstp*xpgp*bot
133 sxp(6)=sxp(6)+wtstp*xpgp*
top
136 sumxpp=sxp(0)+2.*sxp(1)+2.*sxp(2)
137 IF(
iter.LE.2.OR.(
iter.LE.7.AND.abs(sumxpp-sumxp).GT.
138 & parp(14)*(sumxpp+sumxp))) goto 120
144 xpel(kfl)=fconv*sxp(kfl)