File indexing completed on 2025-08-05 08:21:12
0001
0002
0003
0004
0005
0006
0007 FUNCTION PYMASS(KF)
0008
0009
0010 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011 IMPLICIT INTEGER(I-N)
0012 INTEGER PYK,PYCHGE,PYCOMP
0013
0014 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0015 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
0016 SAVE /PYDAT1/,/PYDAT2/
0017
0018
0019 PYMASS=0D0
0020 KFA=IABS(KF)
0021 KC=PYCOMP(KF)
0022 IF(KC.EQ.0) THEN
0023 MSTJ(93)=0
0024 RETURN
0025 ENDIF
0026
0027
0028 IF((MSTJ(93).EQ.1.OR.MSTJ(93).EQ.2).AND.
0029 &(KFA.LE.10.OR.MOD(KFA/10,10).EQ.0)) THEN
0030 IF(KFA.LE.5) THEN
0031 PYMASS=PARF(100+KFA)
0032 IF(MSTJ(93).EQ.2) PYMASS=MAX(0D0,PYMASS-PARF(121))
0033 ELSEIF(KFA.LE.10) THEN
0034 PYMASS=PMAS(KFA,1)
0035 ELSEIF(MSTJ(93).EQ.1) THEN
0036 PYMASS=PARF(100+MOD(KFA/1000,10))+PARF(100+MOD(KFA/100,10))
0037 ELSE
0038 PYMASS=MAX(0D0,PMAS(KC,1)-PARF(122)-2D0*PARF(112)/3D0)
0039 ENDIF
0040
0041
0042 ELSE
0043 PYMASS=PMAS(KC,1)
0044 ENDIF
0045
0046
0047
0048 IF(MSTJ(24).GE.1.AND.PMAS(KC,2).GT.1D-4) THEN
0049 IF(MSTJ(24).EQ.1.OR.(MSTJ(24).EQ.2.AND.KFA.GT.100)) THEN
0050 PYMASS=PYMASS+0.5D0*PMAS(KC,2)*TAN((2D0*PYR(0)-1D0)*
0051 & ATAN(2D0*PMAS(KC,3)/PMAS(KC,2)))
0052 ELSE
0053 PM0=PYMASS
0054 PMLOW=ATAN((MAX(0D0,PM0-PMAS(KC,3))**2-PM0**2)/
0055 & (PM0*PMAS(KC,2)))
0056 PMUPP=ATAN(((PM0+PMAS(KC,3))**2-PM0**2)/(PM0*PMAS(KC,2)))
0057 PYMASS=SQRT(MAX(0D0,PM0**2+PM0*PMAS(KC,2)*TAN(PMLOW+
0058 & (PMUPP-PMLOW)*PYR(0))))
0059 ENDIF
0060 ENDIF
0061 MSTJ(93)=0
0062
0063 RETURN
0064 END