File indexing completed on 2025-08-05 08:21:10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 SUBROUTINE PYGANO(KF,X,Q2,P2,ALAM,XPGA,VXPGA)
0015
0016
0017 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0018 IMPLICIT INTEGER(I-N)
0019 INTEGER PYK,PYCHGE,PYCOMP
0020
0021 DIMENSION XPGA(-6:6), VXPGA(-6:6), ALAMSQ(3:5)
0022 DATA PMC/1.3D0/, PMB/4.6D0/, AEM/0.007297D0/, AEM2PI/0.0011614D0/
0023
0024
0025 DO 100 KFL=-6,6
0026 XPGA(KFL)=0D0
0027 VXPGA(KFL)=0D0
0028 100 CONTINUE
0029 IF(Q2.LE.P2) RETURN
0030 KFA=IABS(KF)
0031
0032
0033 ALAMSQ(3)=(ALAM*(PMC/ALAM)**(2D0/27D0))**2
0034 ALAMSQ(4)=ALAM**2
0035 ALAMSQ(5)=(ALAM*(ALAM/PMB)**(2D0/23D0))**2
0036 P2EFF=MAX(P2,1.2D0*ALAMSQ(3))
0037 IF(KF.EQ.4) P2EFF=MAX(P2EFF,PMC**2)
0038 IF(KF.EQ.5) P2EFF=MAX(P2EFF,PMB**2)
0039 Q2EFF=MAX(Q2,P2EFF)
0040 XL=-LOG(X)
0041
0042
0043 NFP=4
0044 IF(P2EFF.LT.PMC**2) NFP=3
0045 IF(P2EFF.GT.PMB**2) NFP=5
0046 NFQ=4
0047 IF(Q2EFF.LT.PMC**2) NFQ=3
0048 IF(Q2EFF.GT.PMB**2) NFQ=5
0049
0050
0051 IF(KF.EQ.0) THEN
0052 KFLMN=1
0053 KFLMX=5
0054 ELSEIF(KF.LT.0) THEN
0055 KFLMN=1
0056 KFLMX=KFA
0057 ELSE
0058 KFLMN=KFA
0059 KFLMX=KFA
0060 ENDIF
0061
0062
0063 DO 110 KFL=KFLMN,KFLMX
0064
0065
0066 IF(KFL.LE.3.AND.(KFL.EQ.1.OR.KFL.EQ.KF)) THEN
0067 TDIFF=LOG(Q2EFF/P2EFF)
0068 S=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
0069 & LOG(P2EFF/ALAMSQ(NFQ)))
0070 IF(NFQ.GT.NFP) THEN
0071 Q2DIV=PMB**2
0072 IF(NFQ.EQ.4) Q2DIV=PMC**2
0073 SNFQ=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
0074 & LOG(P2EFF/ALAMSQ(NFQ)))
0075 SNFP=(6D0/(33D0-2D0*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
0076 & LOG(P2EFF/ALAMSQ(NFQ-1)))
0077 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
0078 ENDIF
0079 IF(NFQ.EQ.5.AND.NFP.EQ.3) THEN
0080 Q2DIV=PMC**2
0081 SNF4=(6D0/(33D0-2D0*4))*LOG(LOG(Q2DIV/ALAMSQ(4))/
0082 & LOG(P2EFF/ALAMSQ(4)))
0083 SNF3=(6D0/(33D0-2D0*3))*LOG(LOG(Q2DIV/ALAMSQ(3))/
0084 & LOG(P2EFF/ALAMSQ(3)))
0085 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNF3-SNF4)
0086 ENDIF
0087
0088
0089 ELSEIF(KFL.EQ.2.OR.KFL.EQ.3) THEN
0090
0091
0092 ELSEIF(KFL.EQ.4) THEN
0093 IF(Q2.LE.PMC**2) GOTO 110
0094 P2EFF=MAX(P2EFF,PMC**2)
0095 Q2EFF=MAX(Q2EFF,P2EFF)
0096 TDIFF=LOG(Q2EFF/P2EFF)
0097 S=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
0098 & LOG(P2EFF/ALAMSQ(NFQ)))
0099 IF(NFQ.EQ.5.AND.NFP.EQ.4) THEN
0100 Q2DIV=PMB**2
0101 SNFQ=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2DIV/ALAMSQ(NFQ))/
0102 & LOG(P2EFF/ALAMSQ(NFQ)))
0103 SNFP=(6D0/(33D0-2D0*(NFQ-1)))*LOG(LOG(Q2DIV/ALAMSQ(NFQ-1))/
0104 & LOG(P2EFF/ALAMSQ(NFQ-1)))
0105 S=S+(LOG(Q2DIV/P2EFF)/LOG(Q2EFF/P2EFF))*(SNFP-SNFQ)
0106 ENDIF
0107
0108
0109 ELSEIF(KFL.EQ.5) THEN
0110 IF(Q2.LE.PMB**2) GOTO 110
0111 P2EFF=MAX(P2EFF,PMB**2)
0112 Q2EFF=MAX(Q2,P2EFF)
0113 TDIFF=LOG(Q2EFF/P2EFF)
0114 S=(6D0/(33D0-2D0*NFQ))*LOG(LOG(Q2EFF/ALAMSQ(NFQ))/
0115 & LOG(P2EFF/ALAMSQ(NFQ)))
0116 ENDIF
0117
0118
0119 CHSQ=1D0/9D0
0120 IF(KFL.EQ.2.OR.KFL.EQ.4) CHSQ=4D0/9D0
0121 FAC=AEM2PI*2D0*CHSQ*TDIFF
0122
0123
0124 IF(KFL.EQ.1.OR.KFL.EQ.4.OR.KFL.EQ.5.OR.KFL.EQ.KF) THEN
0125 XVAL= ((1.5D0+2.49D0*S+26.9D0*S**2)/(1D0+32.3D0*S**2)*X**2 +
0126 & (1.5D0-0.49D0*S+7.83D0*S**2)/(1D0+7.68D0*S**2)*(1D0-X)**2 +
0127 & 1.5D0*S/(1D0-3.2D0*S+7D0*S**2)*X*(1D0-X)) *
0128 & X**(1D0/(1D0+0.58D0*S)) * (1D0-X**2)**(2.5D0*S/(1D0+10D0*S))
0129 XGLU= 2D0*S/(1D0+4D0*S+7D0*S**2) *
0130 & X**(-1.67D0*S/(1D0+2D0*S)) * (1D0-X**2)**(1.2D0*S) *
0131 & ((4D0*X**2+7D0*X+4D0)*(1D0-X)/3D0 - 2D0*X*(1D0+X)*XL)
0132 XSEA= 0.333D0*S**2/(1D0+4.90D0*S+4.69D0*S**2+21.4D0*S**3) *
0133 & X**(-1.18D0*S/(1D0+1.22D0*S)) * (1D0-X)**(1.2D0*S) *
0134 & ((8D0-73D0*X+62D0*X**2)*(1D0-X)/9D0 +
0135 & (3D0-8D0*X**2/3D0)*X*XL + (2D0*X-1D0)*X*XL**2)
0136
0137
0138 SLL=LOG(LOG(Q2EFF/ALAM**2)/LOG(P2EFF/ALAM**2))
0139 XCHM=0D0
0140 IF(Q2.GT.PMC**2.AND.Q2.GT.1.001D0*P2EFF) THEN
0141 SCH=MAX(0D0,LOG(LOG(PMC**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
0142 XCHM=XSEA*(1D0-(SCH/SLL)**3)
0143 ENDIF
0144 XBOT=0D0
0145 IF(Q2.GT.PMB**2.AND.Q2.GT.1.001D0*P2EFF) THEN
0146 SBT=MAX(0D0,LOG(LOG(PMB**2/ALAM**2)/LOG(P2EFF/ALAM**2)))
0147 XBOT=XSEA*(1D0-(SBT/SLL)**3)
0148 ENDIF
0149 ENDIF
0150
0151
0152 XPGA(0)=XPGA(0)+FAC*XGLU
0153 XPGA(1)=XPGA(1)+FAC*XSEA
0154 XPGA(2)=XPGA(2)+FAC*XSEA
0155 XPGA(3)=XPGA(3)+FAC*XSEA
0156 XPGA(4)=XPGA(4)+FAC*XCHM
0157 XPGA(5)=XPGA(5)+FAC*XBOT
0158 XPGA(KFL)=XPGA(KFL)+FAC*XVAL
0159 VXPGA(KFL)=VXPGA(KFL)+FAC*XVAL
0160 110 CONTINUE
0161 DO 120 KFL=1,5
0162 XPGA(-KFL)=XPGA(KFL)
0163 VXPGA(-KFL)=VXPGA(KFL)
0164 120 CONTINUE
0165
0166 RETURN
0167 END