12 SUBROUTINE pyggam(ISET,X,Q2,P2,IP2,F2GM,XPDFGM)
15 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
19 common/
pyint8/xpvmd(-6:6),xpanl(-6:6),xpanh(-6:6),xpbeh(-6:6),
21 common/
pyint9/vxpvmd(-6:6),vxpanl(-6:6),vxpanh(-6:6),vxpdgm(-6:6)
24 dimension xpdfgm(-6:6),xpga(-6:6), vxpga(-6:6)
26 DATA pmc/1.3d0/, pmb/4.6d0/
28 DATA aem/0.007297d0/, aem2pi/0.0011614d0/
34 DATA frho/2.20d0/, fomega/23.6d0/, fphi/18.4d0/
36 DATA pmrho/0.770d0/, pmphi/1.020d0/
68 q2a=q2+p2*q02/
max(q02,q2)
69 facnor=
log(q2/q02)/nstep
74 q2a=q2+p2*q02/
max(q02,q2)
76 p2mx=q2*(q02+p2)/(q2+p2)*exp(p2*(q2-q02)/
79 p2mxa=q2*(q02+p2)/(q2+p2)*exp(p2*(q2-q02)/
82 facnor=
log(q2/p2mxa)/
log(q2/p2mx)
84 p2mx=q2*(q02+p2)/(q2+p2)*exp(p2*(q2-q02)/
86 p2mx=
max(0d0,1d0-p2/q2)*p2mx+min(1d0,p2/q2)*
max(p2,q02)
88 p2mxa=q2*(q02+p2)/(q2+p2)*exp(p2*(q2-q02)/
92 p2mx=
max(0d0,1d0-p2/q2)*p2mx+min(1d0,p2/q2)*
max(p2,q02)
93 p2mxb=
max(0d0,1d0-p2/q2)*p2mxb+min(1d0,p2/q2)*p2mxa
94 IF(abs(q2-q02).GT.1d-6)
THEN
95 facnor=
log(q2/p2mxa)/
log(q2/p2mxb)
96 ELSEIF(p2.LT.q02)
THEN
97 facnor=q02**3/(q02+p2)/(q02**2-p2**2/2d0)
105 CALL
pygvmd(iset,1,
x,q2a,p2mx,alam,xpga,vxpga)
109 facud=aem*(1d0/frho+1d0/fomega)*(pmrho**2/(pmrho**2+p2))**2
110 facs=aem*(1d0/fphi)*(pmphi**2/(pmphi**2+p2))**2
112 xpvmd(kfl)=(facud+facs)*xpga(kfl)
114 xpvmd(1)=xpvmd(1)+(1d0-fracu)*facud*xfval
115 xpvmd(2)=xpvmd(2)+fracu*facud*xfval
116 xpvmd(3)=xpvmd(3)+facs*xfval
117 xpvmd(-1)=xpvmd(-1)+(1d0-fracu)*facud*xfval
118 xpvmd(-2)=xpvmd(-2)+fracu*facud*xfval
119 xpvmd(-3)=xpvmd(-3)+facs*xfval
120 vxpvmd(1)=(1d0-fracu)*facud*xfval
121 vxpvmd(2)=fracu*facud*xfval
123 vxpvmd(-1)=(1d0-fracu)*facud*xfval
124 vxpvmd(-2)=fracu*facud*xfval
125 vxpvmd(-3)=facs*xfval
132 CALL
pygano(-3,
x,q2a,p2mx,alam,xpga,vxpga)
134 xpanl(kfl)=facnor*xpga(kfl)
135 vxpanl(kfl)=facnor*vxpga(kfl)
139 CALL
pygano(4,
x,q2a,p2mx,alam,xpga,vxpga)
141 xpanh(kfl)=facnor*xpga(kfl)
142 vxpanh(kfl)=facnor*vxpga(kfl)
144 CALL
pygano(5,
x,q2a,p2mx,alam,xpga,vxpga)
146 xpanh(kfl)=xpanh(kfl)+facnor*xpga(kfl)
147 vxpanh(kfl)=vxpanh(kfl)+facnor*vxpga(kfl)
154 q2step=q02*(q2/q02)**((istep-0.5d0)/nstep)
155 IF((kf.EQ.4.AND.q2step.LT.pmc**2).OR.
156 & (kf.EQ.5.AND.q2step.LT.pmb**2)) goto 160
157 CALL
pygvmd(0,kf,
x,q2,q2step,alam,xpga,vxpga)
158 facq=aem2pi*(q2step/(q2step+p2))**2*facnor
159 IF(mod(kf,2).EQ.0) facq=facq*(8d0/9d0)
160 IF(mod(kf,2).EQ.1) facq=facq*(2d0/9d0)
162 IF(kf.LE.3) xpanl(kfl)=xpanl(kfl)+facq*xpga(kfl)
163 IF(kf.GE.4) xpanh(kfl)=xpanh(kfl)+facq*xpga(kfl)
164 IF(kf.LE.3) vxpanl(kfl)=vxpanl(kfl)+facq*vxpga(kfl)
165 IF(kf.GE.4) vxpanh(kfl)=vxpanh(kfl)+facq*vxpga(kfl)
172 CALL
pygbeh(4,
x,q2,p2,pmc**2,xpbh)
175 CALL
pygbeh(5,
x,q2,p2,pmb**2,xpbh)
180 IF(iset.EQ.2.OR.iset.EQ.4)
THEN
190 IF(iabs(kfl).EQ.2.OR.iabs(kfl).EQ.4) chsq=4d0/9d0
191 xpf2=xpvmd(kfl)+xpanl(kfl)+xpbeh(kfl)+xpdir(kfl)
192 IF(kfl.NE.0) f2gm=f2gm+chsq*xpf2
193 xpdfgm(kfl)=xpvmd(kfl)+xpanl(kfl)+xpanh(kfl)
194 vxpdgm(kfl)=vxpvmd(kfl)+vxpanl(kfl)+vxpanh(kfl)