File indexing completed on 2025-08-05 08:21:14
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 SUBROUTINE PYPTFS(MODE,PTMAX,PTMIN,PTGEN)
0014
0015
0016 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0017 IMPLICIT INTEGER(I-N)
0018 INTEGER PYK,PYCHGE,PYCOMP
0019
0020 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
0021 &KEXCIT=4000000,KDIMEN=5000000)
0022
0023 PARAMETER (MAXNUR=1000)
0024
0025 COMMON/PYPART/NPART,NPARTD,IPART(MAXNUR),PTPART(MAXNUR)
0026 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0027 COMMON/PYCTAG/NCT,MCT(4000,2)
0028 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0029 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0030 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0031 COMMON/PYINT1/MINT(400),VINT(400)
0032 SAVE /PYPART/,/PYJETS/,/PYCTAG/,/PYDAT1/,/PYDAT2/,/PYPARS/,
0033 &/PYINT1/
0034
0035 DIMENSION IPOS(2*MAXNUR),IREC(2*MAXNUR),IFLG(2*MAXNUR),
0036 &ISCOL(2*MAXNUR),ISCHG(2*MAXNUR),PTSCA(2*MAXNUR),IMESAV(2*MAXNUR),
0037 &PT2SAV(2*MAXNUR),ZSAV(2*MAXNUR),SHTSAV(2*MAXNUR),
0038 &MESYS(MAXNUR,0:2),PSUM(5),DPT(5,4)
0039
0040 SHAT(I,J)=(P(I,4)+P(J,4))**2-(P(I,1)+P(J,1))**2-
0041 &(P(I,2)+P(J,2))**2-(P(I,3)+P(J,3))**2
0042
0043
0044 PTGEN=0D0
0045 IF(MSTJ(41).NE.1.AND.MSTJ(41).NE.2.AND.MSTJ(41).NE.11.AND.
0046 &MSTJ(41).NE.12) RETURN
0047 IF(NPART.LE.0) THEN
0048 CALL PYERRM(2,'(PYPTFS:) showering system too small')
0049 RETURN
0050 ENDIF
0051 PT2CMX=PTMAX**2
0052
0053
0054 PMB=PMAS(5,1)
0055 PMC=PMAS(4,1)
0056 ALAM5=PARJ(81)
0057 ALAM4=ALAM5*(PMB/ALAM5)**(2D0/25D0)
0058 ALAM3=ALAM4*(PMC/ALAM4)**(2D0/27D0)
0059 PMBS=PMB**2
0060 PMCS=PMC**2
0061 ALAM5S=ALAM5**2
0062 ALAM4S=ALAM4**2
0063 ALAM3S=ALAM3**2
0064
0065
0066 NFLAV=MAX(0,MIN(5,MSTJ(45)))
0067 PT0C=0.5D0*PARJ(82)
0068 PT2CMN=MAX(PTMIN,PT0C,1.1D0*ALAM3)**2
0069
0070
0071 AEM2PI=PARU(101)/PARU(2)
0072 PT0EQ=0.5D0*PARJ(83)
0073 PT0EL=0.5D0*PARJ(90)
0074
0075
0076 NEVOL=0
0077 DO 100 J=1,4
0078 PSUM(J)=0D0
0079 100 CONTINUE
0080 DO 110 I=MINT(84)+1,N
0081 IF(K(I,2).GT.0.AND.K(I,2).LT.6) THEN
0082 K(I,5)=0
0083 MCT(I,2)=0
0084 ENDIF
0085 IF(K(I,2).LT.0.AND.K(I,2).GT.-6) THEN
0086 K(I,4)=0
0087 MCT(I,1)=0
0088 ENDIF
0089 110 CONTINUE
0090 NPARTS=NPART
0091
0092
0093 DO 210 IP=1,NPART
0094 I=IPART(IP)
0095 IF(MODE.NE.1.OR.I.GT.NPARTD) THEN
0096 IF(K(I,1).GT.10) GOTO 210
0097 ELSEIF(K(I,3).GT.MINT(84)) THEN
0098 IF(K(I,3).GT.MINT(84)+2) GOTO 210
0099 ELSE
0100 IF(K(K(I,3),3).GT.MINT(83)+6) GOTO 210
0101 ENDIF
0102 DO 120 J=1,4
0103 PSUM(J)=PSUM(J)+P(I,J)
0104 120 CONTINUE
0105
0106
0107 IF(IABS(K(I,2)).GT.1000.AND.IABS(K(I,2)).LT.10000) GOTO 210
0108 KCOL=ISIGN(KCHG(PYCOMP(K(I,2)),2),K(I,2))
0109 KCHA=ISIGN(KCHG(PYCOMP(K(I,2)),1),K(I,2))
0110
0111
0112 DO 160 JSGCOL=1,-1,-2
0113 IF(KCOL.EQ.JSGCOL.OR.KCOL.EQ.2) THEN
0114 JCOL=4+(1-JSGCOL)/2
0115 JCOLR=9-JCOL
0116
0117
0118 NEVOL=NEVOL+1
0119 IPOS(NEVOL)=I
0120 IFLG(NEVOL)=0
0121 ISCOL(NEVOL)=JSGCOL
0122 ISCHG(NEVOL)=0
0123 PTSCA(NEVOL)=PTPART(IP)
0124
0125
0126 IF(MODE.LE.1) THEN
0127
0128 IROLD=I
0129 IRNEW=K(IROLD,JCOL)/MSTU(5)
0130 MOVE=1
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144 130 IF(IRNEW.EQ.0) THEN
0145 NEVOL=NEVOL-1
0146 GOTO 160
0147
0148
0149 ELSEIF(MSTP(72).LE.1.AND.IRNEW.GT.MINT(53)) THEN
0150 NEVOL=NEVOL-1
0151 GOTO 160
0152
0153
0154 ELSEIF(K(IRNEW,2).EQ.88) THEN
0155 NEVOL=NEVOL-1
0156 GOTO 160
0157
0158
0159 ELSEIF(MODE.EQ.1.AND.IRNEW.GT.MINT(84)+2.AND.
0160 & IRNEW.LE.NPARTD) THEN
0161
0162
0163 ELSEIF(MOVE.EQ.1.AND.K(IRNEW,JCOLR)/MSTU(5).EQ.IROLD)
0164 & THEN
0165 IF(K(IRNEW,1).LT.10) THEN
0166
0167
0168 ELSE
0169 IROLD=IRNEW
0170 IRNEW=MOD(K(IRNEW,JCOLR),MSTU(5))
0171 MOVE=2
0172 GOTO 130
0173 ENDIF
0174
0175
0176 ELSEIF(MOVE.EQ.1.AND.MOD(K(IRNEW,JCOL),MSTU(5)).EQ.
0177 & IROLD) THEN
0178 IROLD=IRNEW
0179 IRNEW=K(IROLD,JCOL)/MSTU(5)
0180 GOTO 130
0181
0182
0183 ELSEIF(MOVE.EQ.2.AND.K(IRNEW,JCOLR)/MSTU(5).EQ.IROLD)
0184 & THEN
0185 IF(K(IRNEW,1).LT.10) THEN
0186
0187
0188 ELSE
0189 IROLD=IRNEW
0190 IRNEW=MOD(K(IRNEW,JCOLR),MSTU(5))
0191 MOVE=2
0192 GOTO 130
0193 ENDIF
0194
0195
0196 ELSEIF(MOVE.EQ.2.AND.MOD(K(IRNEW,JCOL),MSTU(5)).EQ.
0197 & IROLD) THEN
0198 IF(K(IRNEW,1).LT.10) THEN
0199 ELSE
0200 IROLD=IRNEW
0201 IRNEW=K(IRNEW,JCOL)/MSTU(5)
0202 MOVE=1
0203 GOTO 130
0204 ENDIF
0205 ENDIF
0206
0207
0208 ELSE
0209 IROLD=I
0210 IRNEW=K(IROLD,JCOL)/MSTU(5)
0211 140 IF(K(IRNEW,JCOLR)/MSTU(5).NE.IROLD) THEN
0212
0213 IF(K(IRNEW,2).EQ.K(IROLD,2)) THEN
0214 IROLD=IRNEW
0215 IRNEW=K(IROLD,JCOL)/MSTU(5)
0216 GOTO 140
0217
0218 ELSE
0219 IF(IROLD.GT.1.AND.K(IROLD-1,3).EQ.K(IROLD,3)) THEN
0220 IRNEW=IROLD-1
0221 ELSEIF(IROLD.LT.N.AND.K(IROLD+1,3).EQ.K(IROLD,3))
0222 & THEN
0223 IRNEW=IROLD+1
0224
0225 ELSE
0226 ISTEP=MAX(1,MIN(NPART-1,INT(1D0+(NPART-1)*PYR(0))))
0227 IRNEW=IPART(1+MOD(IP+ISTEP-1,NPART))
0228 ENDIF
0229 ENDIF
0230 ENDIF
0231
0232 150 IF(K(IRNEW,1).GT.10) THEN
0233 IRNEW=MOD(K(IRNEW,JCOLR),MSTU(5))
0234 GOTO 150
0235 ENDIF
0236 ENDIF
0237
0238
0239 IREC(NEVOL)=IRNEW
0240 ENDIF
0241 160 CONTINUE
0242
0243
0244 IF((MSTJ(41).EQ.2.OR.MSTJ(41).EQ.12).AND.KCHA.NE.0.AND.
0245 & IABS(K(I,2)).LE.18) THEN
0246
0247
0248 NEVOL=NEVOL+1
0249 IPOS(NEVOL)=I
0250 IFLG(NEVOL)=0
0251 ISCOL(NEVOL)=0
0252 ISCHG(NEVOL)=KCHA
0253 PTSCA(NEVOL)=PTPART(IP)
0254
0255
0256
0257 IF(MODE.LE.1) THEN
0258 IRNEW=0
0259 PM2MIN=VINT(2)
0260 DO 170 IP2=1,NPART+N-MINT(53)
0261 IF(IP2.EQ.IP) GOTO 170
0262 IF(IP2.LE.NPART) THEN
0263 I2=IPART(IP2)
0264 IF(MODE.NE.1.OR.I2.GT.NPARTD) THEN
0265 IF(K(I2,1).GT.10) GOTO 170
0266 ELSEIF(K(I2,3).GT.MINT(84)) THEN
0267 IF(K(I2,3).GT.MINT(84)+2) GOTO 170
0268 ELSE
0269 IF(K(K(I2,3),3).GT.MINT(83)+6) GOTO 170
0270 ENDIF
0271 ELSE
0272 I2=MINT(53)+IP2-NPART
0273 ENDIF
0274 IF(KCHG(PYCOMP(K(I2,2)),1).EQ.0) GOTO 170
0275 PM2INV=(P(I,4)+P(I2,4))**2-(P(I,1)+P(I2,1))**2-
0276 & (P(I,2)+P(I2,2))**2-(P(I,3)+P(I2,3))**2
0277 IF(PM2INV.LT.PM2MIN) THEN
0278 IRNEW=I2
0279 PM2MIN=PM2INV
0280 ENDIF
0281 170 CONTINUE
0282 IF(IRNEW.EQ.0) THEN
0283 NEVOL=NEVOL-1
0284 GOTO 210
0285 ENDIF
0286
0287
0288 ELSE
0289 IROLD=I
0290
0291 180 IF(K(IROLD,3).GT.0.AND.K(K(IROLD,3),2).EQ.K(IROLD,2)) THEN
0292 IROLD=K(IROLD,3)
0293 GOTO 180
0294 ENDIF
0295 IF(IROLD.GT.1.AND.K(IROLD-1,3).EQ.K(IROLD,3)) THEN
0296 IRNEW=IROLD-1
0297 ELSEIF(IROLD.LT.N.AND.K(IROLD+1,3).EQ.K(IROLD,3)) THEN
0298 IRNEW=IROLD+1
0299
0300 ELSE
0301 ISTEP=MAX(1,MIN(NPART-1,INT(1D0+(NPART-1)*PYR(0))))
0302 IRNEW=IPART(1+MOD(IP+ISTEP-1,NPART))
0303 ENDIF
0304
0305 190 IF(K(IRNEW,1).GT.10) THEN
0306 DO 200 IR=IRNEW+1,N
0307 IF(K(IR,3).EQ.IRNEW.AND.K(IR,2).EQ.K(IRNEW,2)) THEN
0308 IRNEW=IR
0309 GOTO 190
0310 ENDIF
0311 200 CONTINUE
0312 ENDIF
0313 ENDIF
0314 IREC(NEVOL)=IRNEW
0315 ENDIF
0316
0317
0318 210 CONTINUE
0319 IF(NEVOL.LE.0) RETURN
0320 PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2))
0321
0322
0323 M3JC=0
0324 ALPHA=0.5D0
0325 NMESYS=0
0326 IF(MSTJ(47).GE.1) THEN
0327
0328
0329 KFSRCE=0
0330 IPART1=K(IPART(1),3)
0331 IPART2=K(IPART(2),3)
0332 220 IF(IPART1.EQ.IPART2.AND.IPART1.GT.0) THEN
0333 KFSRCE=IABS(K(IPART1,2))
0334 ELSEIF(IPART1.GT.IPART2.AND.IPART2.GT.0) THEN
0335 IPART1=K(IPART1,3)
0336 GOTO 220
0337 ELSEIF(IPART2.GT.IPART1.AND.IPART1.GT.0) THEN
0338 IPART2=K(IPART2,3)
0339 GOTO 220
0340 ENDIF
0341 ITYPES=0
0342 IF(KFSRCE.GE.1.AND.KFSRCE.LE.8) ITYPES=1
0343 IF(KFSRCE.GE.KSUSY1+1.AND.KFSRCE.LE.KSUSY1+8) ITYPES=2
0344 IF(KFSRCE.GE.KSUSY2+1.AND.KFSRCE.LE.KSUSY2+8) ITYPES=2
0345 IF(KFSRCE.GE.21.AND.KFSRCE.LE.24) ITYPES=3
0346 IF(KFSRCE.GE.32.AND.KFSRCE.LE.34) ITYPES=3
0347 IF(KFSRCE.EQ.25.OR.(KFSRCE.GE.35.AND.KFSRCE.LE.37)) ITYPES=4
0348 IF(KFSRCE.GE.KSUSY1+22.AND.KFSRCE.LE.KSUSY1+37) ITYPES=5
0349 IF(KFSRCE.EQ.KSUSY1+21) ITYPES=6
0350
0351
0352 KFLA1=IABS(K(IPART(1),2))
0353 ITYPE1=0
0354 IF(KFLA1.GE.1.AND.KFLA1.LE.8) ITYPE1=1
0355 IF(KFLA1.GE.KSUSY1+1.AND.KFLA1.LE.KSUSY1+8) ITYPE1=2
0356 IF(KFLA1.GE.KSUSY2+1.AND.KFLA1.LE.KSUSY2+8) ITYPE1=2
0357 IF(KFLA1.GE.21.AND.KFLA1.LE.24) ITYPE1=3
0358 IF(KFLA1.GE.32.AND.KFLA1.LE.34) ITYPE1=3
0359 IF(KFLA1.EQ.25.OR.(KFLA1.GE.35.AND.KFLA1.LE.37)) ITYPE1=4
0360 IF(KFLA1.GE.KSUSY1+22.AND.KFLA1.LE.KSUSY1+37) ITYPE1=5
0361 IF(KFLA1.EQ.KSUSY1+21) ITYPE1=6
0362 KFLA2=IABS(K(IPART(2),2))
0363 ITYPE2=0
0364 IF(KFLA2.GE.1.AND.KFLA2.LE.8) ITYPE2=1
0365 IF(KFLA2.GE.KSUSY1+1.AND.KFLA2.LE.KSUSY1+8) ITYPE2=2
0366 IF(KFLA2.GE.KSUSY2+1.AND.KFLA2.LE.KSUSY2+8) ITYPE2=2
0367 IF(KFLA2.GE.21.AND.KFLA2.LE.24) ITYPE2=3
0368 IF(KFLA2.GE.32.AND.KFLA2.LE.34) ITYPE2=3
0369 IF(KFLA2.EQ.25.OR.(KFLA2.GE.35.AND.KFLA2.LE.37)) ITYPE2=4
0370 IF(KFLA2.GE.KSUSY1+22.AND.KFLA2.LE.KSUSY1+37) ITYPE2=5
0371 IF(KFLA2.EQ.KSUSY1+21) ITYPE2=6
0372
0373
0374 ITYPMN=MIN(ITYPE1,ITYPE2)
0375 ITYPMX=MAX(ITYPE1,ITYPE2)
0376 IORD=1
0377 IF(ITYPE1.GT.ITYPE2) IORD=2
0378 IGLUI=0
0379 IF(ITYPE1.EQ.6.OR.ITYPE2.EQ.6) IGLUI=1
0380
0381
0382 NPRIM=0
0383 DO 230 I=1,N
0384 IF(K(I,3).EQ.IPART1.AND.K(I,2).NE.K(IPART1,2)) NPRIM=NPRIM+1
0385 230 CONTINUE
0386 IF(NPRIM.NE.2) THEN
0387
0388
0389 ELSEIF(MSTJ(38).NE.0) THEN
0390 M3JC=MSTJ(38)
0391 ALPHA=PARJ(80)
0392 MSTJ(38)=0
0393 ELSEIF(MSTJ(47).GE.6) THEN
0394 M3JC=MSTJ(47)
0395 ELSE
0396 ICLASS=1
0397 ICOMBI=4
0398
0399
0400 IF(ITYPMN.EQ.1.AND.ITYPMX.EQ.1.AND.(ITYPES.EQ.0.OR.
0401 & ITYPES.EQ.3)) THEN
0402 ICLASS=2
0403 IF(KFSRCE.EQ.21.OR.KFSRCE.EQ.22) THEN
0404 ICOMBI=1
0405 ELSEIF(KFSRCE.EQ.23.OR.(KFSRCE.EQ.0.AND.
0406 & K(IPART(1),2)+K(IPART(2),2).EQ.0)) THEN
0407
0408 EI=-1D0
0409 IF(KFSRCE.EQ.23) THEN
0410 IANNFL=IPART1
0411 IF(K(IANNFL,2).EQ.23) IANNFL=K(IANNFL,3)
0412 IF(IANNFL.GT.0) THEN
0413 IF(K(IANNFL,2).EQ.23) IANNFL=K(IANNFL,3)
0414 ENDIF
0415 IF(IANNFL.NE.0) THEN
0416 KANNFL=IABS(K(IANNFL,2))
0417 IF(KANNFL.GE.1.AND.KANNFL.LE.18) EI=KCHG(KANNFL,1)/3D0
0418 ENDIF
0419 ENDIF
0420 AI=SIGN(1D0,EI+0.1D0)
0421 VI=AI-4D0*EI*PARU(102)
0422 EF=KCHG(KFLA1,1)/3D0
0423 AF=SIGN(1D0,EF+0.1D0)
0424 VF=AF-4D0*EF*PARU(102)
0425 XWC=1D0/(16D0*PARU(102)*(1D0-PARU(102)))
0426 SH=PSUM(5)**2
0427 SQMZ=PMAS(23,1)**2
0428 SQWZ=PSUM(5)*PMAS(23,2)
0429 SBWZ=1D0/((SH-SQMZ)**2+SQWZ**2)
0430 VECT=EI**2*EF**2+2D0*EI*VI*EF*VF*XWC*SH*(SH-SQMZ)*SBWZ+
0431 & (VI**2+AI**2)*VF**2*XWC**2*SH**2*SBWZ
0432 AXIV=(VI**2+AI**2)*AF**2*XWC**2*SH**2*SBWZ
0433 ICOMBI=3
0434 ALPHA=VECT/(VECT+AXIV)
0435 ELSEIF(KFSRCE.EQ.24.OR.KFSRCE.EQ.0) THEN
0436 ICOMBI=4
0437 ENDIF
0438
0439 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.1.AND.ITYPES.EQ.5) THEN
0440 ICLASS=2
0441 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.3.AND.(ITYPES.EQ.0.OR.
0442 & ITYPES.EQ.1)) THEN
0443 ICLASS=3
0444
0445
0446 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.1.AND.ITYPES.EQ.4) THEN
0447 ICLASS=4
0448 IF(KFSRCE.EQ.25.OR.KFSRCE.EQ.35.OR.KFSRCE.EQ.37) THEN
0449 ICOMBI=1
0450 ELSEIF(KFSRCE.EQ.36) THEN
0451 ICOMBI=2
0452 ENDIF
0453 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.4.AND.(ITYPES.EQ.0.OR.
0454 & ITYPES.EQ.1)) THEN
0455 ICLASS=5
0456
0457
0458 ELSEIF(ITYPMN.EQ.2.AND.ITYPMX.EQ.2.AND.(ITYPES.EQ.0.OR.
0459 & ITYPES.EQ.3)) THEN
0460 ICLASS=6
0461 ELSEIF(ITYPMN.EQ.2.AND.ITYPMX.EQ.3.AND.(ITYPES.EQ.0.OR.
0462 & ITYPES.EQ.2)) THEN
0463 ICLASS=7
0464 ELSEIF(ITYPMN.EQ.2.AND.ITYPMX.EQ.2.AND.ITYPES.EQ.4) THEN
0465 ICLASS=8
0466 ELSEIF(ITYPMN.EQ.2.AND.ITYPMX.EQ.4.AND.(ITYPES.EQ.0.OR.
0467 & ITYPES.EQ.2)) THEN
0468 ICLASS=9
0469
0470
0471 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.2.AND.(ITYPES.EQ.0.OR.
0472 & ITYPES.EQ.5)) THEN
0473 ICLASS=10
0474 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.5.AND.(ITYPES.EQ.0.OR.
0475 & ITYPES.EQ.2)) THEN
0476 ICLASS=11
0477 ELSEIF(ITYPMN.EQ.2.AND.ITYPMX.EQ.5.AND.(ITYPES.EQ.0.OR.
0478 & ITYPES.EQ.1)) THEN
0479 ICLASS=12
0480
0481
0482 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.2.AND.ITYPES.EQ.6) THEN
0483 ICLASS=13
0484 ELSEIF(ITYPMN.EQ.1.AND.ITYPMX.EQ.6.AND.(ITYPES.EQ.0.OR.
0485 & ITYPES.EQ.2)) THEN
0486 ICLASS=14
0487 ELSEIF(ITYPMN.EQ.2.AND.ITYPMX.EQ.6.AND.(ITYPES.EQ.0.OR.
0488 & ITYPES.EQ.1)) THEN
0489 ICLASS=15
0490
0491
0492 ELSEIF(ITYPMN.EQ.6.AND.ITYPMX.EQ.6.AND.ITYPES.EQ.0) THEN
0493 ICLASS=16
0494 ENDIF
0495 M3JC=5*ICLASS+ICOMBI
0496 ENDIF
0497
0498
0499 IF(M3JC.NE.0) THEN
0500 NMESYS=1
0501 MESYS(NMESYS,0)=M3JC
0502 MESYS(NMESYS,1)=IPART(1)
0503 MESYS(NMESYS,2)=IPART(2)
0504 ENDIF
0505
0506
0507 IF(KFLA1.LE.18.AND.KFLA2.LE.18) THEN
0508 NMESYS=NMESYS+1
0509 MESYS(NMESYS,0)=101
0510 IF(K(IPART(1),2)+K(IPART(2),2).EQ.0) MESYS(NMESYS,0)=102
0511 MESYS(NMESYS,1)=IPART(1)
0512 MESYS(NMESYS,2)=IPART(2)
0513 ENDIF
0514
0515
0516 DO 270 I1=1,N
0517 IF(K(I1,1).GT.10.OR.IABS(K(I1,2)).GT.18) GOTO 270
0518 I1M=K(I1,3)
0519 240 IF(I1M.GT.0.AND.K(I1M,2).EQ.K(I1,2)) THEN
0520 I1M=K(I1M,3)
0521 GOTO 240
0522 ENDIF
0523
0524 IF(I1M.EQ.0) GOTO 270
0525 IF(K(I1M,2).NE.21.AND.K(I1M,2).NE.22) GOTO 270
0526 DO 260 I2=I1+1,N
0527 IF(K(I2,1).GT.10.OR.K(I2,2)+K(I1,2).NE.0) GOTO 260
0528 I2M=K(I2,3)
0529 250 IF(I2M.GT.0.AND.K(I2M,2).EQ.K(I2,2)) THEN
0530 I2M=K(I2M,3)
0531 GOTO 250
0532 ENDIF
0533 IF(I1M.EQ.I2M.AND.I1M.GT.0) THEN
0534 NMESYS=NMESYS+1
0535 MESYS(NMESYS,0)=66
0536 MESYS(NMESYS,1)=I1
0537 MESYS(NMESYS,2)=I2
0538 NMESYS=NMESYS+1
0539 MESYS(NMESYS,0)=102
0540 MESYS(NMESYS,1)=I1
0541 MESYS(NMESYS,2)=I2
0542 ENDIF
0543 260 CONTINUE
0544 270 CONTINUE
0545 ENDIF
0546
0547
0548 NGEN=0
0549 280 NGEN=NGEN+1
0550
0551
0552 290 IMX=0
0553 PT2MX=0D0
0554 DO 360 IEVOL=1,NEVOL
0555 IF(IFLG(IEVOL).EQ.0) THEN
0556
0557
0558 I=IPOS(IEVOL)
0559 IR=IREC(IEVOL)
0560 SHT=SHAT(I,IR)
0561 PM2I=P(I,5)**2
0562 PM2R=P(IR,5)**2
0563
0564
0565 SHTCOR=(SQRT(SHT)-P(IR,5))**2-PM2I
0566 PT2=MIN(PT2CMX,0.25D0*SHTCOR,PTSCA(IEVOL)**2)
0567
0568
0569 IF(ISCOL(IEVOL).NE.0) THEN
0570
0571
0572 IF(MSTP(72).EQ.0) THEN
0573 DO 300 IPRT=1,NPARTS
0574 IF(IR.EQ.IPART(IPRT)) PT2=MIN(PT2,PTPART(IPRT)**2)
0575 300 CONTINUE
0576 ENDIF
0577
0578
0579 IF(PT2.LT.PT2CMN) THEN
0580 IFLG(IEVOL)=-1
0581 GOTO 360
0582 ENDIF
0583
0584
0585 IMESYS=0
0586 DO 310 IME=1,NMESYS
0587 IF((I.EQ.MESYS(IME,1).OR.I.EQ.MESYS(IME,2)).AND.
0588 & MESYS(IME,0).LT.100) IMESYS=IME
0589 310 CONTINUE
0590
0591
0592 MOCT=0
0593 IF(K(I,2).EQ.21) MOCT=1
0594 IF(K(I,2).EQ.KSUSY1+21) MOCT=2
0595
0596
0597
0598 WTPSGL=2D0
0599 COLFAC=4D0/3D0
0600 IF(MOCT.GE.1) COLFAC=3D0/2D0
0601 IF(IGLUI.EQ.1.AND.IMESYS.EQ.1.AND.MOCT.EQ.0) COLFAC=3D0
0602 WTPSQQ=0.5D0*0.5D0*NFLAV
0603
0604
0605 320 IZRG=1
0606 PT2MNE=PT2CMN
0607 B0=27D0/6D0
0608 ALAMS=ALAM3S
0609 IF(PT2.GT.1.01D0*PMCS) THEN
0610 IZRG=2
0611 PT2MNE=PMCS
0612 B0=25D0/6D0
0613 ALAMS=ALAM4S
0614 ENDIF
0615 IF(PT2.GT.1.01D0*PMBS) THEN
0616 IZRG=3
0617 PT2MNE=PMBS
0618 B0=23D0/6D0
0619 ALAMS=ALAM5S
0620 ENDIF
0621 ZMNCUT=0.5D0-SQRT(MAX(0D0,0.25D0-PT2MNE/SHTCOR))
0622 IF(ZMNCUT.LT.1D-8) ZMNCUT=PT2MNE/SHTCOR
0623
0624
0625 EVEMGL=WTPSGL*COLFAC*LOG(1D0/ZMNCUT-1D0)/B0
0626 EVCOEF=EVEMGL
0627 IF(MOCT.EQ.1) THEN
0628 EVEMQQ=WTPSQQ*(1D0-2D0*ZMNCUT)/B0
0629 EVCOEF=EVCOEF+EVEMQQ
0630 ENDIF
0631
0632
0633 330 PT2=ALAMS*(PT2/ALAMS)**(PYR(0)**(1D0/EVCOEF))
0634
0635
0636 IF(IZRG.EQ.3.AND.PT2.LT.PMBS) THEN
0637 PT2=PMBS
0638 GOTO 320
0639 ENDIF
0640 IF(IZRG.EQ.2.AND.PT2.LT.PMCS) THEN
0641 PT2=PMCS
0642 GOTO 320
0643 ENDIF
0644
0645
0646 IF(PT2.LT.PT2CMN) THEN
0647 IFLG(IEVOL)=-1
0648 GOTO 360
0649 ENDIF
0650
0651
0652 IFLAG=1
0653 IF(MOCT.EQ.1.AND.EVEMGL.LT.PYR(0)*EVCOEF) IFLAG=2
0654
0655
0656 IF(IFLAG.EQ.1) THEN
0657 Z=1D0-ZMNCUT*(1D0/ZMNCUT-1D0)**PYR(0)
0658 ELSE
0659 Z=ZMNCUT+PYR(0)*(1D0-2D0*ZMNCUT)
0660 ENDIF
0661
0662
0663 ZMNNOW=0.5D0-SQRT(MAX(0D0,0.25D0-PT2/SHTCOR))
0664 IF(ZMNNOW.LT.1D-8) ZMNNOW=PT2/SHTCOR
0665 IF(Z.LE.ZMNNOW.OR.Z.GE.1D0-ZMNNOW) GOTO 330
0666 PM2=PM2I+PT2/(Z*(1D0-Z))
0667 IF(Z*(1D0-Z).LE.PM2*SHT/(SHT+PM2-PM2R)**2) GOTO 330
0668
0669
0670 IF(IMESYS.GT.0) THEN
0671
0672
0673 ELSEIF(IFLAG.EQ.1.AND.MOCT.NE.1) THEN
0674 IF(1D0+Z**2.LT.WTPSGL*PYR(0)) GOTO 330
0675
0676
0677 ELSEIF(IFLAG.EQ.1) THEN
0678 IF(1D0+Z**3.LT.WTPSGL*PYR(0)) GOTO 330
0679
0680
0681 ELSE
0682 KFQ=MIN(5,1+INT(NFLAV*PYR(0)))
0683 PMQ=PMAS(KFQ,1)
0684 ROOTQQ=SQRT(MAX(0D0,1D0-4D0*PMQ**2/PM2))
0685 WTME=ROOTQQ*(Z**2+(1D0-Z)**2)
0686 IF(WTME.LT.PYR(0)) GOTO 330
0687 IFLAG=10+KFQ
0688 ENDIF
0689
0690
0691 ELSEIF(ISCHG(IEVOL).NE.0) THEN
0692
0693
0694 PT2EMN=PT0EQ**2
0695 IF(IABS(K(I,2)).GT.10) PT2EMN=PT0EL**2
0696 IF(PT2.LT.PT2EMN) THEN
0697 IFLG(IEVOL)=-1
0698 GOTO 360
0699 ENDIF
0700
0701
0702 IMESYS=0
0703 DO 340 IME=1,NMESYS
0704 IF((I.EQ.MESYS(IME,1).OR.I.EQ.MESYS(IME,2)).AND.
0705 & MESYS(IME,0).GT.100) IMESYS=IME
0706 340 CONTINUE
0707
0708
0709 CHG=ISCHG(IEVOL)/3D0
0710 WTPSGA=2D0
0711
0712
0713 ZMNCUT=0.5D0-SQRT(MAX(0D0,0.25D0-PT2EMN/SHTCOR))
0714 IF(ZMNCUT.LT.1D-8) ZMNCUT=PT2EMN/SHTCOR
0715 EVCOEF=AEM2PI*CHG**2*WTPSGA*LOG(1D0/ZMNCUT-1D0)
0716
0717
0718 350 PT2=PT2*PYR(0)**(1D0/EVCOEF)
0719
0720
0721 IF(PT2.LT.PT2EMN) THEN
0722 IFLG(IEVOL)=-1
0723 GOTO 360
0724 ENDIF
0725
0726
0727 Z=1D0-ZMNCUT*(1D0/ZMNCUT-1D0)**PYR(0)
0728
0729
0730 ZMNNOW=0.5D0-SQRT(MAX(0D0,0.25D0-PT2/SHTCOR))
0731 IF(ZMNNOW.LT.1D-8) ZMNNOW=PT2/SHTCOR
0732 IF(Z.LE.ZMNNOW.OR.Z.GE.1D0-ZMNNOW) GOTO 350
0733 PM2=PM2I+PT2/(Z*(1D0-Z))
0734 IF(Z*(1D0-Z).LE.PM2*SHT/(SHT+PM2-PM2R)**2) GOTO 350
0735
0736
0737 IF(IMESYS.EQ.0) THEN
0738 IF(1D0+Z**2.LT.WTPSGA*PYR(0)) GOTO 350
0739 ENDIF
0740 IFLAG=3
0741 ENDIF
0742
0743
0744 IFLG(IEVOL)=IFLAG
0745 IMESAV(IEVOL)=IMESYS
0746 PT2SAV(IEVOL)=PT2
0747 ZSAV(IEVOL)=Z
0748 SHTSAV(IEVOL)=SHT
0749 ENDIF
0750
0751
0752 IF(IFLG(IEVOL).GE.1.AND.PT2SAV(IEVOL).GT.PT2MX) THEN
0753 IMX=IEVOL
0754 PT2MX=PT2SAV(IEVOL)
0755 ENDIF
0756 360 CONTINUE
0757
0758
0759 IF(IMX.EQ.0) GOTO 480
0760
0761
0762 I=IPOS(IMX)
0763 IR=IREC(IMX)
0764 KCOL=ISCOL(IMX)
0765 KCHA=ISCHG(IMX)
0766 IMESYS=IMESAV(IMX)
0767 PT2=PT2SAV(IMX)
0768 Z=ZSAV(IMX)
0769 SHT=SHTSAV(IMX)
0770 PM2I=P(I,5)**2
0771 PM2R=P(IR,5)**2
0772 PM2=PM2I+PT2/(Z*(1D0-Z))
0773
0774
0775 MOCT=0
0776 IF(K(I,2).EQ.21) MOCT=1
0777 IF(K(I,2).EQ.KSUSY1+21) MOCT=2
0778
0779
0780 KFQ=0
0781 IF(IFLG(IMX).GT.10) THEN
0782 KFQ=IFLG(IMX)-10
0783 PMQ=PMAS(KFQ,1)
0784 ROOTQQ=SQRT(MAX(0D0,1D0-4D0*PMQ**2/PM2))
0785 ENDIF
0786
0787
0788 ASYPOL=0D0
0789 IF(MOCT.EQ.1.AND.MOD(MSTJ(46),2).EQ.1) THEN
0790
0791 KFGM=0
0792 IM=I
0793 370 IF(K(IM,3).NE.K(IM-1,3).AND.K(IM,3).NE.K(IM+1,3).AND.
0794 & K(IM,3).GT.0) THEN
0795 IM=K(IM,3)
0796 IF(IM.GT.MINT(84)) GOTO 370
0797 ENDIF
0798 IGM=K(IM,3)
0799 IF(IGM.GT.MINT(84).AND.IGM.LT.IM.AND.IM.LE.I)
0800 & KFGM=IABS(K(IGM,2))
0801
0802 IAU=IM+1
0803 IF(IAU.GT.N-3.OR.K(IAU,3).NE.IGM) IAU=IM-1
0804 IF(KFGM.NE.0.AND.(KFGM.LE.6.OR.KFGM.EQ.21)) THEN
0805 ZOLD=P(IM,4)/(P(IM,4)+P(IAU,4))
0806
0807 IF(KFGM.LE.6) THEN
0808 ASYPOL=2D0*(1D0-ZOLD)/(1D0+(1D0-ZOLD)**2)
0809 ELSE
0810 ASYPOL=((1D0-ZOLD)/(1D0-ZOLD*(1D0-ZOLD)))**2
0811 ENDIF
0812
0813 IF(KFQ.EQ.0) THEN
0814 ASYPOL=ASYPOL*(Z*(1D0-Z)/(1D0-Z*(1D0-Z)))**2
0815 ELSE
0816 ASYPOL=-ASYPOL*2D0*Z*(1D0-Z)/(1D0-2D0*Z*(1D0-Z))
0817 ENDIF
0818 ENDIF
0819 ENDIF
0820
0821
0822 INEW=N+1
0823 IGNEW=N+2
0824 IRNEW=N+3
0825 N=N+3
0826
0827
0828 K(INEW,1)=K(I,1)
0829 K(IGNEW,1)=3
0830 IF(KCHA.NE.0) K(IGNEW,1)=1
0831 K(IRNEW,1)=K(IR,1)
0832 IF(KFQ.EQ.0) THEN
0833 K(INEW,2)=K(I,2)
0834 K(IGNEW,2)=21
0835 IF(KCHA.NE.0) K(IGNEW,2)=22
0836 ELSE
0837 K(INEW,2)=-ISIGN(KFQ,KCOL)
0838 K(IGNEW,2)=-K(INEW,2)
0839 ENDIF
0840 K(IRNEW,2)=K(IR,2)
0841 K(INEW,3)=I
0842 K(IGNEW,3)=I
0843 K(IRNEW,3)=IR
0844
0845
0846 DO 380 J=1,5
0847 P(INEW,J)=P(I,J)
0848 P(IGNEW,J)=0D0
0849 P(IRNEW,J)=P(IR,J)
0850 380 CONTINUE
0851 BETAX=(P(INEW,1)+P(IRNEW,1))/(P(INEW,4)+P(IRNEW,4))
0852 BETAY=(P(INEW,2)+P(IRNEW,2))/(P(INEW,4)+P(IRNEW,4))
0853 BETAZ=(P(INEW,3)+P(IRNEW,3))/(P(INEW,4)+P(IRNEW,4))
0854 CALL PYROBO(INEW,IRNEW,0D0,0D0,-BETAX,-BETAY,-BETAZ)
0855 PHI=PYANGL(P(INEW,1),P(INEW,2))
0856 THETA=PYANGL(P(INEW,3),SQRT(P(INEW,1)**2+P(INEW,2)**2))
0857
0858
0859 DO 390 J=1,4
0860 P(INEW,J)=0D0
0861 P(IRNEW,J)=0D0
0862 390 CONTINUE
0863 PEM=0.5D0*(SHT+PM2-PM2R)/SQRT(SHT)
0864 PZM=0.5D0*SQRT(MAX(0D0,(SHT-PM2-PM2R)**2-4D0*PM2*PM2R)/SHT)
0865 PT2COR=PM2*(PEM**2*Z*(1D0-Z)-0.25D0*PM2)/PZM**2
0866 PTCOR=SQRT(MAX(0D0,PT2COR))
0867 PZN=(PEM**2*Z-0.5D0*PM2)/PZM
0868 PZG=(PEM**2*(1D0-Z)-0.5D0*PM2)/PZM
0869
0870 IF(MOCT.NE.1) THEN
0871 PTCOR=(1D0-PM2I/PM2)*PTCOR
0872 PZN=PZN+PM2I*PZG/PM2
0873 PZG=(1D0-PM2I/PM2)*PZG
0874
0875 ELSEIF(KFQ.NE.0) THEN
0876 P(INEW,5)=PMQ
0877 P(IGNEW,5)=PMQ
0878 PTCOR=ROOTQQ*PTCOR
0879 PZN=0.5D0*((1D0+ROOTQQ)*PZN+(1D0-ROOTQQ)*PZG)
0880 PZG=PZM-PZN
0881 ENDIF
0882
0883
0884 400 PHIROT=PARU(2)*PYR(0)
0885 P(INEW,1)=PTCOR*COS(PHIROT)
0886 P(INEW,2)=PTCOR*SIN(PHIROT)
0887 P(INEW,3)=PZN
0888 P(INEW,4)=SQRT(PTCOR**2+P(INEW,3)**2+P(INEW,5)**2)
0889 P(IGNEW,1)=-P(INEW,1)
0890 P(IGNEW,2)=-P(INEW,2)
0891 P(IGNEW,3)=PZG
0892 P(IGNEW,4)=SQRT(PTCOR**2+P(IGNEW,3)**2+P(IGNEW,5)**2)
0893 P(IRNEW,1)=0D0
0894 P(IRNEW,2)=0D0
0895 P(IRNEW,3)=-PZM
0896 P(IRNEW,4)=0.5D0*(SHT+PM2R-PM2)/SQRT(SHT)
0897
0898
0899 CALL PYROBO(INEW,IRNEW,THETA,PHI,BETAX,BETAY,BETAZ)
0900
0901
0902 IF(ABS(ASYPOL).GT.1D-3) THEN
0903 DO 410 J=1,3
0904 DPT(1,J)=P(I,J)
0905 DPT(2,J)=P(IAU,J)
0906 DPT(3,J)=P(INEW,J)
0907 410 CONTINUE
0908 DPMA=DPT(1,1)*DPT(2,1)+DPT(1,2)*DPT(2,2)+DPT(1,3)*DPT(2,3)
0909 DPMD=DPT(1,1)*DPT(3,1)+DPT(1,2)*DPT(3,2)+DPT(1,3)*DPT(3,3)
0910 DPMM=DPT(1,1)**2+DPT(1,2)**2+DPT(1,3)**2
0911 DO 420 J=1,3
0912 DPT(4,J)=DPT(2,J)-DPMA*DPT(1,J)/MAX(1D-10,DPMM)
0913 DPT(5,J)=DPT(3,J)-DPMD*DPT(1,J)/MAX(1D-10,DPMM)
0914 420 CONTINUE
0915 DPT(4,4)=SQRT(DPT(4,1)**2+DPT(4,2)**2+DPT(4,3)**2)
0916 DPT(5,4)=SQRT(DPT(5,1)**2+DPT(5,2)**2+DPT(5,3)**2)
0917 IF(MIN(DPT(4,4),DPT(5,4)).GT.0.1D0*PARJ(82)) THEN
0918 CAD=(DPT(4,1)*DPT(5,1)+DPT(4,2)*DPT(5,2)+
0919 & DPT(4,3)*DPT(5,3))/(DPT(4,4)*DPT(5,4))
0920 IF(1D0+ASYPOL*(2D0*CAD**2-1D0).LT.PYR(0)*(1D0+ABS(ASYPOL)))
0921 & GOTO 400
0922 ENDIF
0923 ENDIF
0924
0925
0926 IF(IMESYS.GT.0) THEN
0927 M3JC=MESYS(IMESYS,0)
0928
0929
0930 IRP=MESYS(IMESYS,1)
0931 IF(IRP.EQ.I) IRP=MESYS(IMESYS,2)
0932 IF(IRP.EQ.IR) IRP=IRNEW
0933 DO 430 J=1,4
0934 PSUM(J)=P(INEW,J)+P(IRP,J)+P(IGNEW,J)
0935 430 CONTINUE
0936 PSUM(5)=SQRT(MAX(0D0,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-
0937 & PSUM(3)**2))
0938 X1=2D0*(PSUM(4)*P(INEW,4)-PSUM(1)*P(INEW,1)-PSUM(2)*P(INEW,2)-
0939 & PSUM(3)*P(INEW,3))/PSUM(5)**2
0940 X2=2D0*(PSUM(4)*P(IRP,4)-PSUM(1)*P(IRP,1)-PSUM(2)*P(IRP,2)-
0941 & PSUM(3)*P(IRP,3))/PSUM(5)**2
0942 X3=2D0-X1-X2
0943 R1ME=P(INEW,5)/PSUM(5)
0944 R2ME=P(IRP,5)/PSUM(5)
0945
0946
0947 IF(M3JC.LT.100) THEN
0948
0949
0950 IF(MESYS(IMESYS,IORD).EQ.I) THEN
0951 WME=PYMAEL(M3JC,X1,X2,R1ME,R2ME,ALPHA)
0952 ELSE
0953 WME=PYMAEL(M3JC,X2,X1,R2ME,R1ME,ALPHA)
0954 ENDIF
0955
0956
0957 ISPRAD=1
0958 IF((M3JC.GE.16.AND.M3JC.LE.19).OR.(M3JC.GE.26.AND.M3JC.LE.29)
0959 & .OR.(M3JC.GE.36.AND.M3JC.LE.39).OR.(M3JC.GE.46.AND.M3JC.LE.49)
0960 & .OR.(M3JC.GE.56.AND.M3JC.LE.64)) ISPRAD=0
0961 IF(ISPRAD.EQ.1) WME=WME*MAX(1D-10,1D0+R1ME**2-R2ME**2-X1)/
0962 & MAX(1D-10,2D0-X1-X2)
0963
0964
0965 WPS=2D0/(MAX(1D-10,2D0-X1-X2)*
0966 & MAX(1D-10,1D0+R2ME**2-R1ME**2-X2))
0967 IF(IGLUI.EQ.1) WPS=(9D0/4D0)*WPS
0968
0969
0970 ELSE
0971
0972
0973 IF(M3JC.EQ.101) THEN
0974 CHG1=KCHG(PYCOMP(K(I,2)),1)*ISIGN(1,K(I,2))/3D0
0975 CHG2=KCHG(PYCOMP(K(IRP,2)),1)*ISIGN(1,K(IRP,2))/3D0
0976 WME=(CHG1*(1D0-X1)/X3-CHG2*(1D0-X2)/X3)**2*(X1**2+X2**2)
0977 WPS=2D0*(CHG1**2*(1D0-X1)/X3+CHG2**2*(1D0-X2)/X3)
0978
0979
0980 ELSE
0981 WME=PYMAEL(11,X1,X2,R1ME,R2ME,0D0)*MAX(1D-10,
0982 & 1D0+R1ME**2-R2ME**2-X1)/MAX(1D-10,2D0-X1-X2)
0983 WPS=2D0/(MAX(1D-10,2D0-X1-X2)*
0984 & MAX(1D-10,1D0+R2ME**2-R1ME**2-X2))
0985 ENDIF
0986 ENDIF
0987
0988
0989 IF(WME.LT.PYR(0)*WPS) THEN
0990 N=N-3
0991 IFLG(IMX)=0
0992 GOTO 290
0993 ENDIF
0994 ENDIF
0995
0996
0997 IF(NGEN.EQ.1) PTGEN=SQRT(PT2)
0998
0999
1000
1001
1002 K(I,1)=K(I,1)+10
1003 K(IR,1)=K(IR,1)+10
1004 DO 440 IP=1,NPART
1005 IF(IPART(IP).EQ.I) IPART(IP)=INEW
1006 IF(IPART(IP).EQ.IR) IPART(IP)=IRNEW
1007 440 CONTINUE
1008 IF(KCHA.EQ.0) THEN
1009 NPART=NPART+1
1010 IPART(NPART)=IGNEW
1011 ENDIF
1012
1013
1014
1015 K(INEW,4)=0
1016 K(IGNEW,4)=0
1017 K(INEW,5)=0
1018 K(IGNEW,5)=0
1019 JCOLP=4+(1-KCOL)/2
1020 JCOLN=9-JCOLP
1021 MCT(INEW,1)=0
1022 MCT(INEW,2)=0
1023 MCT(IGNEW,1)=0
1024 MCT(IGNEW,2)=0
1025 MCT(IRNEW,1)=0
1026 MCT(IRNEW,2)=0
1027
1028
1029 IF(IABS(KCHA).EQ.3) THEN
1030 K(I,4)=INEW
1031 K(I,5)=IGNEW
1032 ELSEIF(KCHA.NE.0) THEN
1033 IF(K(I,4).NE.0) THEN
1034 K(I,4)=K(I,4)+INEW
1035 K(INEW,4)=MSTU(5)*I
1036 MCT(INEW,1)=MCT(I,1)
1037 ENDIF
1038 IF(K(I,5).NE.0) THEN
1039 K(I,5)=K(I,5)+INEW
1040 K(INEW,5)=MSTU(5)*I
1041 MCT(INEW,2)=MCT(I,2)
1042 ENDIF
1043
1044
1045 ELSEIF(KFQ.EQ.0) THEN
1046 K(I,JCOLP)=K(I,JCOLP)+IGNEW
1047 K(IGNEW,JCOLP)=MSTU(5)*I
1048 K(INEW,JCOLP)=MSTU(5)*IGNEW
1049 K(IGNEW,JCOLN)=MSTU(5)*INEW
1050 MCT(IGNEW,JCOLP-3)=MCT(I,JCOLP-3)
1051 NCT=NCT+1
1052 MCT(INEW,JCOLP-3)=NCT
1053 MCT(IGNEW,JCOLN-3)=NCT
1054 IF(MOCT.GE.1) THEN
1055 K(I,JCOLN)=K(I,JCOLN)+INEW
1056 K(INEW,JCOLN)=MSTU(5)*I
1057 MCT(INEW,JCOLN-3)=MCT(I,JCOLN-3)
1058 ENDIF
1059
1060
1061 ELSE
1062 K(I,JCOLN)=K(I,JCOLN)+INEW
1063 K(INEW,JCOLN)=MSTU(5)*I
1064 K(I,JCOLP)=K(I,JCOLP)+IGNEW
1065 K(IGNEW,JCOLP)=MSTU(5)*I
1066 MCT(INEW,JCOLN-3)=MCT(I,JCOLN-3)
1067 MCT(IGNEW,JCOLP-3)=MCT(I,JCOLP-3)
1068 ENDIF
1069
1070
1071 IF(K(IR,4).EQ.0.AND.K(IR,5).EQ.0) THEN
1072 K(IR,4)=IRNEW
1073 K(IR,5)=IRNEW
1074 K(IRNEW,4)=0
1075 K(IRNEW,5)=0
1076
1077
1078 ELSE
1079 IF(K(IR,4).NE.0) THEN
1080 K(IR,4)=K(IR,4)+IRNEW
1081 K(IRNEW,4)=MSTU(5)*IR
1082 MCT(IRNEW,1)=MCT(IR,1)
1083 ENDIF
1084 IF(K(IR,5).NE.0) THEN
1085 K(IR,5)=K(IR,5)+IRNEW
1086 K(IRNEW,5)=MSTU(5)*IR
1087 MCT(IRNEW,2)=MCT(IR,2)
1088 ENDIF
1089 ENDIF
1090
1091
1092 DO 450 J=1,5
1093 V(INEW,J)=V(I,J)
1094 V(IGNEW,J)=V(I,J)
1095 V(IRNEW,J)=V(IR,J)
1096 450 CONTINUE
1097
1098
1099 DO 460 IEVOL=1,NEVOL
1100 IF(IPOS(IEVOL).EQ.I.AND.IREC(IEVOL).EQ.IR) THEN
1101 IPOS(IEVOL)=INEW
1102 IF(KCOL.NE.0.AND.ISCOL(IEVOL).EQ.KCOL) IPOS(IEVOL)=IGNEW
1103 IREC(IEVOL)=IRNEW
1104 IFLG(IEVOL)=0
1105 ELSEIF(IPOS(IEVOL).EQ.I) THEN
1106 IPOS(IEVOL)=INEW
1107 IFLG(IEVOL)=0
1108 ELSEIF(IPOS(IEVOL).EQ.IR.AND.IREC(IEVOL).EQ.I) THEN
1109 IPOS(IEVOL)=IRNEW
1110 IREC(IEVOL)=INEW
1111 IF(KCOL.NE.0.AND.ISCOL(IEVOL).NE.KCOL) IREC(IEVOL)=IGNEW
1112 IFLG(IEVOL)=0
1113 ELSEIF(IPOS(IEVOL).EQ.IR) THEN
1114 IPOS(IEVOL)=IRNEW
1115 IFLG(IEVOL)=0
1116 ENDIF
1117
1118 IF(IREC(IEVOL).EQ.I) THEN
1119 IREC(IEVOL)=INEW
1120 IFLG(IEVOL)=0
1121 ELSEIF(IREC(IEVOL).EQ.IR) THEN
1122 IREC(IEVOL)=IRNEW
1123 IFLG(IEVOL)=0
1124 ENDIF
1125 460 CONTINUE
1126
1127
1128 IF(KCOL.NE.0.AND.KFQ.EQ.0) THEN
1129 NEVOL=NEVOL+1
1130 IPOS(NEVOL)=INEW
1131 IREC(NEVOL)=IGNEW
1132 IFLG(NEVOL)=0
1133 ISCOL(NEVOL)=KCOL
1134 ISCHG(NEVOL)=0
1135 PTSCA(NEVOL)=SQRT(PT2)
1136 NEVOL=NEVOL+1
1137 IPOS(NEVOL)=IGNEW
1138 IREC(NEVOL)=INEW
1139 IFLG(NEVOL)=0
1140 ISCOL(NEVOL)=-KCOL
1141 ISCHG(NEVOL)=0
1142 PTSCA(NEVOL)=PTSCA(NEVOL-1)
1143 ENDIF
1144
1145
1146 DO 470 IME=1,NMESYS
1147 IF(MESYS(IME,1).EQ.I) MESYS(IME,1)=INEW
1148 IF(MESYS(IME,2).EQ.I) MESYS(IME,2)=INEW
1149 IF(MESYS(IME,1).EQ.IR) MESYS(IME,1)=IRNEW
1150 IF(MESYS(IME,2).EQ.IR) MESYS(IME,2)=IRNEW
1151 470 CONTINUE
1152 IF(KFQ.NE.0) THEN
1153 NMESYS=NMESYS+1
1154 MESYS(NMESYS,0)=66
1155 MESYS(NMESYS,1)=INEW
1156 MESYS(NMESYS,2)=IGNEW
1157 NMESYS=NMESYS+1
1158 MESYS(NMESYS,0)=102
1159 MESYS(NMESYS,1)=INEW
1160 MESYS(NMESYS,2)=IGNEW
1161 ENDIF
1162
1163
1164 MINT(353)=MINT(353)+1
1165 VINT(353)=VINT(353)+PTCOR
1166 IF (MINT(353).EQ.1) VINT(358)=PTCOR
1167
1168
1169 PT2CMX=PT2
1170 IF(NPART.LT.MAXNUR-1.AND.NEVOL.LT.2*MAXNUR-2.AND.
1171 &NMESYS.LT.MAXNUR-2.AND.N.LT.MSTU(4)-MSTU(32)-5) THEN
1172 GOTO 280
1173 ELSE
1174 CALL PYERRM(11,'(PYPTFS:) no more memory left for shower')
1175 ENDIF
1176
1177
1178 480 CONTINUE
1179
1180 RETURN
1181 END