10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
17 INTEGER idbmup,pdfgup,pdfsup,idwtup,nprup,lprup
18 DOUBLE PRECISION ebmup,xsecup,xerrup,xmaxup
19 common/heprup/idbmup(2),ebmup(2),pdfgup(2),pdfsup(2),
20 &idwtup,nprup,xsecup(maxpup),xerrup(maxpup),xmaxup(maxpup),
25 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
26 common/
pydat3/mdcy(500,3),mdme(8000,2),brat(8000),kfdp(8000,5)
27 common/
pysubs/msel,mselpd,msub(500),kfin(2,-40:40),ckin(200)
30 common/
pyint2/iset(500),kfpr(500,2),coef(500,20),icol(40,4,2)
45 IF(
mstp(82).LE.1)
THEN
56 IF(
mint(121).EQ.2.AND.
mstp(14).EQ.10)
THEN
63 ELSEIF(
mint(121).GT.1)
THEN
67 IF(
mstp(18).EQ.2)
THEN
81 IF(
mstp(15).EQ.5) ptmano=0.60d0+
82 & 0.125d0*
log(1d0+0.10d0*
vint(1))**2
84 IF(
vint(285).GT.
max(ptmvmd,ptmdir,ptmano)) iptl=0
88 IF(
mint(121).EQ.3.OR.
mint(121).EQ.6.OR.(
mint(121).EQ.4.AND.
89 &
mstp(14).EQ.30))
THEN
92 IF(
mint(122).EQ.1)
THEN
100 IF(iptl.EQ.1) msub(95)=1
107 IF(iptl.EQ.1) ckin(3)=0d0
110 ELSEIF(
mint(122).EQ.2)
THEN
117 IF(iptl.EQ.1) ckin(3)=ptmdir
120 ELSEIF(
mint(122).EQ.3)
THEN
129 IF(iptl.EQ.1) msub(95)=1
136 IF(iptl.EQ.1) ckin(3)=0d0
139 ELSEIF(
mint(122).EQ.4.AND.(iabs(
mint(11)).GT.100.OR.
140 & iabs(
mint(12)).GT.100))
THEN
142 IF(iptl.EQ.1) msub(99)=1
145 ELSEIF(
mint(122).EQ.4)
THEN
151 DO 110 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
152 IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
154 IF(iptl.EQ.1) ckin(3)=ptmdir
157 ELSEIF(
mint(122).EQ.5)
THEN
163 IF(iptl.EQ.1) ckin(3)=ptmano
166 ELSEIF(
mint(122).EQ.6)
THEN
174 IF(iptl.EQ.1) msub(95)=1
181 IF(iptl.EQ.1) ckin(3)=0d0
185 ELSEIF(
mint(121).EQ.9.OR.
mint(121).EQ.13)
THEN
188 IF(
mint(122).EQ.1)
THEN
194 DO 120 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
195 IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
197 IF(iptl.EQ.1) ckin(3)=ptmdir
200 ELSEIF(
mint(122).EQ.2.OR.
mint(122).EQ.4)
THEN
206 IF(iptl.EQ.1) ckin(3)=ptmdir
209 ELSEIF(
mint(122).EQ.3.OR.
mint(122).EQ.7)
THEN
215 IF(iptl.EQ.1) ckin(3)=ptmano
218 ELSEIF(
mint(122).EQ.5)
THEN
226 IF(iptl.EQ.1) msub(95)=1
233 IF(iptl.EQ.1) ckin(3)=0d0
236 ELSEIF(
mint(122).EQ.6.OR.
mint(122).EQ.8)
THEN
244 IF(iptl.EQ.1) msub(95)=1
251 IF(iptl.EQ.1) ckin(3)=0d0
254 ELSEIF(
mint(122).EQ.9)
THEN
262 IF(iptl.EQ.1) msub(95)=1
269 IF(iptl.EQ.1) ckin(3)=0d0
272 ELSEIF(
mint(122).EQ.10.OR.
mint(122).EQ.12)
THEN
274 IF(iptl.EQ.1) msub(99)=1
277 ELSEIF(
mint(122).EQ.11.OR.
mint(122).EQ.13)
THEN
279 IF(iptl.EQ.1) msub(99)=1
283 ELSEIF(
mint(121).EQ.2)
THEN
286 IF(
mint(122).EQ.1)
THEN
292 IF(iptl.EQ.1) ckin(3)=ptmdir
295 ELSEIF(
mint(122).EQ.2)
THEN
303 IF(iptl.EQ.1) msub(95)=1
310 IF(iptl.EQ.1) ckin(3)=0d0
314 ELSEIF(
mint(121).EQ.4)
THEN
317 IF(
mint(122).EQ.1)
THEN
323 DO 130 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
324 IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
326 IF(iptl.EQ.1) ckin(3)=ptmdir
329 ELSEIF(
mint(122).EQ.2.OR.
mint(122).EQ.3)
THEN
335 IF(iptl.EQ.1) ckin(3)=ptmdir
338 ELSEIF(
mint(122).EQ.4)
THEN
346 IF(iptl.EQ.1) msub(95)=1
353 IF(iptl.EQ.1) ckin(3)=0d0
367 IF(
mstp(11).GE.1.AND.(iabs(
mint(10+
i)).EQ.11.OR.
373 IF(
mint(11).EQ.22.AND.
mint(12).EQ.22)
THEN
374 IF(
mstp(14).LE.10.AND.
mint(123).GE.4.AND.
mint(123).LE.6)
THEN
377 ELSEIF(
mstp(14).EQ.12.OR.
mstp(14).EQ.13.OR.
mstp(14).EQ.22.OR.
378 &
mstp(14).EQ.26.OR.
mstp(14).EQ.27)
THEN
381 ELSEIF(
mstp(14).EQ.14.OR.
mstp(14).EQ.17.OR.
mstp(14).EQ.23.OR.
382 &
mstp(14).EQ.28.OR.
mstp(14).EQ.29)
THEN
385 ELSEIF((
mstp(14).EQ.20.OR.
mstp(14).EQ.30).AND.(
mint(122).EQ.2
386 & .OR.
mint(122).EQ.3.OR.
mint(122).EQ.10.OR.
mint(122).EQ.11))
THEN
389 ELSEIF((
mstp(14).EQ.20.OR.
mstp(14).EQ.30).AND.(
mint(122).EQ.4
390 & .OR.
mint(122).EQ.7.OR.
mint(122).EQ.12.OR.
mint(122).EQ.13))
THEN
393 ELSEIF(
mstp(14).EQ.25.AND.
mint(122).EQ.2)
THEN
396 ELSEIF(
mstp(14).EQ.25.AND.
mint(122).EQ.3)
THEN
400 ELSEIF(
mint(11).EQ.22.OR.
mint(12).EQ.22)
THEN
401 IF(
mstp(14).EQ.26.OR.
mstp(14).EQ.28.OR.
mint(122).EQ.4)
THEN
402 IF(
mint(11).EQ.22)
THEN
411 &
'(PYINPR:) unallowed MSTP(14) code for single photon')
417 IF(
mint(123).LE.0)
THEN
420 ELSEIF(
mint(123).LE.3)
THEN
423 ELSEIF(
mint(11).EQ.22.AND.
mint(12).EQ.22)
THEN
435 IF(
mint(121).EQ.9.OR.
mint(121).EQ.13)
THEN
436 IF((
mint(122).GE.4.AND.
mint(122).LE.6).OR.
mint(122).EQ.12)
438 IF((
mint(122).GE.7.AND.
mint(122).LE.9).OR.
mint(122).EQ.13)
441 IF(
mint(122).EQ.2.OR.
mint(122).EQ.5.OR.
mint(122).EQ.8.OR.
443 IF(
mint(122).EQ.3.OR.
mint(122).EQ.6.OR.
mint(122).EQ.9.OR.
446 ELSEIF(
mint(121).EQ.4.AND.
mstp(14).EQ.25)
THEN
449 ELSEIF(
mint(121).EQ.2)
THEN
453 IF(
mint(11).EQ.22)
THEN
460 IF(
mstp(14).EQ.30.AND.
mint(121).EQ.4.AND.
mint(122).EQ.4)
463 IF(
mint(12).EQ.22)
THEN
470 IF(
mstp(14).EQ.30.AND.
mint(121).EQ.4.AND.
mint(122).EQ.4)
473 IF(
mint(11).EQ.22.AND.
mint(12).EQ.22.AND.(
mstp(14).EQ.14.OR.
474 &
mstp(14).EQ.17.OR.
mstp(14).EQ.18.OR.
mstp(14).EQ.23))
THEN
486 IF(
mint(121).GT.1)
THEN
487 ELSEIF(msel.EQ.1.OR.msel.EQ.2)
THEN
489 IF(
mint(43).EQ.1)
THEN
491 IF(
mint(11)+
mint(12).EQ.0) msub(1)=1
492 IF(
mint(11)+
mint(12).NE.0) msub(2)=1
494 ELSEIF(
mint(43).LE.3.AND.
mint(123).EQ.0.AND.
495 & (
mint(11).EQ.22.OR.
mint(12).EQ.22))
THEN
500 ELSEIF((
mint(123).EQ.8.OR.
mint(123).EQ.9).AND.(
mint(11).EQ.22
501 & .OR.
mint(12).EQ.22))
THEN
505 ELSEIF(
mint(43).LE.3)
THEN
509 ELSEIF(
mint(123).EQ.0.AND.
mint(11).EQ.22.AND.
510 &
mint(12).EQ.22)
THEN
516 DO 160 ii=mdcy(22,2),mdcy(22,2)+mdcy(22,3)-1
517 IF(iabs(kfdp(ii,1)).GE.10) mdme(ii,1)=min(0,mdme(ii,1))
521 IF(ckin(3).LT.ptmrun.OR.msel.EQ.2) ckin(3)=ptmdir
522 ckin(1)=
max(ckin(1),2d0*ckin(3))
524 ELSEIF((
mint(123).EQ.0.AND.(
mint(11).EQ.22.OR.
mint(12).EQ.22))
525 & .OR.(
mint(123).GE.4.AND.
mint(123).LE.6.AND.
mint(11).EQ.22.AND.
526 &
mint(12).EQ.22))
THEN
532 ELSEIF(msel.EQ.1)
THEN
542 IF(ckin(3).LT.ptmn) msub(95)=1
543 IF(msub(95).EQ.1.AND.
mint(50).EQ.0) msub(95)=0
560 ELSEIF(msel.GE.4.AND.msel.LE.8)
THEN
565 DO 180
j=1,min(8,mdcy(21,3))
566 mdme(mdcy(21,2)+
j-1,1)=0
568 mdme(mdcy(21,2)+msel-1,1)=1
570 DO 190
j=1,min(12,mdcy(22,3))
571 mdme(mdcy(22,2)+
j-1,1)=0
573 mdme(mdcy(22,2)+msel-1,1)=1
575 ELSEIF(msel.EQ.10)
THEN
581 ELSEIF(msel.EQ.11)
THEN
585 ELSEIF(msel.EQ.12)
THEN
589 ELSEIF(msel.EQ.13)
THEN
594 ELSEIF(msel.EQ.14)
THEN
599 ELSEIF(msel.EQ.15)
THEN
607 ELSEIF(msel.EQ.16)
THEN
615 ELSEIF(msel.EQ.17)
THEN
620 ELSEIF(msel.EQ.18)
THEN
627 ELSEIF(msel.EQ.19)
THEN
642 ELSEIF(msel.EQ.21)
THEN
646 ELSEIF(msel.EQ.22)
THEN
650 ELSEIF(msel.EQ.23)
THEN
654 ELSEIF(msel.EQ.24)
THEN
658 ELSEIF(msel.EQ.25)
THEN
665 ELSEIF(msel.GE.35.AND.msel.LE.38)
THEN
668 DO 200
j=1,min(8,mdcy(21,3))
669 mdme(mdcy(21,2)+
j-1,1)=0
671 mdme(mdcy(21,2)+msel-31,1)=1
674 ELSEIF(msel.EQ.39)
THEN
676 IF(
mint(43).EQ.4)
THEN
679 IF(iset(
i).GE.0) msub(
i)=1
681 ELSEIF(
mint(43).EQ.1)
THEN
699 ELSEIF(msel.EQ.40)
THEN
701 IF(
mint(43).EQ.4)
THEN
713 ELSEIF(
mint(43).EQ.1)
THEN
718 ELSEIF(msel.EQ.41)
THEN
723 IF(
mint(43).EQ.4)
THEN
728 ELSEIF(msel.EQ.42)
THEN
733 IF(
mint(43).NE.4)
THEN
739 ELSEIF(msel.EQ.43)
THEN
741 IF(
mint(43).EQ.4)
THEN
751 ELSEIF(msel.EQ.44)
THEN
753 IF(
mint(43).EQ.4)
THEN
757 ELSEIF(
mint(43).EQ.1)
THEN
763 ELSEIF(msel.EQ.45)
THEN
767 IF(
mint(43).EQ.4)
THEN
773 ELSEIF(msel.EQ.50)
THEN
778 IF(
mint(43).EQ.4)
THEN
784 ELSEIF(msel.EQ.51)
THEN
790 ELSEIF(msel.EQ.61)
THEN
796 ELSEIF(msel.EQ.62)
THEN
802 ELSEIF(msel.EQ.63)
THEN
812 DO 350
i=1,min(8,mdcy(21,3))
814 IF(mdme(idc,1).LE.0) goto 350
817 IF(
mstp(7).GE.1.AND.
mstp(7).LE.8.AND.(msel.LE.3.OR.msel.GE.9))
830 DO 360
i=1,min(12,mdcy(22,3))
832 IF(mdme(idc,1).LE.0) goto 360
835 IF(((
mstp(7).GE.1.AND.
mstp(7).LE.8).OR.(
mstp(7).GE.11.AND.
836 &
mstp(7).LE.18)).AND.(msel.LE.3.OR.msel.GE.9)) kflfm=
mstp(7)
842 IF(
mint(111).GE.11)
THEN
847 IF(ipypr.GT.500) CALL
pyerrm(26,
848 &
'(PYINPR.) no more empty slots for user processes')
849 IF(iset(ipypr).GE.0.AND.iset(ipypr).LE.9) goto 370
850 IF(ipypr.GE.91.AND.ipypr.LE.100) goto 370
854 kfpr(ipypr,2)=lprup(iup)
856 WRITE(chipr,
'(I10)') lprup(iup)
859 IF(chipr(ich:ich).EQ.
' ') ichin=ich+1
861 proc(ipypr)=
'User process '//chipr(ichin:10)//
' '