7 SUBROUTINE pyxkfl(KFL,ECM,ECMC,KFLC)
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)
19 IF(mstj(102).LE.1)
THEN
22 poll=1d0-parj(131)*parj(132)
23 sff=1d0/(16d0*paru(102)*(1d0-paru(102)))
24 sfw=ecmc**4/((ecmc**2-parj(123)**2)**2+(parj(123)*parj(124))**2)
25 sfi=sfw*(1d0-(parj(123)/ecmc)**2)
27 hf1i=sfi*sff*(ve*poll+parj(132)-parj(131))
28 hf1w=sfw*sff**2*((ve**2+1d0)*poll+2d0*ve*(parj(132)-parj(131)))
29 rfmax=
max(4d0/9d0*poll-4d0/3d0*(1d0-8d0*paru(102)/3d0)*hf1i+
30 & ((1d0-8d0*paru(102)/3d0)**2+1d0)*hf1w,1d0/9d0*poll+2d0/3d0*
31 & (-1d0+4d0*paru(102)/3d0)*hf1i+((-1d0+4d0*paru(102)/3d0)**2+
39 CALL
pyerrm(14,
'(PYXKFL:) caught in an infinite loop')
44 IF(kfl.LE.0) kflc=1+int(mstj(104)*
pyr(0))
47 IF(ecm.LT.2d0*pmq+parj(127)) goto 100
50 IF(mod(mstj(103),2).EQ.1) vq=sqrt(
max(0d0,1d0-(2d0*pmq/ecmc)**2))
53 IF(mstj(102).LE.1)
THEN
55 rfv=0.5d0*vq*(3d0-vq**2)*qf**2
57 vf=
sign(1d0,qf)-4d0*qf*paru(102)
58 rf=qf**2*poll-2d0*qf*vf*hf1i+(vf**2+1d0)*hf1w
59 rfv=0.5d0*vq*(3d0-vq**2)*(qf**2*poll-2d0*qf*vf*hf1i+vf**2*hf1w)+
61 IF(rfv.GT.0d0) parj(171)=min(1d0,vq**3*hf1w/rfv)
65 IF(kfl.LE.0.AND.rf.LT.
pyr(0)*rfmax) goto 100
66 parj(158)=parj(158)+1d0
67 IF(ecmc.LT.2d0*pmq+parj(127).OR.rfv.LT.
pyr(0)*rf) kflc=0
68 IF(mstj(107).LE.0.AND.kflc.EQ.0) goto 100
69 IF(kflc.NE.0) parj(159)=parj(159)+1d0
70 parj(144)=parj(157)*parj(159)/parj(158)
71 parj(148)=parj(144)*86.8d0/ecm**2