File indexing completed on 2025-08-05 08:21:10
0001
0002
0003
0004
0005
0006
0007
0008
0009 SUBROUTINE PYFEYN(IERR)
0010
0011
0012 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0013 IMPLICIT INTEGER(I-N)
0014 INTEGER PYK,PYCHGE,PYCOMP
0015
0016 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0017 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0018
0019 COMMON/PYMSSM/IMSS(0:99),RMSS(0:99)
0020
0021 DOUBLE PRECISION RMHIGG(4)
0022 DOUBLE COMPLEX SAEFF, UHIGGS(3,3)
0023 DOUBLE COMPLEX DMU,
0024 & AE33, AU33, AD33, AE22, AU22, AD22, AE11, AU11, AD11,
0025 & DM1, DM2, DM3
0026
0027 COMMON/PYLH3P/MODSEL(200),PARMIN(100),PAREXT(200),RMSOFT(0:100),
0028 & AU(3,3),AD(3,3),AE(3,3)
0029 SAVE /PYDAT1/,/PYDAT2/,/PYMSSM/,/PYLH3P/
0030
0031 IERR=0
0032 CALL FHSETFLAGS(IERR,4,0,0,2,0,2,1,1)
0033 IF (IERR.NE.0) THEN
0034 CALL PYERRM(11,'(PYHGGM:) Caught error from FHSETFLAGS.'
0035 & //'Will not use FeynHiggs for this run.')
0036 RETURN
0037 ENDIF
0038 Q=RMSOFT(0)
0039 DMB=PMAS(5,1)
0040 DMT=PMAS(6,1)
0041 DMZ=PMAS(23,1)
0042 DMW=PMAS(24,1)
0043 DMA=PMAS(36,1)
0044 DM1=RMSOFT(1)
0045 DM2=RMSOFT(2)
0046 DM3=RMSOFT(3)
0047 DTANB=RMSS(5)
0048 DMU=RMSS(4)
0049 DM3SL=RMSOFT(33)
0050 DM3SE=RMSOFT(36)
0051 DM3SQ=RMSOFT(43)
0052 DM3SU=RMSOFT(46)
0053 DM3SD=RMSOFT(49)
0054 DM2SL=RMSOFT(32)
0055 DM2SE=RMSOFT(35)
0056 DM2SQ=RMSOFT(42)
0057 DM2SU=RMSOFT(45)
0058 DM2SD=RMSOFT(48)
0059 DM1SL=RMSOFT(31)
0060 DM1SE=RMSOFT(34)
0061 DM1SQ=RMSOFT(41)
0062 DM1SU=RMSOFT(44)
0063 DM1SD=RMSOFT(47)
0064 AE33=AE(3,3)
0065 AE22=AE(2,2)
0066 AE11=AE(1,1)
0067 AU33=AU(3,3)
0068 AU22=AU(2,2)
0069 AU11=AU(1,1)
0070 AD33=AD(3,3)
0071 AD22=AD(2,2)
0072 AD11=AD(1,1)
0073 CALL FHSETPARA(IERR, 1D0, DMT, DMB, DMW, DMZ, DTANB,
0074 & DMA,0D0, DM3SL, DM3SE, DM3SQ, DM3SU, DM3SD,
0075 & DM2SL, DM2SE, DM2SQ, DM2SU, DM2SD,
0076 & DM1SL, DM1SE, DM1SQ, DM1SU, DM1SD,DMU,
0077 & AE33, AU33, AD33, AE22, AU22, AD22, AE11, AU11, AD11,
0078 & DM1, DM2, DM3, 0D0, 0D0,Q,Q,Q)
0079 IF (IERR.NE.0) THEN
0080 CALL PYERRM(11,'(PYHGGM:) Caught error from FHSETPARA.'
0081 & //' Will not use FeynHiggs for this run.')
0082 RETURN
0083 ENDIF
0084
0085 SAEFF=0D0
0086 CALL FHHIGGSCORR(IERR, RMHIGG, SAEFF, UHIGGS)
0087 IF (IERR.NE.0) THEN
0088 CALL PYERRM(11,'(PYFEYN:) Caught error from FHHIG'//
0089 & 'GSCORR. Will not use FeynHiggs for this run.')
0090 RETURN
0091 ENDIF
0092 ALPHA = ASIN(DBLE(SAEFF))
0093 R=RMSS(18)/ALPHA
0094 IF (R.LT.0D0.OR.ABS(R).GT.1.2D0.OR.ABS(R).LT.0.8D0) THEN
0095 CALL PYERRM(1,'(PYFEYN:) Large corrections in Higgs sector.')
0096 WRITE(MSTU(11),*) ' Old Alpha:', RMSS(18)
0097 WRITE(MSTU(11),*) ' New Alpha:', ALPHA
0098 ENDIF
0099 IF (RMHIGG(1).LT.0.85D0*PMAS(25,1).OR.RMHIGG(1).GT.
0100 & 1.15D0*PMAS(25,1)) THEN
0101 CALL PYERRM(1,'(PYFEYN:) Large corrections in Higgs sector.')
0102 WRITE(MSTU(11),*) ' Old m(h0):', PMAS(25,1)
0103 WRITE(MSTU(11),*) ' New m(h0):', RMHIGG(1)
0104 ENDIF
0105 RMSS(18)=ALPHA
0106 PMAS(25,1)=RMHIGG(1)
0107 PMAS(35,1)=RMHIGG(2)
0108 PMAS(36,1)=RMHIGG(3)
0109 PMAS(37,1)=RMHIGG(4)
0110
0111 RETURN
0112 END