File indexing completed on 2025-08-05 08:21:14
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 SUBROUTINE PYPTMI(MODE,PT2NOW,PT2CUT,PT2,IFAIL)
0021
0022 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0023 IMPLICIT INTEGER(I-N)
0024 INTEGER PYK,PYCHGE,PYCOMP
0025
0026 PARAMETER (MAXNUR=1000)
0027
0028 COMMON/PYPART/NPART,NPARTD,IPART(MAXNUR),PTPART(MAXNUR)
0029 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0030 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0031 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0032 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
0033 COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0034 COMMON/PYINT1/MINT(400),VINT(400)
0035 COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
0036 COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000)
0037 COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)
0038 COMMON/PYINT7/SIGT(0:6,0:6,0:5)
0039 COMMON/PYINTM/KFIVAL(2,3),NMI(2),IMI(2,800,2),NVC(2,-6:6),
0040 & XASSOC(2,-6:6,240),XPSVC(-6:6,-1:240),PVCTOT(2,-1:1),
0041 & XMI(2,240),PT2MI(240),IMISEP(0:240)
0042 COMMON/PYISMX/MIMX,JSMX,KFLAMX,KFLCMX,KFBEAM(2),NISGEN(2,240),
0043 & PT2MX,PT2AMX,ZMX,RM2CMX,Q2BMX,PHIMX
0044 COMMON/PYCTAG/NCT,MCT(4000,2)
0045
0046 DIMENSION WDTP(0:400),WDTE(0:400,0:5),XPQ(-25:25)
0047
0048 SAVE /PYPART/,/PYJETS/,/PYDAT1/,/PYDAT2/,/PYDAT3/,/PYPARS/,
0049 & /PYINT1/,/PYINT2/,/PYINT3/,/PYINT5/,/PYINT7/,/PYINTM/,
0050 & /PYISMX/,/PYCTAG/
0051 SAVE XT2FAC,SIGS
0052
0053 IFAIL=0
0054
0055 ISUB=96
0056
0057
0058
0059 IF (MODE.EQ.-1) THEN
0060
0061 PT2MI(1)=VINT(54)
0062
0063 DO 110 JS=1,2
0064 DO 100 MI=1,240
0065 IMI(JS,MI,1)=0
0066 IMI(JS,MI,2)=0
0067 100 CONTINUE
0068 NMI(JS)=1
0069 IMI(JS,1,1)=MINT(84)+JS
0070 IMI(JS,1,2)=0
0071 XMI(JS,1)=VINT(40+JS)
0072
0073 IF(MINT(18+JS).EQ.1) XMI(JS,1)=VINT(40+JS)/VINT(154+JS)
0074
0075 K(MINT(84)+JS,3)=2+JS
0076 K(MINT(84)+JS,4)=MOD(K(MINT(84)+JS,4),MSTU(5))
0077 K(MINT(84)+JS,5)=MOD(K(MINT(84)+JS,5),MSTU(5))
0078 110 CONTINUE
0079 IMISEP(0)=MINT(84)
0080 IMISEP(1)=N
0081 IF (MOD(MSTP(81),10).GE.1) THEN
0082 IF(MSTP(82).LE.1) THEN
0083 SIGRAT=XSEC(ISUB,1)/MAX(1D-10,VINT(315)*VINT(316)*SIGT(0,0
0084 & ,5))
0085 IF(MINT(141).NE.0.OR.MINT(142).NE.0) SIGRAT=SIGRAT*
0086 & VINT(317)/(VINT(318)*VINT(320))
0087 XT2FAC=SIGRAT*VINT(149)/(1D0-VINT(149))
0088 ELSE
0089 XT2FAC=VINT(146)*VINT(148)*XSEC(ISUB,1)/
0090 & MAX(1D-10,SIGT(0,0,5))*VINT(149)*(1D0+VINT(149))
0091 ENDIF
0092 ENDIF
0093
0094 DO 120 MI=2,240
0095 IMI(1,MI,1)=0
0096 IMI(2,MI,1)=0
0097 IMI(1,MI,2)=0
0098 IMI(2,MI,2)=0
0099 IMISEP(MI)=IMISEP(1)
0100 PT2MI(MI)=0D0
0101 XMI(1,MI)=0D0
0102 XMI(2,MI)=0D0
0103 120 CONTINUE
0104
0105 DO 140 JS=1,2
0106 KFBEAM(JS)=MINT(10+JS)
0107 IF(MINT(18+JS).EQ.1) KFBEAM(JS)=22
0108 KFABM=IABS(KFBEAM(JS))
0109 KFSBM=ISIGN(1,KFBEAM(JS))
0110
0111
0112 KFIVAL(JS,1)=0
0113 KFIVAL(JS,2)=0
0114 KFIVAL(JS,3)=0
0115
0116 IF(KFABM.GT.1000) THEN
0117 KFIVAL(JS,1)=KFSBM*MOD(KFABM/1000,10)
0118 KFIVAL(JS,2)=KFSBM*MOD(KFABM/100,10)
0119 KFIVAL(JS,3)=KFSBM*MOD(KFABM/10,10)
0120
0121 ELSEIF(KFABM.EQ.211) THEN
0122 KFIVAL(JS,1)=KFSBM*2
0123 KFIVAL(JS,2)=-KFSBM
0124 ELSEIF(KFABM.EQ.321) THEN
0125 KFIVAL(JS,1)=-KFSBM*3
0126 KFIVAL(JS,2)=KFSBM*2
0127
0128 ENDIF
0129
0130
0131 DO 130 IFL=-6,6
0132 NVC(JS,IFL)=0
0133 130 CONTINUE
0134 140 CONTINUE
0135
0136 NCT=0
0137
0138 DO 150 I=IMISEP(0)+1,N
0139 MCT(I,1)=0
0140 MCT(I,2)=0
0141 K(I,4)=MOD(K(I,4),MSTU(5)**2)
0142 K(I,5)=MOD(K(I,5),MSTU(5)**2)
0143 150 CONTINUE
0144
0145 DO 170 JS=1,2
0146 I1=IMI(JS,1,1)
0147 I2=IMI(3-JS,1,1)
0148 DO 160 JCS=4,5
0149 IF (K(I1,2).NE.21.AND.(9-2*JCS).NE.ISIGN(1,K(I1,2)))
0150 & GOTO 160
0151 IF (K(I1,JCS)/MSTU(5)**2.NE.0) GOTO 160
0152 KCS=JCS
0153 CALL PYCTTR(I1,KCS,I2)
0154 IF(MINT(51).NE.0) RETURN
0155 160 CONTINUE
0156 170 CONTINUE
0157
0158
0159 IF (MSTP(87).LT.0) THEN
0160 CALL PYERRM(19,'(PYPTMI:) MSTP(87) out of range. Forced'//
0161 & ' MSTP(87)=0')
0162 MSTP(87)=0
0163 ELSEIF (MSTP(87).GT.4) THEN
0164 CALL PYERRM(19,'(PYPTMI:) MSTP(87) out of range. Forced'//
0165 & ' MSTP(87)=4')
0166 MSTP(87)=4
0167 ENDIF
0168
0169
0170
0171
0172
0173
0174 ELSEIF (MODE.EQ.0) THEN
0175
0176 XT2=4D0*MIN(PT2NOW,VINT(62))/VINT(2)
0177 180 IF(MSTP(82).LE.1) THEN
0178 XT2=XT2FAC*XT2/(XT2FAC-XT2*LOG(PYR(0)))
0179 IF(XT2.LT.VINT(149)) IFAIL=-2
0180 ELSE
0181 IF(XT2.LE.0.01001D0*VINT(149)) THEN
0182 IFAIL=-3
0183 ELSE
0184 XT2=XT2FAC*(XT2+VINT(149))/(XT2FAC-(XT2+VINT(149))*
0185 & LOG(PYR(0)))-VINT(149)
0186 ENDIF
0187 ENDIF
0188
0189
0190 PT2=0.25D0*VINT(2)*XT2
0191 IF (PT2.LE.PT2CUT) IFAIL=-4
0192 IF (PT2.LE.PT2MX) IFAIL=-5
0193 IF (IFAIL.NE.0) THEN
0194 PT2=0D0
0195 RETURN
0196 ENDIF
0197 IF(MSTP(82).GE.2) PT2=MAX(0.25D0*VINT(2)*0.01D0*VINT(149),PT2)
0198 VINT(25)=4D0*PT2/VINT(2)
0199 XT2=VINT(25)
0200
0201
0202 IF(PYR(0).LE.COEF(ISUB,1)) THEN
0203 TAUT=(2D0*(1D0+SQRT(1D0-XT2))/XT2-1D0)**PYR(0)
0204 TAU=XT2*(1D0+TAUT)**2/(4D0*TAUT)
0205 ELSE
0206 TAU=XT2*(1D0+TAN(PYR(0)*ATAN(SQRT(1D0/XT2-1D0)))**2)
0207 ENDIF
0208 VINT(21)=TAU
0209
0210 IF(TAU*VINT(2).LT.1D0) GOTO 180
0211 CALL PYKLIM(2)
0212 RYST=PYR(0)
0213 MYST=1
0214 IF(RYST.GT.COEF(ISUB,8)) MYST=2
0215 IF(RYST.GT.COEF(ISUB,8)+COEF(ISUB,9)) MYST=3
0216 CALL PYKMAP(2,MYST,PYR(0))
0217 VINT(23)=SQRT(MAX(0D0,1D0-XT2/TAU))*(-1)**INT(1.5D0+PYR(0))
0218
0219
0220 X1M=SQRT(TAU)*EXP(VINT(22))
0221 X2M=SQRT(TAU)*EXP(-VINT(22))
0222 IF(VINT(143)-X1M.LT.0.01D0.OR.VINT(144)-X2M.LT.0.01D0) GOTO 180
0223 VINT(71)=0.5D0*VINT(1)*SQRT(XT2)
0224 CALL PYSIGH(NCHN,SIGS)
0225 IF(MINT(141).NE.0.OR.MINT(142).NE.0) SIGS=SIGS*VINT(320)
0226 IF(SIGS.LT.XSEC(ISUB,1)*PYR(0)) GOTO 180
0227 IF(MINT(141).NE.0.OR.MINT(142).NE.0) SIGS=SIGS/VINT(320)
0228
0229
0230 IF (PT2.GT.PT2MX) THEN
0231 JSMX=0
0232 MIMX=MINT(31)+1
0233 PT2MX=PT2
0234 ENDIF
0235
0236
0237
0238 ELSEIF (MODE.EQ.1) THEN
0239 PT2=PT2NOW
0240
0241 DO 200 I=N+1,N+4
0242 DO 190 J=1,5
0243 K(I,J)=0
0244 P(I,J)=0D0
0245 V(I,J)=0D0
0246 190 CONTINUE
0247 MCT(I,1)=0
0248 MCT(I,2)=0
0249 200 CONTINUE
0250
0251 NTRY=0
0252
0253 210 NTRY=NTRY+1
0254 IF (NTRY.GT.50) THEN
0255 CALL PYERRM(9,'(PYPTMI:) Unable to generate additional '
0256 & //'interaction. Giving up!')
0257 MINT(51)=1
0258 RETURN
0259 ENDIF
0260 RSIGS=SIGS*PYR(0)
0261 DO 220 ICHN=1,NCHN
0262 KFL1=ISIG(ICHN,1)
0263 KFL2=ISIG(ICHN,2)
0264 ICONMI=ISIG(ICHN,3)
0265 RSIGS=RSIGS-SIGH(ICHN)
0266 IF(RSIGS.LE.0D0) GOTO 230
0267 220 CONTINUE
0268
0269
0270 230 ISUBMI=ICONMI/10
0271 ICONMI=MOD(ICONMI,10)
0272
0273
0274 IF(ISUBMI.EQ.12.OR.ISUBMI.EQ.53) THEN
0275 SH=VINT(21)*VINT(2)
0276 CALL PYWIDT(21,SH,WDTP,WDTE)
0277 240 RKFL=(WDTE(0,1)+WDTE(0,2)+WDTE(0,4))*PYR(0)
0278 DO 250 I=1,MDCY(21,3)
0279 KFLF=KFDP(I+MDCY(21,2)-1,1)
0280 RKFL=RKFL-(WDTE(I,1)+WDTE(I,2)+WDTE(I,4))
0281 IF(RKFL.LE.0D0) GOTO 260
0282 250 CONTINUE
0283 260 IF(ISUBMI.EQ.53.AND.ICONMI.LE.2) THEN
0284 IF(KFLF.GE.4) GOTO 240
0285 ELSEIF(ISUBMI.EQ.53.AND.ICONMI.LE.4) THEN
0286 KFLF=4
0287 ICONMI=ICONMI-2
0288 ELSEIF(ISUBMI.EQ.53) THEN
0289 KFLF=5
0290 ICONMI=ICONMI-4
0291 ENDIF
0292 ENDIF
0293
0294
0295 JS=1
0296 KFL3=KFL1
0297 KFL4=KFL2
0298 KCC=20
0299 KCS=ISIGN(1,KFL1)
0300
0301 IF(ISUBMI.EQ.11) THEN
0302
0303 KCC=ICONMI
0304 IF(KFL1*KFL2.LT.0) KCC=KCC+2
0305
0306 ELSEIF(ISUBMI.EQ.12) THEN
0307
0308 KFL3=ISIGN(KFLF,KFL1)
0309 KFL4=-KFL3
0310 KCC=4
0311
0312 ELSEIF(ISUBMI.EQ.13) THEN
0313
0314 KFL3=21
0315 KFL4=21
0316 KCC=ICONMI+4
0317
0318 ELSEIF(ISUBMI.EQ.28) THEN
0319
0320 IF(KFL1.EQ.21) JS=2
0321 KCC=ICONMI+6
0322 IF(KFL1.EQ.21) KCC=KCC+2
0323 IF(KFL1.NE.21) KCS=ISIGN(1,KFL1)
0324 IF(KFL2.NE.21) KCS=ISIGN(1,KFL2)
0325
0326 ELSEIF(ISUBMI.EQ.53) THEN
0327
0328 KCS=(-1)**INT(1.5D0+PYR(0))
0329 KFL3=ISIGN(KFLF,KCS)
0330 KFL4=-KFL3
0331 KCC=ICONMI+10
0332
0333 ELSEIF(ISUBMI.EQ.68) THEN
0334
0335 KCC=ICONMI+12
0336 KCS=(-1)**INT(1.5D0+PYR(0))
0337 ENDIF
0338
0339
0340 IF (IABS(KFL3).EQ.4.OR.IABS(KFL4).EQ.4.OR.IABS(KFL3).EQ.5
0341 & .OR.IABS(KFL4).EQ.5) THEN
0342 RMMAX2=MAX(PMAS(PYCOMP(KFL3),1),PMAS(PYCOMP(KFL4),1))**2
0343 IF (PT2.LE.1.05*RMMAX2) THEN
0344 IF (NTRY.EQ.1) CALL PYERRM(9,'(PYPTMI:) Heavy quarks'
0345 & //' created below threshold. Rejected.')
0346 GOTO 210
0347 ENDIF
0348 ENDIF
0349
0350
0351 MINT(13)=KFL1
0352 MINT(14)=KFL2
0353 MINT(15)=KFL1
0354 MINT(16)=KFL2
0355 MINT(21)=KFL3
0356 MINT(22)=KFL4
0357
0358
0359 K(N+1,1)=14
0360 K(N+2,1)=14
0361 K(N+3,1)=3
0362 K(N+4,1)=3
0363 K(N+1,2)=KFL1
0364 K(N+2,2)=KFL2
0365 K(N+3,2)=KFL3
0366 K(N+4,2)=KFL4
0367 K(N+1,3)=MINT(83)+1
0368 K(N+2,3)=MINT(83)+2
0369 K(N+3,3)=N+1
0370 K(N+4,3)=N+2
0371
0372
0373 DO 270 J=1,2
0374 JC=J
0375 IF(KCS.EQ.-1) JC=3-J
0376 IF(ICOL(KCC,1,JC).NE.0) K(N+1,J+3)=N+ICOL(KCC,1,JC)
0377 IF(ICOL(KCC,2,JC).NE.0) K(N+2,J+3)=N+ICOL(KCC,2,JC)
0378 IF(ICOL(KCC,3,JC).NE.0) K(N+3,J+3)=MSTU(5)*(N+ICOL(KCC,3,JC))
0379 IF(ICOL(KCC,4,JC).NE.0) K(N+4,J+3)=MSTU(5)*(N+ICOL(KCC,4,JC))
0380 270 CONTINUE
0381
0382
0383 SHR=SQRT(VINT(21))*VINT(1)
0384 P(N+1,3)=0.5D0*SHR
0385 P(N+1,4)=0.5D0*SHR
0386 P(N+2,3)=-0.5D0*SHR
0387 P(N+2,4)=0.5D0*SHR
0388 P(N+3,5)=PYMASS(K(N+3,2))
0389 P(N+4,5)=PYMASS(K(N+4,2))
0390 IF(P(N+3,5)+P(N+4,5).GE.SHR) THEN
0391 IFAIL=1
0392 RETURN
0393 ENDIF
0394 P(N+3,4)=0.5D0*(SHR+(P(N+3,5)**2-P(N+4,5)**2)/SHR)
0395 P(N+3,3)=SQRT(MAX(0D0,P(N+3,4)**2-P(N+3,5)**2))
0396 P(N+4,4)=SHR-P(N+3,4)
0397 P(N+4,3)=-P(N+3,3)
0398
0399
0400 PHI=PARU(2)*PYR(0)
0401 CALL PYROBO(N+3,N+4,ACOS(VINT(23)),PHI,0D0,0D0,0D0)
0402
0403
0404 MINT(351)=MINT(351)+1
0405 VINT(351)=VINT(351)+SQRT(P(N+3,1)**2+P(N+3,2)**2)
0406 IF (MINT(351).EQ.1) VINT(356)=SQRT(P(N+3,1)**2+P(N+3,2)**2)
0407
0408
0409 MINT(31)=MINT(31)+1
0410 MINT(36)=MINT(31)
0411 PT2MI(MINT(36))=PT2
0412 IMISEP(MINT(31))=N+4
0413 DO 280 JS=1,2
0414 IMI(JS,MINT(31),1)=N+JS
0415 IMI(JS,MINT(31),2)=0
0416 XMI(JS,MINT(31))=VINT(40+JS)
0417 NMI(JS)=NMI(JS)+1
0418
0419 VINT(142+JS)=VINT(142+JS)-VINT(40+JS)
0420 VINT(150+JS)=VINT(150+JS)+VINT(40+JS)
0421 280 CONTINUE
0422
0423
0424 IPART(NPART+1)=N+3
0425 IPART(NPART+2)=N+4
0426 PTPART(NPART+1)=SQRT(PT2)
0427 PTPART(NPART+2)=SQRT(PT2)
0428 NPART=NPART+2
0429
0430
0431 NISGEN(1,MINT(31))=0
0432 NISGEN(2,MINT(31))=0
0433
0434
0435 N=N+4
0436 IF(N.GT.MSTU(4)-MSTU(32)-10) THEN
0437 CALL PYERRM(11,'(PYMIGN:) no more memory left in PYJETS')
0438 MINT(51)=1
0439 RETURN
0440 ENDIF
0441
0442
0443 DO 300 JS=1,2
0444 I1=IMI(JS,MINT(31),1)
0445 I2=IMI(3-JS,MINT(31),1)
0446 DO 290 JCS=4,5
0447 IF (K(I1,2).NE.21.AND.(9-2*JCS).NE.ISIGN(1,K(I1,2)))
0448 & GOTO 290
0449 IF (K(I1,JCS)/MSTU(5)**2.NE.0) GOTO 290
0450 KCS=JCS
0451 CALL PYCTTR(I1,KCS,I2)
0452 IF(MINT(51).NE.0) RETURN
0453 290 CONTINUE
0454 300 CONTINUE
0455
0456
0457
0458
0459 ELSEIF (MODE.EQ.2) THEN
0460 JS=MINT(30)
0461 MI=MINT(36)
0462 PT2=PT2NOW
0463 KFSBM=ISIGN(1,MINT(10+JS))
0464 IFL=K(IMI(JS,MI,1),2)
0465 IMI(JS,MI,2)=0
0466 IF (IABS(IFL).GE.6) THEN
0467 IF (IABS(IFL).EQ.6) THEN
0468 CALL PYERRM(29,'(PYPTMI:) top in initial state!')
0469 ENDIF
0470 RETURN
0471 ENDIF
0472
0473
0474 X=XMI(JS,MI)
0475 XRSC=X/(VINT(142+JS)+X)
0476
0477 MINT(30)=JS
0478 CALL PYPDFU(KFBEAM(JS),XRSC,PT2,XPQ)
0479 SEA=XPSVC(IFL,-1)
0480 VAL=XPSVC(IFL,0)
0481 CMP=0D0
0482 DO 310 IVC=1,NVC(JS,IFL)
0483 CMP=CMP+XPSVC(IFL,IVC)
0484 310 CONTINUE
0485
0486
0487 320 RVCS=PYR(0)*(SEA+VAL+CMP)
0488 IVNOW=1
0489 330 IF (RVCS.LE.VAL.AND.IVNOW.GE.1) THEN
0490
0491 IVNOW=0
0492 IF(KFIVAL(JS,1).EQ.IFL) IVNOW=IVNOW+1
0493 IF(KFIVAL(JS,2).EQ.IFL) IVNOW=IVNOW+1
0494 IF(KFIVAL(JS,3).EQ.IFL) IVNOW=IVNOW+1
0495 IF(KFIVAL(JS,1).EQ.0) THEN
0496 IF(KFBEAM(JS).EQ.111.AND.IABS(IFL).LE.2) IVNOW=1
0497 IF(KFBEAM(JS).EQ.22.AND.IABS(IFL).LE.5) IVNOW=1
0498 IF((KFBEAM(JS).EQ.130.OR.KFBEAM(JS).EQ.310).AND.
0499 & (IABS(IFL).EQ.1.OR.IABS(IFL).EQ.3)) IVNOW=1
0500 ELSE
0501
0502 DO 340 I1=1,NMI(JS)
0503 IF (I1.EQ.MINT(36)) GOTO 340
0504 IF (K(IMI(JS,I1,1),2).EQ.IFL.AND.IMI(JS,I1,2).EQ.0)
0505 & IVNOW=IVNOW-1
0506 340 CONTINUE
0507 ENDIF
0508 IF(IVNOW.EQ.0) GOTO 330
0509
0510 IMI(JS,MI,2)=0
0511
0512 IF(KFIVAL(JS,1).EQ.0) THEN
0513 IF(KFBEAM(JS).EQ.111.OR.KFBEAM(JS).EQ.22) THEN
0514 KFIVAL(JS,1)=IFL
0515 KFIVAL(JS,2)=-IFL
0516 ELSEIF(KFBEAM(JS).EQ.130.OR.KFBEAM(JS).EQ.310) THEN
0517 KFIVAL(JS,1)=IFL
0518 IF(IABS(IFL).EQ.1) KFIVAL(JS,2)=ISIGN(3,-IFL)
0519 IF(IABS(IFL).NE.1) KFIVAL(JS,2)=ISIGN(1,-IFL)
0520 ENDIF
0521 ENDIF
0522
0523 ELSEIF (RVCS.LE.VAL+SEA) THEN
0524
0525 NVC(JS,-IFL)=NVC(JS,-IFL)+1
0526 XASSOC(JS,-IFL,NVC(JS,-IFL))=XMI(JS,MI)
0527
0528 IMI(JS,MI,2)=-NVC(JS,-IFL)
0529
0530 ELSE
0531
0532 IF (NVC(JS,IFL).EQ.0) THEN
0533 CMP=0D0
0534 CALL PYERRM(9,'(PYPTMI:) No cmp quark, but pdf != 0!')
0535 GOTO 320
0536 ENDIF
0537 CMPSUM=VAL+SEA
0538 ISEL=0
0539 350 ISEL=ISEL+1
0540 CMPSUM=CMPSUM+XPSVC(IFL,ISEL)
0541 IF (RVCS.GT.CMPSUM.AND.ISEL.LT.NVC(JS,IFL)) GOTO 350
0542
0543 IASSOC=0
0544 DO 360 I1=1,NMI(JS)
0545 IF (I1.EQ.MINT(36)) GOTO 360
0546 IF (K(IMI(JS,I1,1),2).NE.-IFL) GOTO 360
0547 IF (-IMI(JS,I1,2).EQ.ISEL) THEN
0548 IMI(JS,MI,2)=IMI(JS,I1,1)
0549 IMI(JS,I1,2)=IMI(JS,MI,1)
0550 ENDIF
0551 360 CONTINUE
0552
0553 XASSOC(JS,IFL,ISEL)=-XASSOC(JS,IFL,ISEL)
0554 ENDIF
0555
0556 ENDIF
0557 RETURN
0558 END