************************************************************************** * STRUCTURE FUNCTIONS AT HIGH AND LOW Q SQUARED * ************************************************************************** * * * DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS * * * * Program for computing MRS(A) unmodified and modified parton densities * * in the DIS scheme together with the resulting structure functions. * * Setting MODS=0,1 gives the unmodified/modified distributions. * * * * Note that the last part of this package (SUBROUTINE MRSEB ...) * * is just the unmodified DIS low + high Q^2 version of MRS(A). * * * * The reference is : * * A.D. Martin, R.G. Roberts and W.J. Stirling, * * Phys. Rev. D50 (1994) 6734-6752. * * * * Comments etc. to : W.J.Stirling@durham.ac.uk * * * * Two grids need to be read in:- * * one on stream 12 is the DIS MRS(A) high Q^2 grid, 874 lines long * * and begins .. 0.00477 0.00714 28.15842 ... * * the other on stream 13 is the DIS low Q^2 unmodified grid, 322 lines * * and begins .. 0.00353 0.00627 4.23812 ... * * * ************************************************************************** IMPLICIT REAL*8(A-H,O-Z) COMMON/GAUS96/XI(96),WI(96),XX(97),NTERMS COMMON/INPUT/ALAMBDA,FLAVOR,IORD,mods,qsct,qsdt data qsct,qsdt/30.d0,2.7d0/ CALL WATE96 PI=3.1415927d0 ALAMBDA=0.23d0 AL2=ALAMBDA*ALAMBDA C -- MODE is not used in this package, so we set it to zero MODE=0 C -- IORD = 0,1 for leading, next-to-leading order C 99 READ(5,*) X,Q2,IORD,MODS C CALL STRFNS(X,Q2,MODE,IORD,F2P,FLP,F1P,RP,F2N,FLN,F1N,RN, X F2NUT,XF3NUT) SCALE=DSQRT(Q2) IF(IORD.EQ.0) PRINT 101 IF(IORD.GT.0) PRINT 102 IF(MODS.EQ.0) PRINT 111 IF(MODS.GT.0) PRINT 112 F2PMN=F2P-F2N RPN=F2N/F2P PRINT 113,X,Q2 PRINT 103,F2P,FLP,F1P,RP,F2N,FLN,F1N,RN,F2PMN,RPN PRINT 104,F2NUT,XF3NUT CALL MRSZ(X,SCALE,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) PRINT 234,UPV,DNV,GLU,USEA,DSEA,STR,CHM,BOT 234 FORMAT(1X,' upv= ',f8.4,' dnv= ',f8.4, . ' glu= ',f8.4,' usea=',f8.4/ . 1X,' dsea=',f8.4,' str= ',f8.4, . ' chm= ',f8.4,' bot= ',f8.4) durat=usea/dsea GO TO 99 101 FORMAT(1X,'LEADING ORDER') 102 FORMAT(1X,'NEXT-TO-LEADING ORDER') 111 FORMAT(1X,'UNMODIFIED') 112 FORMAT(1X,'MODIFIED ') 113 FORMAT(1X,'X= ',F10.6,' Q2= ',F12.4) 103 FORMAT(1X,'PROTON ',' F2=',F10.5,' FL=',F6.4,' 2XF1=',F8.3,' R=', X F6.4/ 1X,'NEUTRON',' F2=',F10.5,' FL=',F6.4,' 2XF1=',F8.3,' R=', X F6.4/ 1X,'F2(P)-F2(N)=',F6.4,' F2(N)/F2(P)=',F6.4) 104 FORMAT(1X,'NEUTRINO F2=',F6.4,' XF3=',F6.4,2X,F6.4) END SUBROUTINE STRFNS(X,Q2,MODE,IORD,F2P,FLP,F1P,RP,F2N,FLN,F1N,RN, X F2NUT,XF3NUT) C***************************************************************C C C C STRUCTURE FUNCTION PACKAGE. C C THIS SUBROUTINE CALCULATES THE C C STRUCTURE FUNCTIONS OF DEEP INELASTIC SCATTERING WITH ALL C C THE NEXT-TO-LEADING ORDER CORRECTIONS USING THE INPUT PARTON C C DISTRIBUTIONS OF MRS ET AL. IF IORD IS SET TO ZERO ONLY THE C C LEADING ORDER PART OF THE COEFFICIENT FUNCTIONS IS INCLUDED. C C THE LONGITUDINAL STRUCTURE FUNCTION NLO CORRECTIONS ARE TAKENC C TO BE ZERO C C C C***************************************************************C IMPLICIT REAL*8(A-H,O-Z) DIMENSION FX(2),F2(2),F1(2),FL(2),FXY(2),FL1(2),R(2), XFNUT(2),FNUTX(2),FNUTXY(2) COMMON/GAUS96/XI(96),WI(96),XX(97),NTERMS COMMON/INPUT/ALAMBDA,FLAVOR,IORDER,mods,qsct,qsdt CALL WATE96 PI=3.1415927 PI2=PI*PI CF=4./3. CA=3. ALAM=ALAMBDA ALAM2=ALAM*ALAM FLAVOR=4. call thresh(q2,enf,dpsi2) IORDER=IORD ZETA2=1.64493406684823 ZETA3=1.20205690315959 IF(IORD.GT.0.) IORD=1 T=DLOG(Q2/ALAM2) AL=ALPHA(T)/(4.*PI) AL1=DLOG(1.-X) SCALE=DSQRT(Q2) CALL MRSZ(X,SCALE,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) FX(1)=(4.*UPV+DNV+8.*USEA+2.*DSEA+2.*STR+8.*CHM+2.*BOT)/9. FX(2)=(4.*DNV+UPV+8.*DSEA+2.*USEA+2.*STR+8.*CHM+2.*BOT)/9. FNUTX(1)=UPV+DNV+2.*USEA+2.*DSEA+2.*STR+2.*CHM+2.*BOT FNUTX(2)=UPV+DNV DO 1 N=1,2 F2(N)=FX(N) FNUT(N)=FNUTX(N) F1(N)=FX(N) 1 FL(N)=0. IF(IORD.EQ.0) GO TO 3 DO 2 N=1,2 F2(N)=FX(N) FNUT(N)=FNUTX(N) 2 F1(N)=F2(N) 3 CONTINUE YMIN=X YMAX=1. DO 100 I=1,NTERMS Y=0.5*(YMAX+YMIN)+0.5*(YMAX-YMIN)*XI(I) XY=X/Y CALL MRSZ(XY,SCALE,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) FXY(1)=(4.*UPV+DNV+8.*USEA+2.*DSEA+2.*STR+8.*CHM+2.*BOT)/9. FXY(2)=(4.*DNV+UPV+8.*DSEA+2.*USEA+2.*STR+8.*CHM+2.*BOT)/9. FNUTXY(1)=UPV+DNV+2.*USEA+2.*DSEA+2.*STR+2.*CHM+2.*BOT FNUTXY(2)=UPV+DNV FSXY=DPSI2*(UPV+DNV+2.*USEA+2.*DSEA+2.*STR+2.*CHM+2.*BOT) GXY=GLU Y1=1.-Y Y2=Y*Y Y3=Y*Y2 Y4=Y3*Y Y5=Y4*Y F1LQ=4.*CF*Y F1LG=8.*ENF*Y*Y1 DO 4 N=1,2 FL(N)=FL(N)+0.5*(YMAX-YMIN)*WI(I)*AL*(F1LQ*FXY(N)+DPSI2*F1LG*GXY) 4 FL1(N)=FL(N) IF(IORD.EQ.0) GO TO 100 DL=DLOG(Y) DL2=DL*DL DLM1=DLOG(Y1) YP1=Y+1. DLP1=DLOG(YP1) DLM2=DLOG(1.-Y2) DL3=DLOG(Y/Y1) DL4=DLOG(Y2/Y1) F2QA=0. F2QB=0. F2G=0. DO 5 N=1,2 c F2(N)=F2(N)+0.5*(YMAX-YMIN)*WI(I)*AL* c X(F2QA*FXY(N)+F2QB*(FXY(N)-FX(N))+DPSI2*F2G*GXY) FNUT(N)=FNUT(N)+0.5*(YMAX-YMIN)*WI(I)*AL* X((F2QA-FLOAT(N-1)*2.*CF*YP1)*FNUTXY(N)+F2QB*(FNUTXY(N)-FNUTX(N)) X+FLOAT(2-N)*F2G*GXY) 5 F1(N)=F2(N)-FL1(N) DO 6 N=1,2 6 FL(N)=FL(N) 100 CONTINUE DO 7 N=1,2 F1(N)=F2(N)-FL(N) 7 R(N)=FL(N)/F1(N) F2PMN=F2(1)-F2(2) RPN=F2(2)/F2(1) F2P=F2(1) F2N=F2(2) FLP=FL(1) FLN=FL(2) F1P=F1(1) F1N=F1(2) RP=R(1) RN=R(2) F2NUT=FNUT(1) XF3NUT=FNUT(2) RETURN END DOUBLE PRECISION FUNCTION ALPHA(T) IMPLICIT REAL*8(A-H,O-Z) COMMON/INPUT/ALAMBDA,FLAVOR,IORD,mods,qsct,qsdt DATA PI/3.14159/ DATA TOL/.0005/ ITH=0 TT=T AL=ALAMBDA AL2=AL*AL FLAV=4. QS=AL2*EXP(T) if(qs.lt.0.625d0) then qs=0.625d0 t=dlog(qs/al2) tt=t endif IF(QS.gt.QSCT) GO TO 12 IF(QS.lt.QSDT) GO TO 312 11 CONTINUE B0=11-2.*FLAV/3. IF(IORD)1,1,2 c IF(IORD)2,2,2 !TAKE CARE !! 1 CONTINUE ALPHA=4.*PI/B0/T RETURN 2 CONTINUE X1=4.*PI/B0 B1=102.-38.*FLAV/3. X2=B1/B0**2 AS=X1/T*(1.-X2*DLOG(T)/T) 5 CONTINUE F=-T+X1/AS-X2*DLOG(X1/AS+X2) FP=-X1/AS**2*(1.-X2/(X1/AS+X2)) AS2=AS-F/FP DEL=ABS(F/FP/AS) IF(DEL-TOL)3,3,4 3 CONTINUE ALPHA=AS2 IF(ITH.EQ.0) RETURN GO TO (13,14,15) ITH 4 CONTINUE AS=AS2 GO TO 5 12 ITH=1 T=DLOG(QSCT/AL2) GO TO 11 13 ALFQC4=ALPHA FLAV=5. ITH=2 GO TO 11 14 ALFQC5=ALPHA ITH=3 T=TT GO TO 11 15 ALFQS5=ALPHA ALFINV=1./ALFQS5+1./ALFQC4-1./ALFQC5 ALPHA=1./ALFINV RETURN 311 CONTINUE B0=11-2.*FLAV/3. IF(IORD)31,31,32 c IF(IORD)32,32,32 !TAKE CARE !! 31 CONTINUE ALPHA=4.*PI/B0/T RETURN 32 CONTINUE X1=4.*PI/B0 B1=102.-38.*FLAV/3. X2=B1/B0**2 AS=X1/T*(1.-X2*DLOG(T)/T) 35 CONTINUE F=-T+X1/AS-X2*DLOG(X1/AS+X2) FP=-X1/AS**2*(1.-X2/(X1/AS+X2)) AS2=AS-F/FP DEL=ABS(F/FP/AS) IF(DEL-TOL)33,33,34 33 CONTINUE ALPHA=AS2 IF(ITH.EQ.0) RETURN GO TO (313,314,315) ITH 34 CONTINUE AS=AS2 GO TO 35 312 ITH=1 T=DLOG(QSDT/AL2) GO TO 311 313 ALFQC4=ALPHA FLAV=3. ITH=2 GO TO 311 314 ALFQC3=ALPHA ITH=3 T=TT GO TO 311 315 ALFQS3=ALPHA ALFINV=1./ALFQS3+1./ALFQC4-1./ALFQC3 ALPHA=1./ALFINV RETURN END SUBROUTINE WATE96 C******************************************************************* C***** ***** C***** THE X(I) AND W(I) ARE THE DIRECT OUTPUT FROM A PROGRAM ***** C***** USING NAG ROUTINE D01BCF TO CALCULATE THE ***** C***** GAUSS-LEGENDRE WEIGHTS FOR 96 POINT INTEGRATION. ***** C***** THEY AGREE TO TYPICALLY 14 DECIMAL PLACES WITH THE ***** C***** TABLE IN ABRAMOWITZ & STEGUN, PAGE 919. ***** C***** ***** C***** ----> PETER HARRIMAN, APRIL 3RD 1990. ***** C***** ***** C******************************************************************* IMPLICIT REAL*8 (A-H,O-Z) DIMENSION X(48),W(48) COMMON/GAUS96/XI(96),WI(96),XX(97),NTERMS NTERMS=96 X( 1)= 0.01627674484960183561 X( 2)= 0.04881298513604856015 X( 3)= 0.08129749546442434360 X( 4)= 0.11369585011066471632 X( 5)= 0.14597371465489567682 X( 6)= 0.17809688236761733390 X( 7)= 0.21003131046056591064 X( 8)= 0.24174315616383866556 X( 9)= 0.27319881259104774468 X(10)= 0.30436494435449495954 X(11)= 0.33520852289262397655 X(12)= 0.36569686147231213885 X(13)= 0.39579764982890709712 X(14)= 0.42547898840729897474 X(15)= 0.45470942216774136446 X(16)= 0.48345797392059470382 X(17)= 0.51169417715466604391 X(18)= 0.53938810832435567233 X(19)= 0.56651041856139533470 X(20)= 0.59303236477757022282 X(21)= 0.61892584012546672523 X(22)= 0.64416340378496526886 X(23)= 0.66871831004391424358 X(24)= 0.69256453664216964528 X(25)= 0.71567681234896561582 X(26)= 0.73803064374439816819 X(27)= 0.75960234117664555964 X(28)= 0.78036904386743123629 X(29)= 0.80030874413913884180 X(30)= 0.81940031073792957139 X(31)= 0.83762351122818502758 X(32)= 0.85495903343459936363 X(33)= 0.87138850590929436968 X(34)= 0.88689451740241818933 X(35)= 0.90146063531585023110 X(36)= 0.91507142312089592706 X(37)= 0.92771245672230655266 X(38)= 0.93937033975275308073 X(39)= 0.95003271778443564022 X(40)= 0.95968829144874048809 X(41)= 0.96832682846326217918 X(42)= 0.97593917458513455843 X(43)= 0.98251726356301274934 X(44)= 0.98805412632962202890 X(45)= 0.99254390032376081654 X(46)= 0.99598184298720747465 X(47)= 0.99836437586317963722 X(48)= 0.99968950388322870559 W( 1)= 0.03255061449236316962 W( 2)= 0.03251611871386883307 W( 3)= 0.03244716371406427668 W( 4)= 0.03234382256857594104 W( 5)= 0.03220620479403026124 W( 6)= 0.03203445623199267876 W( 7)= 0.03182875889441101874 W( 8)= 0.03158933077072719007 W( 9)= 0.03131642559686137819 W(10)= 0.03101033258631386231 W(11)= 0.03067137612366917839 W(12)= 0.03029991542082762553 W(13)= 0.02989634413632842385 W(14)= 0.02946108995816795100 W(15)= 0.02899461415055528410 W(16)= 0.02849741106508543861 W(17)= 0.02797000761684838950 W(18)= 0.02741296272602931385 W(19)= 0.02682686672559184485 W(20)= 0.02621234073567250055 W(21)= 0.02557003600534944960 W(22)= 0.02490063322248370695 W(23)= 0.02420484179236479915 W(24)= 0.02348339908592633665 W(25)= 0.02273706965832950717 W(26)= 0.02196664443874448477 W(27)= 0.02117293989219144572 W(28)= 0.02035679715433347898 W(29)= 0.01951908114014518992 W(30)= 0.01866067962741165898 W(31)= 0.01778250231604547316 W(32)= 0.01688547986424539715 W(33)= 0.01597056290256253144 W(34)= 0.01503872102699521608 W(35)= 0.01409094177231515264 W(36)= 0.01312822956696188190 W(37)= 0.01215160467108866759 W(38)= 0.01116210209983888144 W(39)= 0.01016077053500880978 W(40)= 0.00914867123078384552 W(41)= 0.00812687692569928101 W(42)= 0.00709647079115442616 W(43)= 0.00605854550423662775 W(44)= 0.00501420274292825661 W(45)= 0.00396455433844564804 W(46)= 0.00291073181793626202 W(47)= 0.00185396078894924657 W(48)= 0.00079679206555731759 DO 1 I=1,48 XI(I)=-X(49-I) WI(I)=W(49-I) XI(I+48)=X(I) WI(I+48)=W(I) 1 CONTINUE DO 2 I=1,96 2 XX(I)=0.5*(XI(I)+1.) XX(97)=1.0 EXPON=3.0 DO 3 I=1,96 YI=2.*(0.5*(1.+XI(I)))**EXPON-1. WI(I)=WI(I)/(1.+XI(I))*(1.+YI)*EXPON XI(I)=YI XX(I)=0.5*(1.+YI) 3 CONTINUE RETURN END C FUNCTION FASTLI2(X) IMPLICIT REAL*8(A-H,O-Z) COMPLEX*16 WGPLG FASTLI2=WGPLG(1,1,X) RETURN END FUNCTION FASTS12(X) IMPLICIT REAL*8(A-H,O-Z) COMPLEX*16 WGPLG FASTS12=WGPLG(1,2,X) RETURN END FUNCTION FASTLI3(X) IMPLICIT REAL*8(A-H,O-Z) COMPLEX*16 WGPLG FASTLI3=WGPLG(2,1,X) RETURN END C C 24/08/89 101231638 MEMBER NAME WGPLG (ZWPROD.S) F77 C NOTE THAT WGPLG(1,1,X) IS DILOG(X) !! COMPLEX FUNCTION WGPLG*16(N,P,X) INTEGER P,P1,NC(10),INDEX(31) DOUBLE PRECISION FCT(0:4),SGN(0:4),U(0:4),S1(4,4),C(4,4) DOUBLE PRECISION A(0:30,10) DOUBLE PRECISION X,X1,H,ALFA,R,Q,C1,C2,B0,B1,B2,ZERO,HALF COMPLEX*16 V(0:5),SK,SM DATA FCT /1.0D0,1.0D0,2.0D0,6.0D0,24.0D0/ DATA SGN /1.0D0,-1.0D0,1.0D0,-1.0D0,1.0D0/ DATA ZERO /0.0D0/, HALF /0.5D0/ DATA C1 /1.33333 33333 333D0/, C2 /0.33333 33333 3333D0/ DATA S1(1,1) /1.64493 40668 482D0/ DATA S1(1,2) /1.20205 69031 596D0/ DATA S1(1,3) /1.08232 32337 111D0/ DATA S1(1,4) /1.03692 77551 434D0/ DATA S1(2,1) /1.20205 69031 596D0/ DATA S1(2,2) /2.70580 80842 778D-1/ DATA S1(2,3) /9.65511 59989 444D-2/ DATA S1(3,1) /1.08232 32337 111D0/ DATA S1(3,2) /9.65511 59989 444D-2/ DATA S1(4,1) /1.03692 77551 434D0/ DATA C(1,1) / 1.64493 40668 482D0/ DATA C(1,2) / 1.20205 69031 596D0/ DATA C(1,3) / 1.08232 32337 111D0/ DATA C(1,4) / 1.03692 77551 434D0/ DATA C(2,1) / 0.00000 00000 000D0/ DATA C(2,2) /-1.89406 56589 945D0/ DATA C(2,3) /-3.01423 21054 407D0/ DATA C(3,1) / 1.89406 56589 945D0/ DATA C(3,2) / 3.01423 21054 407D0/ DATA C(4,1) / 0.00000 00000 000D0/ DATA INDEX /1,2,3,4,6*0,5,6,7,7*0,8,9,8*0,10/ DATA NC /24,26,28,30,22,24,26,19,22,17/ DATA A( 0,1) / .96753 21504 3498D0/ DATA A( 1,1) / .16607 30329 2785D0/ DATA A( 2,1) / .02487 93229 2423D0/ DATA A( 3,1) / .00468 63619 5945D0/ DATA A( 4,1) / .00100 16274 9616D0/ DATA A( 5,1) / .00023 20021 9609D0/ DATA A( 6,1) / .00005 68178 2272D0/ DATA A( 7,1) / .00001 44963 0056D0/ DATA A( 8,1) / .00000 38163 2946D0/ DATA A( 9,1) / .00000 10299 0426D0/ DATA A(10,1) / .00000 02835 7538D0/ DATA A(11,1) / .00000 00793 8705D0/ DATA A(12,1) / .00000 00225 3670D0/ DATA A(13,1) / .00000 00064 7434D0/ DATA A(14,1) / .00000 00018 7912D0/ DATA A(15,1) / .00000 00005 5029D0/ DATA A(16,1) / .00000 00001 6242D0/ DATA A(17,1) / .00000 00000 4827D0/ DATA A(18,1) / .00000 00000 1444D0/ DATA A(19,1) / .00000 00000 0434D0/ DATA A(20,1) / .00000 00000 0131D0/ DATA A(21,1) / .00000 00000 0040D0/ DATA A(22,1) / .00000 00000 0012D0/ DATA A(23,1) / .00000 00000 0004D0/ DATA A(24,1) / .00000 00000 0001D0/ DATA A( 0,2) / .95180 88912 7832D0/ DATA A( 1,2) / .43131 13184 6532D0/ DATA A( 2,2) / .10002 25071 4905D0/ DATA A( 3,2) / .02442 41559 5220D0/ DATA A( 4,2) / .00622 51246 3724D0/ DATA A( 5,2) / .00164 07883 1235D0/ DATA A( 6,2) / .00044 40792 0265D0/ DATA A( 7,2) / .00012 27749 4168D0/ DATA A( 8,2) / .00003 45398 1284D0/ DATA A( 9,2) / .00000 98586 9565D0/ DATA A(10,2) / .00000 28485 6995D0/ DATA A(11,2) / .00000 08317 0847D0/ DATA A(12,2) / .00000 02450 3950D0/ DATA A(13,2) / .00000 00727 6496D0/ DATA A(14,2) / .00000 00217 5802D0/ DATA A(15,2) / .00000 00065 4616D0/ DATA A(16,2) / .00000 00019 8033D0/ DATA A(17,2) / .00000 00006 0204D0/ DATA A(18,2) / .00000 00001 8385D0/ DATA A(19,2) / .00000 00000 5637D0/ DATA A(20,2) / .00000 00000 1735D0/ DATA A(21,2) / .00000 00000 0536D0/ DATA A(22,2) / .00000 00000 0166D0/ DATA A(23,2) / .00000 00000 0052D0/ DATA A(24,2) / .00000 00000 0016D0/ DATA A(25,2) / .00000 00000 0005D0/ DATA A(26,2) / .00000 00000 0002D0/ DATA A( 0,3) / .98161 02799 1365D0/ DATA A( 1,3) / .72926 80632 0726D0/ DATA A( 2,3) / .22774 71490 9321D0/ DATA A( 3,3) / .06809 08329 6197D0/ DATA A( 4,3) / .02013 70118 3064D0/ DATA A( 5,3) / .00595 47848 0197D0/ DATA A( 6,3) / .00176 76901 3959D0/ DATA A( 7,3) / .00052 74821 8502D0/ DATA A( 8,3) / .00015 82746 1460D0/ DATA A( 9,3) / .00004 77492 2076D0/ DATA A(10,3) / .00001 44792 0408D0/ DATA A(11,3) / .00000 44115 4886D0/ DATA A(12,3) / .00000 13500 3870D0/ DATA A(13,3) / .00000 04148 1779D0/ DATA A(14,3) / .00000 01279 3307D0/ DATA A(15,3) / .00000 00395 9070D0/ DATA A(16,3) / .00000 00122 9055D0/ DATA A(17,3) / .00000 00038 2658D0/ DATA A(18,3) / .00000 00011 9459D0/ DATA A(19,3) / .00000 00003 7386D0/ DATA A(20,3) / .00000 00001 1727D0/ DATA A(21,3) / .00000 00000 3687D0/ DATA A(22,3) / .00000 00000 1161D0/ DATA A(23,3) / .00000 00000 0366D0/ DATA A(24,3) / .00000 00000 0116D0/ DATA A(25,3) / .00000 00000 0037D0/ DATA A(26,3) / .00000 00000 0012D0/ DATA A(27,3) / .00000 00000 0004D0/ DATA A(28,3) / .00000 00000 0001D0/ DATA A( 0,4) /1.06405 21184 614 D0/ DATA A( 1,4) /1.06917 20744 981 D0/ DATA A( 2,4) / .41527 19325 1768D0/ DATA A( 3,4) / .14610 33293 6222D0/ DATA A( 4,4) / .04904 73264 8784D0/ DATA A( 5,4) / .01606 34086 0396D0/ DATA A( 6,4) / .00518 88935 0790D0/ DATA A( 7,4) / .00166 29871 7324D0/ DATA A( 8,4) / .00053 05827 9969D0/ DATA A( 9,4) / .00016 88702 9251D0/ DATA A(10,4) / .00005 36832 8059D0/ DATA A(11,4) / .00001 70592 3313D0/ DATA A(12,4) / .00000 54217 4374D0/ DATA A(13,4) / .00000 17239 4082D0/ DATA A(14,4) / .00000 05485 3275D0/ DATA A(15,4) / .00000 01746 7795D0/ DATA A(16,4) / .00000 00556 7550D0/ DATA A(17,4) / .00000 00177 6234D0/ DATA A(18,4) / .00000 00056 7224D0/ DATA A(19,4) / .00000 00018 1313D0/ DATA A(20,4) / .00000 00005 8012D0/ DATA A(21,4) / .00000 00001 8579D0/ DATA A(22,4) / .00000 00000 5955D0/ DATA A(23,4) / .00000 00000 1911D0/ DATA A(24,4) / .00000 00000 0614D0/ DATA A(25,4) / .00000 00000 0197D0/ DATA A(26,4) / .00000 00000 0063D0/ DATA A(27,4) / .00000 00000 0020D0/ DATA A(28,4) / .00000 00000 0007D0/ DATA A(29,4) / .00000 00000 0002D0/ DATA A(30,4) / .00000 00000 0001D0/ DATA A( 0,5) / .97920 86066 9175D0/ DATA A( 1,5) / .08518 81314 8683D0/ DATA A( 2,5) / .00855 98522 2013D0/ DATA A( 3,5) / .00121 17721 4413D0/ DATA A( 4,5) / .00020 72276 8531D0/ DATA A( 5,5) / .00003 99695 8691D0/ DATA A( 6,5) / .00000 83806 4065D0/ DATA A( 7,5) / .00000 18684 8945D0/ DATA A( 8,5) / .00000 04366 6087D0/ DATA A( 9,5) / .00000 01059 1733D0/ DATA A(10,5) / .00000 00264 7892D0/ DATA A(11,5) / .00000 00067 8700D0/ DATA A(12,5) / .00000 00017 7654D0/ DATA A(13,5) / .00000 00004 7342D0/ DATA A(14,5) / .00000 00001 2812D0/ DATA A(15,5) / .00000 00000 3514D0/ DATA A(16,5) / .00000 00000 0975D0/ DATA A(17,5) / .00000 00000 0274D0/ DATA A(18,5) / .00000 00000 0077D0/ DATA A(19,5) / .00000 00000 0022D0/ DATA A(20,5) / .00000 00000 0006D0/ DATA A(21,5) / .00000 00000 0002D0/ DATA A(22,5) / .00000 00000 0001D0/ DATA A( 0,6) / .95021 85196 3952D0/ DATA A( 1,6) / .29052 52916 1433D0/ DATA A( 2,6) / .05081 77406 1716D0/ DATA A( 3,6) / .00995 54376 7280D0/ DATA A( 4,6) / .00211 73389 5031D0/ DATA A( 5,6) / .00047 85947 0550D0/ DATA A( 6,6) / .00011 33432 1308D0/ DATA A( 7,6) / .00002 78473 3104D0/ DATA A( 8,6) / .00000 70478 8108D0/ DATA A( 9,6) / .00000 18278 8740D0/ DATA A(10,6) / .00000 04838 7492D0/ DATA A(11,6) / .00000 01303 3842D0/ DATA A(12,6) / .00000 00356 3769D0/ DATA A(13,6) / .00000 00098 7174D0/ DATA A(14,6) / .00000 00027 6586D0/ DATA A(15,6) / .00000 00007 8279D0/ DATA A(16,6) / .00000 00002 2354D0/ DATA A(17,6) / .00000 00000 6435D0/ DATA A(18,6) / .00000 00000 1866D0/ DATA A(19,6) / .00000 00000 0545D0/ DATA A(20,6) / .00000 00000 0160D0/ DATA A(21,6) / .00000 00000 0047D0/ DATA A(22,6) / .00000 00000 0014D0/ DATA A(23,6) / .00000 00000 0004D0/ DATA A(24,6) / .00000 00000 0001D0/ DATA A( 0,7) / .95064 03218 6777D0/ DATA A( 1,7) / .54138 28546 5171D0/ DATA A( 2,7) / .13649 97959 0321D0/ DATA A( 3,7) / .03417 94232 8207D0/ DATA A( 4,7) / .00869 02788 3583D0/ DATA A( 5,7) / .00225 28408 4155D0/ DATA A( 6,7) / .00059 51608 9806D0/ DATA A( 7,7) / .00015 99561 7766D0/ DATA A( 8,7) / .00004 36521 3096D0/ DATA A( 9,7) / .00001 20747 4688D0/ DATA A(10,7) / .00000 33801 8176D0/ DATA A(11,7) / .00000 09563 2476D0/ DATA A(12,7) / .00000 02731 3129D0/ DATA A(13,7) / .00000 00786 6968D0/ DATA A(14,7) / .00000 00228 3195D0/ DATA A(15,7) / .00000 00066 7205D0/ DATA A(16,7) / .00000 00019 6191D0/ DATA A(17,7) / .00000 00005 8018D0/ DATA A(18,7) / .00000 00001 7246D0/ DATA A(19,7) / .00000 00000 5151D0/ DATA A(20,7) / .00000 00000 1545D0/ DATA A(21,7) / .00000 00000 0465D0/ DATA A(22,7) / .00000 00000 0141D0/ DATA A(23,7) / .00000 00000 0043D0/ DATA A(24,7) / .00000 00000 0013D0/ DATA A(25,7) / .00000 00000 0004D0/ DATA A(26,7) / .00000 00000 0001D0/ DATA A( 0,8) / .98800 01167 2229D0/ DATA A( 1,8) / .04364 06760 9601D0/ DATA A( 2,8) / .00295 09117 8278D0/ DATA A( 3,8) / .00031 47780 9720D0/ DATA A( 4,8) / .00004 31484 6029D0/ DATA A( 5,8) / .00000 69381 8230D0/ DATA A( 6,8) / .00000 12464 0350D0/ DATA A( 7,8) / .00000 02429 3628D0/ DATA A( 8,8) / .00000 00504 0827D0/ DATA A( 9,8) / .00000 00109 9075D0/ DATA A(10,8) / .00000 00024 9467D0/ DATA A(11,8) / .00000 00005 8540D0/ DATA A(12,8) / .00000 00001 4127D0/ DATA A(13,8) / .00000 00000 3492D0/ DATA A(14,8) / .00000 00000 0881D0/ DATA A(15,8) / .00000 00000 0226D0/ DATA A(16,8) / .00000 00000 0059D0/ DATA A(17,8) / .00000 00000 0016D0/ DATA A(18,8) / .00000 00000 0004D0/ DATA A(19,8) / .00000 00000 0001D0/ DATA A( 0,9) / .95768 50654 6350D0/ DATA A( 1,9) / .19725 24967 9534D0/ DATA A( 2,9) / .02603 37031 3918D0/ DATA A( 3,9) / .00409 38216 8261D0/ DATA A( 4,9) / .00072 68170 7110D0/ DATA A( 5,9) / .00014 09187 9261D0/ DATA A( 6,9) / .00002 92045 8914D0/ DATA A( 7,9) / .00000 63763 1144D0/ DATA A( 8,9) / .00000 14516 7850D0/ DATA A( 9,9) / .00000 03420 5281D0/ DATA A(10,9) / .00000 00829 4302D0/ DATA A(11,9) / .00000 00206 0784D0/ DATA A(12,9) / .00000 00052 2823D0/ DATA A(13,9) / .00000 00013 5066D0/ DATA A(14,9) / .00000 00003 5451D0/ DATA A(15,9) / .00000 00000 9436D0/ DATA A(16,9) / .00000 00000 2543D0/ DATA A(17,9) / .00000 00000 0693D0/ DATA A(18,9) / .00000 00000 0191D0/ DATA A(19,9) / .00000 00000 0053D0/ DATA A(20,9) / .00000 00000 0015D0/ DATA A(21,9) / .00000 00000 0004D0/ DATA A(22,9) / .00000 00000 0001D0/ DATA A( 0,10) / .99343 65167 1347D0/ DATA A( 1,10) / .02225 77012 6826D0/ DATA A( 2,10) / .00101 47557 4703D0/ DATA A( 3,10) / .00008 17515 6250D0/ DATA A( 4,10) / .00000 89997 3547D0/ DATA A( 5,10) / .00000 12082 3987D0/ DATA A( 6,10) / .00000 01861 6913D0/ DATA A( 7,10) / .00000 00317 4723D0/ DATA A( 8,10) / .00000 00058 5215D0/ DATA A( 9,10) / .00000 00011 4739D0/ DATA A(10,10) / .00000 00002 3652D0/ DATA A(11,10) / .00000 00000 5082D0/ DATA A(12,10) / .00000 00000 1131D0/ DATA A(13,10) / .00000 00000 0259D0/ DATA A(14,10) / .00000 00000 0061D0/ DATA A(15,10) / .00000 00000 0015D0/ DATA A(16,10) / .00000 00000 0004D0/ DATA A(17,10) / .00000 00000 0001D0/ IF(N .LT. 1 .OR. N .GT. 4 .OR. P .LT. 1 .OR. P .GT. 4 .OR. 1 N+P .GT. 5) THEN WGPLG=ZERO PRINT 1000, N,P RETURN END IF IF(X .EQ. SGN(0)) THEN WGPLG=S1(N,P) RETURN END IF IF(X .GT. FCT(2) .OR. X .LT. SGN(1)) THEN X1=SGN(0)/X H=C1*X1+C2 ALFA=H+H V(0)=SGN(0) V(1)=LOG(DCMPLX(-X,ZERO)) DO 33 L = 2,N+P 33 V(L)=V(1)*V(L-1)/L SK=ZERO DO 34 K = 0,P-1 P1=P-K R=X1**P1/(FCT(P1)*FCT(N-1)) SM=ZERO DO 35 M = 0,K N1=N+K-M L=INDEX(10*N1+P1-10) B1=ZERO B2=ZERO DO 31 I = NC(L),0,-1 B0=A(I,L)+ALFA*B1-B2 B2=B1 31 B1=B0 Q=(FCT(N1-1)/FCT(K-M))*(B0-H*B2)*R/P1**N1 35 SM=SM+V(M)*Q 34 SK=SK+SGN(K)*SM SM=ZERO DO 36 M = 0,N-1 36 SM=SM+V(M)*C(N-M,P) WGPLG=SGN(N)*SK+SGN(P)*(SM+V(N+P)) RETURN END IF IF(X .GT. HALF) THEN X1=SGN(0)-X H=C1*X1+C2 ALFA=H+H V(0)=SGN(0) U(0)=SGN(0) V(1)=LOG(DCMPLX(X1,ZERO)) U(1)=LOG(X) DO 23 L = 2,P 23 V(L)=V(1)*V(L-1)/L DO 26 L = 2,N 26 U(L)=U(1)*U(L-1)/L SK=ZERO DO 24 K = 0,N-1 P1=N-K R=X1**P1/FCT(P1) SM=ZERO DO 25 M = 0,P-1 N1=P-M L=INDEX(10*N1+P1-10) B1=ZERO B2=ZERO DO 12 I = NC(L),0,-1 B0=A(I,L)+ALFA*B1-B2 B2=B1 12 B1=B0 Q=SGN(M)*(B0-H*B2)*R/P1**N1 25 SM=SM+V(M)*Q 24 SK=SK+U(K)*(S1(P1,P)-SM) WGPLG=SK+SGN(P)*U(N)*V(P) RETURN END IF L=INDEX(10*N+P-10) H=C1*X+C2 ALFA=H+H B1=ZERO B2=ZERO DO 11 I = NC(L),0,-1 B0=A(I,L)+ALFA*B1-B2 B2=B1 11 B1=B0 WGPLG=(B0-H*B2)*X**P/(FCT(P)*P**N) RETURN 1000 FORMAT(/' ***** CERN SUBROUTINE WGPLG ... ILLEGAL VALUES', 1 ' N = ',I3,' P = ',I3) END C SUBROUTINE MRSZ(X,SCALE,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) IMPLICIT REAL*8(A-H,O-Z) COMMON/INPUT/ALAMBDA,FLAVOR,IORD,mods,qsct,qsdt C C This subroutine delivers the usual array of parton values C with or without modifications as determined by MODS C Note that MODE is dummy here C q2=scale*scale if(mods.eq.0) then xxi=x factor=1. else r2=1.+4.*0.88*x*x/q2 r=dsqrt(r2) xxi=2.*x/(1.+r) xf=x if(x.lt.0.00001) xf=0.00001 emass2=0.055*x**(-0.39) emass2=emass2*dexp(-q2/5.) factor=q2/(q2 + emass2) if(factor.lt.0.d0) factor=0.d0 if(factor.gt.1.d0) factor=1.d0 endif if(q2.lt.0.625) then scalez=dsqrt(0.625d0) else scalez=scale endif CALL MRSEB(Xxi,SCALEz,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) upv=factor*upv dnv=factor*dnv usea=factor*usea dsea=factor*dsea str=factor*str chm=factor*chm bot=factor*bot glu=factor*glu if(mods.eq.0) then return else theta=0.12/(q2 + 0.12) dnv=(1.+theta)*dnv + theta*upv upv=(1.-0.25*theta)*upv-0.25*theta*dnv endif return end subroutine thresh(q2,enf,dpsi2) implicit real*8(a-h,o-z) i=1 if(q2.gt.2.4) i=2 if(q2.gt.3.) i=3 if(q2.gt.25.) i=4 if(q2.gt.35.) i=5 go to (1,2,3,4,5) i 1 enf=3. dpsi2=(6./9.)/enf return 2 enf=(5./3.)*q2 -1. dpsi2=( (20./3.)*q2 -10.)/9./enf return 3 enf=4. dpsi2=(10./9.)/enf return 4 enf=q2/10. + 1.5 dpsi2=(q2+75.)/90./enf return 5 enf=5. dpsi2=(11./9.)/enf return end C SUBROUTINE MRSEB(X,SCALE,MODE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) C***************************************************************C C C C DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS C C C C This is a high+low Q^2 DIS version of the MRS(A) parton C C distributions. The Q^2 range is now extended down C C to Q^2 = 0.625 GeV^2, and the x range is, as before, C C 10^-5 < x < 1. C C The package reads two grids, one of which is the C C standard high Q^2 MRS(A) grid and the other is an C C add-on for low Q^2. Note that x times the parton C C distribution is returned, Q is the scale in GeV, C C and Lambda(MSbar,nf=4) = 230 MeV. MODE is not used here. C C C C C C The reference is : C C A.D. Martin, R.G. Roberts and W.J. Stirling, C C University of Durham preprint DTP/94/78 (1994) C C C C Comments to : W.J.Stirling@durham.ac.uk C C C C >>>>>>>> CROSS CHECK <<<<<<<< C C C C THE FIRST NUMBER IN THE "LOW Q" GRID IS 0.00353 C C THE FIRST NUMBER IN THE "HI Q" GRID IS 0.00477 C C C C***************************************************************C IMPLICIT REAL*8(A-H,O-Z) Q2=SCALE**2 IF(Q2.LT.0.625D0.OR.Q2.GT.1310720.D0) PRINT 99 IF(Q2.GT.5D0) CALL STRC35(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT, XGLU) IF(Q2.LE.5D0) CALL STRC36(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT, XGLU) 99 FORMAT(' WARNING: Q^2 VALUE IS OUT OF RANGE ') RETURN END C SUBROUTINE STRC35(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) C THIS IS THE NEW "A" FIT -- May 1994 -- standard Q^2 range C DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS IMPLICIT REAL*8(A-H,O-Z) parameter(nx=47) parameter(ntenth=21) DIMENSION F(8,NX,20),G(8),XX(NX),N0(8) DATA XX/1.d-5,2.d-5,4.d-5,6.d-5,8.d-5, . 1.D-4,2.D-4,4.D-4,6.D-4,8.D-4, . 1.D-3,2.D-3,4.D-3,6.D-3,8.D-3, . 1.D-2,2.D-2,4.D-2,6.D-2,8.D-2, . .1D0,.125D0,.15D0,.175D0,.2D0,.225D0,.25D0,.275D0, . .3D0,.325D0,.35D0,.375D0,.4D0,.425D0,.45D0,.475D0, . .5D0,.525D0,.55D0,.575D0,.6D0,.65D0,.7D0,.75D0, . .8D0,.9D0,1.D0/ DATA XMIN,XMAX,QSQMIN,QSQMAX/1.D-5,1.D0,5.D0,1310720.D0/ DATA N0/2,5,5,9,0,0,9,9/ DATA INIT/0/ xsave=x IF(INIT.NE.0) GOTO 10 INIT=1 DO 20 N=1,nx-1 DO 20 M=1,19 READ(12,50)F(1,N,M),F(2,N,M),F(3,N,M),F(4,N,M),F(5,N,M),F(7,N,M), . F(6,N,M),F(8,N,M) C 1=UV 2=DV 3=GLUE 4=UBAR 5=CBAR 7=BBAR 6=SBAR 8=DBAR DO 25 I=1,8 25 F(I,N,M)=F(I,N,M)/(1.D0-XX(N))**N0(I) 20 CONTINUE DO 31 J=1,NTENTH-1 XX(J)=DLOG10(XX(J))+1.1D0 DO 31 I=1,8 IF(I.EQ.7) GO TO 31 DO 30 K=1,19 30 F(I,J,K)=DLOG(F(I,J,K))*F(I,ntenth,K)/DLOG(F(I,ntenth,K)) 31 CONTINUE 50 FORMAT(8F10.5) DO 40 I=1,8 DO 40 M=1,19 40 F(I,nx,M)=0.D0 10 CONTINUE IF(X.LT.XMIN) X=XMIN IF(X.GT.XMAX) X=XMAX QSQ=SCALE**2 IF(QSQ.LT.QSQMIN) QSQ=QSQMIN IF(QSQ.GT.QSQMAX) QSQ=QSQMAX XXX=X IF(X.LT.1.D-1) XXX=DLOG10(X)+1.1D0 N=0 70 N=N+1 IF(XXX.GT.XX(N+1)) GOTO 70 A=(XXX-XX(N))/(XX(N+1)-XX(N)) RM=DLOG(QSQ/QSQMIN)/DLOG(2.D0) B=RM-DINT(RM) M=1+IDINT(RM) DO 60 I=1,8 G(I)= (1.D0-A)*(1.D0-B)*F(I,N,M)+(1.D0-A)*B*F(I,N,M+1) . + A*(1.D0-B)*F(I,N+1,M) + A*B*F(I,N+1,M+1) IF(N.GE.ntenth) GOTO 65 IF(I.EQ.7) GOTO 65 FAC=(1.D0-B)*F(I,ntenth,M)+B*F(I,ntenth,M+1) G(I)=FAC**(G(I)/FAC) 65 CONTINUE G(I)=G(I)*(1.D0-X)**N0(I) 60 CONTINUE UPV=G(1) DNV=G(2) USEA=G(4) DSEA=G(8) STR=G(6) CHM=G(5) GLU=G(3) BOT=G(7) x=xsave RETURN END C SUBROUTINE STRC36(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,GLU) C THIS IS THE NEW "A" FIT -- May 1994 -- low Q^2 range C DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS DIS IMPLICIT REAL*8(A-H,O-Z) parameter(nx=47) parameter(ntenth=21) DIMENSION F(8,NX,8),G(8),XX(NX),N0(8) DATA XX/1.d-5,2.d-5,4.d-5,6.d-5,8.d-5, . 1.D-4,2.D-4,4.D-4,6.D-4,8.D-4, . 1.D-3,2.D-3,4.D-3,6.D-3,8.D-3, . 1.D-2,2.D-2,4.D-2,6.D-2,8.D-2, . .1D0,.125D0,.15D0,.175D0,.2D0,.225D0,.25D0,.275D0, . .3D0,.325D0,.35D0,.375D0,.4D0,.425D0,.45D0,.475D0, . .5D0,.525D0,.55D0,.575D0,.6D0,.65D0,.7D0,.75D0, . .8D0,.9D0,1.D0/ DATA XMIN,XMAX,QSQMIN,QSQMAX/1.D-5,1.D0,0.625D0,5.D0/ DATA N0/2,5,5,9,0,0,9,9/ DATA INIT/0/ xsave=x ! don't let x be altered if it's out of range!! IF(INIT.NE.0) GOTO 10 INIT=1 DO 20 N=1,nx-1 DO 20 M=1,7 READ(13,50)F(1,N,M),F(2,N,M),F(3,N,M),F(4,N,M),F(5,N,M),F(7,N,M), . F(6,N,M),F(8,N,M) C 1=UV 2=DV 3=GLUE 4=UBAR 5=CBAR 7=BBAR 6=SBAR 8=DBAR DO 25 I=1,8 25 F(I,N,M)=F(I,N,M)/(1.D0-XX(N))**N0(I) 20 CONTINUE DO 31 J=1,NTENTH-1 XX(J)=DLOG10(XX(J))+1.1D0 DO 31 I=1,8 IF(I.EQ.7.or.i.eq.5) GO TO 31 DO 30 K=1,7 30 F(I,J,K)=DLOG(F(I,J,K))*F(I,ntenth,K)/DLOG(F(I,ntenth,K)) 31 CONTINUE 50 FORMAT(8F10.5) DO 40 I=1,8 DO 40 M=1,7 40 F(I,nx,M)=0.D0 10 CONTINUE IF(X.LT.XMIN) X=XMIN IF(X.GT.XMAX) X=XMAX QSQ=SCALE**2 IF(QSQ.LT.QSQMIN) QSQ=QSQMIN IF(QSQ.GT.QSQMAX) QSQ=QSQMAX XXX=X IF(X.LT.1.D-1) XXX=DLOG10(X)+1.1D0 N=0 70 N=N+1 IF(XXX.GT.XX(N+1)) GOTO 70 A=(XXX-XX(N))/(XX(N+1)-XX(N)) RM=DLOG(QSQ/QSQMIN)/DLOG(2.D0)*2D0 B=RM-DINT(RM) M=1+IDINT(RM) DO 60 I=1,8 G(I)= (1.D0-A)*(1.D0-B)*F(I,N,M)+(1.D0-A)*B*F(I,N,M+1) . + A*(1.D0-B)*F(I,N+1,M) + A*B*F(I,N+1,M+1) IF(N.GE.ntenth) GOTO 65 IF(I.EQ.7.or.i.eq.5) GOTO 65 FAC=(1.D0-B)*F(I,ntenth,M)+B*F(I,ntenth,M+1) G(I)=FAC**(G(I)/FAC) 65 CONTINUE G(I)=G(I)*(1.D0-X)**N0(I) 60 CONTINUE UPV=G(1) DNV=G(2) USEA=G(4) DSEA=G(8) STR=G(6) CHM=G(5) GLU=G(3) BOT=G(7) x=xsave !restore x RETURN END