10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
14 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
15 common/
pydat3/mdcy(500,3),mdme(8000,2),brat(8000),kfdp(8000,5)
18 INTEGER kfcmp(10),kftmp(10)
19 CHARACTER chin*(*),chtmp*104,chfix*104,chmode*10,chcode*8,
21 DATA chalp/
'abcdefghijklmnopqrstuvwxyz',
22 &
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
28 IF(chtmp(lbeg:lbeg).EQ.
' ') goto 100
31 IF(lend.LE.100.AND.chtmp(lend:lend).NE.
'!') goto 105
33 IF(chtmp(lend:lend).EQ.
' ') goto 110
35 chfix(1:len)=chtmp(lbeg:lend)
40 IF(chfix(lcolon:lcolon).NE.
':') goto 120
42 chcode(10-lcolon:8)=chfix(1:lcolon-1)
43 READ(chcode,
'(I8)',err=300) kf
48 CALL
pyerrm(18,
'(PYONOF:) unrecognized particle '//chcode)
53 IF(idcbeg.EQ.0.OR.idclen.EQ.0)
THEN
54 CALL
pyerrm(18,
'(PYONOF:) no decay channels for '//chcode)
61 IF(lsep.LE.len.AND.chfix(lsep:lsep).NE.
' '.AND.
62 &chfix(lsep:lsep).NE.
'=') goto 130
65 chmode(1:lmode)=chfix(lcolon+1:lsep-1)
70 IF(chmode(lcom:lcom).EQ.chalp(1)(lalp:lalp))
71 & chmode(lcom:lcom)=chalp(2)(lalp:lalp)
77 IF(chmode.EQ.
'ALLOFF') mode=1
78 IF(chmode.EQ.
'ALLON') mode=2
79 IF(chmode.EQ.
'OFFIFANY') mode=3
80 IF(chmode.EQ.
'ONIFANY') mode=4
81 IF(chmode.EQ.
'OFFIFALL') mode=5
82 IF(chmode.EQ.
'ONIFALL') mode=6
83 IF(chmode.EQ.
'OFFIFMATCH') mode=7
84 IF(chmode.EQ.
'ONIFMATCH') mode=8
86 CALL
pyerrm(18,
'(PYONOF:) unknown command '//chmode)
91 IF(mode.EQ.1.OR.mode.EQ.2)
THEN
92 WRITE(mstu(11),1000) kf,chmode
93 DO 160 idc=idcbeg,idcbeg+idclen-1
94 IF(mdme(idc,1).LT.0) goto 160
104 IF(lbeg.GT.len) goto 190
105 IF(lbeg.LT.len.AND.(chfix(lbeg:lbeg).EQ.
' '.OR.
106 &chfix(lbeg:lbeg).EQ.
'='.OR.chfix(lbeg:lbeg).EQ.
',')) goto 170
109 IF(lend.LT.len.AND.chfix(lend:lend).NE.
' '.AND.
110 &chfix(lend:lend).NE.
'='.AND.chfix(lend:lend).NE.
',') goto 180
111 IF(lend.LT.len) lend=lend-1
113 chcode(8-lend+lbeg:8)=chfix(lbeg:lend)
114 READ(chcode,
'(I8)',err=300) kfread
116 kfcmp(ncmp)=iabs(kfread)
118 IF(ncmp.LT.10) goto 170
120 WRITE(mstu(11),1100) kf,chmode,(kfcmp(icmp),icmp=1,ncmp)
123 IF(mode.EQ.3.OR.mode.EQ.4)
THEN
124 DO 220 idc=idcbeg,idcbeg+idclen-1
125 IF(mdme(idc,1).LT.0) goto 220
127 kfnow=iabs(kfdp(idc,ikf))
128 IF(kfnow.EQ.0) goto 210
130 IF(kfcmp(icmp).EQ.kfnow)
THEN
141 DO 260 idc=idcbeg,idcbeg+idclen-1
142 IF(mdme(idc,1).LT.0) goto 260
145 kftmp(itmp)=kfcmp(itmp)
149 kfnow=iabs(kfdp(idc,ikf))
150 IF(kfnow.EQ.0) goto 250
153 IF(kftmp(itmp).EQ.kfnow)
THEN
154 kftmp(itmp)=kftmp(ntmp)
160 IF(ntmp.EQ.0.AND.mode.LE.6) mdme(idc,1)=mode-5
161 IF(ntmp.EQ.0.AND.nfin.EQ.ncmp.AND.mode.GE.7)
167 300 CALL
pyerrm(18,
'(PYONOF:) could not interpret particle code '
171 1000
FORMAT(
' Decays for',i8,
' set ',a10)
172 1100
FORMAT(
' Decays for',i8,
' set ',a10,
' if match',10i8)