File indexing completed on 2025-08-05 08:21:15
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 SUBROUTINE PYRVGL(KFIN,XLAM,IDLAM,LKNT)
0011
0012
0013 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0014 IMPLICIT INTEGER(I-N)
0015
0016 PARAMETER (KSUSY1=1000000,KSUSY2=2000000,KTECHN=3000000,
0017 &KEXCIT=4000000,KDIMEN=5000000)
0018
0019 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0020 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0021 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
0022 COMMON/PYSSMT/ZMIX(4,4),UMIX(2,2),VMIX(2,2),SMZ(4),SMW(2),
0023 &SFMIX(16,4),ZMIXI(4,4),UMIXI(2,2),VMIXI(2,2)
0024 COMMON/PYMSRV/RVLAM(3,3,3), RVLAMP(3,3,3), RVLAMB(3,3,3)
0025
0026 DOUBLE PRECISION XLAM(0:400)
0027 INTEGER IDLAM(400,3), PYCOMP
0028
0029 COMMON/PYRVNV/AB(2,16,2),RMS(0:3),RES(6,2),INTRES(6,3),IDR,IDR2
0030 & ,DCMASS,KFR(3)
0031
0032 COMMON/RVGSTO/XRESI,XRESJ,XRESK,XRESIJ,XRESIK,XRESJK,RVLIJK,RVLKIJ
0033 & ,RVLJKI,RVLJIK
0034
0035 DOUBLE PRECISION RMQ(6)
0036
0037 LOGICAL DCMASS
0038 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYSSMT/,/PYMSRV/,/PYRVNV/,
0039 & /RVGSTO/
0040
0041
0042 IF (IMSS(52).GE.1.OR.IMSS(53).GE.1) THEN
0043 KFSM=KFIN-KSUSY1
0044
0045
0046
0047
0048
0049
0050 DO 100 I = 1,6
0051
0052 AB(1,I,1) = SFMIX(I,2)
0053 AB(1,I,2) = SFMIX(I,4)
0054
0055 AB(2,I,1) = -SFMIX(I,1)
0056 AB(2,I,2) = -SFMIX(I,3)
0057 100 CONTINUE
0058 GSTR2 = 4D0*PARU(1) * PYALPS(PMAS(PYCOMP(KFIN),1)**2)
0059
0060 IF (IMSS(52).GE.1) THEN
0061
0062 DO 120 ISC=0,26
0063
0064 LKNT = LKNT+1
0065 IDLAM(LKNT,1) =-12 -2*MOD(ISC/9,3)
0066 IDLAM(LKNT,2) = -1 -2*MOD(ISC/3,3)
0067 IDLAM(LKNT,3) = 1 +2*MOD(ISC,3)
0068 XLAM(LKNT)=0D0
0069
0070 RVLAMC=RVLAMP(MOD(ISC/9,3)+1,MOD(ISC/3,3)+1,MOD(ISC,3)+1)**2
0071 & * 5D-1 * GSTR2
0072 DCMASS = .FALSE.
0073 IF (IDLAM(LKNT,2).EQ.-5.OR.IDLAM(LKNT,3).EQ.5) DCMASS=.TRUE.
0074
0075 KFR(1) = 0
0076 KFR(2) = -IDLAM(LKNT,2)
0077 KFR(3) = -IDLAM(LKNT,3)
0078
0079 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0080 & ,XLAM(LKNT))
0081
0082 XLAM(LKNT)=XLAM(LKNT)*RVLAMC/((2*PARU(1)*RMS(0))**3*32)
0083
0084 110 LKNT = LKNT+1
0085 IDLAM(LKNT,1) =-IDLAM(LKNT-1,1)
0086 IDLAM(LKNT,2) =-IDLAM(LKNT-1,2)
0087 IDLAM(LKNT,3) =-IDLAM(LKNT-1,3)
0088 XLAM(LKNT) = XLAM(LKNT-1)
0089
0090 IF (XLAM(LKNT).EQ.0D0) THEN
0091 LKNT=LKNT-2
0092 ENDIF
0093
0094
0095 LKNT = LKNT+1
0096 IDLAM(LKNT,1) =-11 -2*MOD(ISC/9,3)
0097 IDLAM(LKNT,2) = -2 -2*MOD(ISC/3,3)
0098 IDLAM(LKNT,3) = 1 +2*MOD(ISC,3)
0099 XLAM(LKNT)=0D0
0100
0101 RVLAMC = RVLAMP(MOD(ISC/9,3)+1,MOD(ISC/3,3)+1,MOD(ISC,3)+1)
0102 & **2* 5D-1 * GSTR2
0103 DCMASS = .FALSE.
0104 IF (IDLAM(LKNT,1).EQ.-15.OR.IDLAM(LKNT,2).EQ.-6
0105 & .OR.IDLAM(LKNT,3).EQ.5) DCMASS = .TRUE.
0106
0107 KFR(1) = 0
0108 KFR(2) = -IDLAM(LKNT,2)
0109 KFR(3) = -IDLAM(LKNT,3)
0110
0111 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0112 & ,XLAM(LKNT))
0113 XLAM(LKNT)=XLAM(LKNT)*RVLAMC/((2*PARU(1)*RMS(0))**3*32)
0114
0115 LKNT=LKNT+1
0116 IDLAM(LKNT,1) = -IDLAM(LKNT-1,1)
0117 IDLAM(LKNT,2) = -IDLAM(LKNT-1,2)
0118 IDLAM(LKNT,3) = -IDLAM(LKNT-1,3)
0119 XLAM(LKNT) = XLAM(LKNT-1)
0120
0121 IF (XLAM(LKNT).EQ.0D0) THEN
0122 LKNT=LKNT-2
0123 ENDIF
0124
0125 120 CONTINUE
0126 ENDIF
0127
0128
0129 IF (IMSS(53).GE.1) THEN
0130
0131 DO 130 ISC=0,26
0132
0133 IF (MOD(ISC/3,3).LT.MOD(ISC,3)) THEN
0134 LKNT = LKNT+1
0135 IDLAM(LKNT,1) = -2 -2*MOD(ISC/9,3)
0136 IDLAM(LKNT,2) = -1 -2*MOD(ISC/3,3)
0137 IDLAM(LKNT,3) = -1 -2*MOD(ISC,3)
0138 XLAM(LKNT)=0D0
0139
0140
0141 RVLAMC=RVLAMB(MOD(ISC/9,3)+1,MOD(ISC/3,3)+1,MOD(ISC,3)+1)
0142 & **2 * GSTR2
0143 DCMASS = .FALSE.
0144 IF (IDLAM(LKNT,1).EQ.-6.OR.IDLAM(LKNT,2).EQ.-5
0145 & .OR.IDLAM(LKNT,3).EQ.-5) DCMASS=.TRUE.
0146
0147 KFR(1) = IDLAM(LKNT,1)
0148 KFR(2) = 0
0149 KFR(3) = 0
0150
0151 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0152 & ,XRESI)
0153
0154 KFR(1) = 0
0155 KFR(2) = IDLAM(LKNT,2)
0156 KFR(3) = 0
0157
0158 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0159 & ,XRESJ)
0160
0161 KFR(1) = 0
0162 KFR(2) = 0
0163 KFR(3) = IDLAM(LKNT,3)
0164
0165 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0166 & ,XRESK)
0167
0168 KFR(1) = IDLAM(LKNT,1)
0169 KFR(2) = IDLAM(LKNT,2)
0170 KFR(3) = 0
0171
0172 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0173 & ,XRESIJ)
0174
0175
0176 IF (ABS((XRESI+XRESJ)/XRESIJ-1D0).GT.1D-4) THEN
0177 XRESIJ = 5D-1 * (XRESI+XRESJ-XRESIJ)
0178 ELSE
0179 XRESIJ = 0D0
0180 ENDIF
0181
0182 KFR(1) = 0
0183 KFR(2) = IDLAM(LKNT,2)
0184 KFR(3) = IDLAM(LKNT,3)
0185
0186 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0187 & ,XRESJK)
0188 IF (ABS((XRESJ+XRESK)/XRESJK-1).GT.1D-4) THEN
0189 XRESJK = 5D-1 * (XRESJ+XRESK-XRESJK)
0190 ELSE
0191 XRESJK = 0D0
0192 ENDIF
0193
0194 KFR(1) = IDLAM(LKNT,1)
0195 KFR(2) = 0
0196 KFR(3) = IDLAM(LKNT,3)
0197
0198 CALL PYRVGW(KFIN,IDLAM(LKNT,1),IDLAM(LKNT,2),IDLAM(LKNT,3)
0199 & ,XRESIK)
0200 IF (ABS((XRESI+XRESK)/XRESIK-1).GT.1D-4) THEN
0201 XRESIK = 5D-1 * (XRESI+XRESK-XRESIK)
0202 ELSE
0203 XRESIK = 0D0
0204 ENDIF
0205
0206 XLAM(LKNT) = XRESI + XRESJ + XRESK
0207 & + 5D-1 * (XRESIJ + XRESIK + XRESJK)
0208
0209 XLAM(LKNT) = XLAM(LKNT)*RVLAMC/((2*PARU(1)*RMS(0))**3*32)
0210
0211 LKNT = LKNT+1
0212 IDLAM(LKNT,1) =-IDLAM(LKNT-1,1)
0213 IDLAM(LKNT,2) =-IDLAM(LKNT-1,2)
0214 IDLAM(LKNT,3) =-IDLAM(LKNT-1,3)
0215 XLAM(LKNT) = XLAM(LKNT-1)
0216
0217 IF (XLAM(LKNT).EQ.0D0) THEN
0218 LKNT=LKNT-2
0219 ENDIF
0220 ENDIF
0221 130 CONTINUE
0222 ENDIF
0223 ENDIF
0224 RETURN
0225 END