File indexing completed on 2025-08-05 08:21:12
0001
0002
0003
0004
0005
0006
0007
0008 SUBROUTINE PYMIHG(JCP1,JCG1,JCP2,JCG2)
0009
0010 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011 IMPLICIT INTEGER(I-N)
0012 INTEGER PYK,PYCHGE,PYCOMP
0013
0014 COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
0015
0016 COMMON/PYINT1/MINT(400),VINT(400)
0017 SAVE /PYJETS/,/PYINT1/
0018
0019 COMMON /PYCBLS/MCO(4000,2),NCC,JCCO(4000,2),JCCN(4000,2),MACCPT
0020 COMMON /PYCTAG/NCT,MCT(4000,2)
0021 SAVE /PYCBLS/,/PYCTAG/
0022
0023
0024
0025 MACCPT=1
0026 MCLPS=0
0027 DO 100 ICC=1,NCC
0028 JCCN(ICC,1)=JCCO(ICC,1)
0029 JCCN(ICC,2)=JCCO(ICC,2)
0030
0031
0032 IF (MCLPS.EQ.0) THEN
0033 IF (JCCN(ICC,1).EQ.MAX(JCP1,JCP2).AND.JCCN(ICC,2).EQ.MIN(JCP1
0034 & ,JCP2)) THEN
0035 JCCN(ICC,1)=MAX(JCG2,JCP2)
0036 JCCN(ICC,2)=MIN(JCG2,JCP2)
0037 MCLPS=1
0038 ENDIF
0039 ENDIF
0040 100 CONTINUE
0041
0042 IF (JCP1.NE.0) THEN
0043 JCCN(NCC+1,1)=MAX(JCP1,JCG1)
0044 JCCN(NCC+1,2)=MIN(JCP1,JCG1)
0045 ELSE
0046 JCCN(NCC+1,1)=MAX(JCP2,JCG2)
0047 JCCN(NCC+1,2)=MIN(JCP2,JCG2)
0048 ENDIF
0049
0050
0051 DO 110 I=MINT(84)+1,N
0052 MCT(I,1)=MCO(I,1)
0053 MCT(I,2)=MCO(I,2)
0054 110 CONTINUE
0055
0056
0057
0058
0059
0060
0061 DO 160 IS=1,4
0062
0063 IF ((IS.EQ.4.AND.JCP2.EQ.0).OR.(IS.EQ.3).AND.JCP1.EQ.0) GOTO 160
0064
0065
0066
0067
0068 IF (MOD(IS,2).EQ.1) THEN
0069 JCO=JCP1
0070 JCN=JCG1
0071 JCALL=JCG1
0072 ELSEIF (MOD(IS,2).EQ.0) THEN
0073 JCO=JCP2
0074 JCN=JCG2
0075 JCALL=JCG2
0076 ENDIF
0077 ITRACE=0
0078 120 ITRACE=ITRACE+1
0079 IF (ITRACE.GT.1000) THEN
0080
0081 CALL PYERRM(14
0082 & ,'(PYMIHG:) Inf loop when collapsing colours.')
0083 MINT(57)=MINT(57)+1
0084 MINT(51)=1
0085 RETURN
0086 ENDIF
0087
0088 DO 130 I=MINT(84)+1,N
0089 IF (MCO(I,1).EQ.JCN) MCT(I,1)=JCALL
0090 IF (MCO(I,2).EQ.JCN) MCT(I,2)=JCALL
0091 130 CONTINUE
0092
0093 IF (IS.GT.2.AND.(JCN.EQ.JCALL)) THEN
0094 JCA=JCN
0095 JCN=JCO
0096 ELSE
0097 JCA=JCO
0098 JCO=JCN
0099 ENDIF
0100
0101 DO 140 ICC=1,NCC+1
0102 IF (JCCN(ICC,1).EQ.JCO.AND.JCCN(ICC,2).NE.JCA) JCN=
0103 & JCCN(ICC,2)
0104 IF (JCCN(ICC,2).EQ.JCO.AND.JCCN(ICC,1).NE.JCA) JCN=
0105 & JCCN(ICC,1)
0106 140 CONTINUE
0107
0108 IF (JCN.NE.JCO.AND.JCN.NE.JCALL) GOTO 120
0109
0110 DO 150 I=MINT(84)+1,N
0111 IF (MCO(I,1).EQ.JCN) MCT(I,1)=JCALL
0112 IF (MCO(I,2).EQ.JCN) MCT(I,2)=JCALL
0113
0114 IF (K(I,2).EQ.21.AND.MCT(I,1).EQ.MCT(I,2).AND.MCT(I,1)
0115 & .NE.0) MACCPT=0
0116 150 CONTINUE
0117 160 CONTINUE
0118
0119 DO 200 JCL=NCT,1,-1
0120 JCA=0
0121 JCN=JCL
0122 170 JCO=JCN
0123 DO 180 ICC=1,NCC+1
0124 IF (JCCN(ICC,1).EQ.JCO.AND.JCCN(ICC,2).NE.JCA) JCN
0125 & =JCCN(ICC,2)
0126 IF (JCCN(ICC,2).EQ.JCO.AND.JCCN(ICC,1).NE.JCA) JCN
0127 & =JCCN(ICC,1)
0128 180 CONTINUE
0129
0130 IF (JCN.NE.JCO.AND.JCN.NE.JCL) THEN
0131 DO 190 I=MINT(84)+1,N
0132 IF (MCT(I,1).EQ.JCN) MCT(I,1)=JCL
0133 IF (MCT(I,2).EQ.JCN) MCT(I,2)=JCL
0134
0135 IF (K(I,2).EQ.21.AND.MCT(I,1).EQ.MCT(I,2).AND.MCT(I,1)
0136 & .NE.0) MACCPT=0
0137 190 CONTINUE
0138 JCA=JCO
0139 GOTO 170
0140 ENDIF
0141 200 CONTINUE
0142
0143 RETURN
0144 END