4 subroutine EVLCTEQevolve(x,Q,f)
6 include 'parmsetup.inc'
7 character*16 name(nmxset)
8 integer nmem(nmxset),ndef(nmxset),mmem
9 common/NAME/name,nmem,ndef,mmem
11 real*8 x,Q,xx,qq,up,dn,ubar,dbar,gluon,sbar,cbar,bbar,tbar,Blam
12 real*8 xmin,qmax,anx,anq,Q2fit,qini,Ahdn,ordi,anf,mass,pi,alfas
14 real*8 CtLhpardis,CtLhALPI,parmflavor,CtLhastolam
15 integer nflavor,Eorder,j,nx,nq
17 data pi / 3.141592653589793d0 /
19 save nflavor,xmin,qmax,anx,anq
24 up = xx*CtLhpardis(1,xx,qq)
25 dn = xx*CtLhpardis(2,xx,qq)
26 ubar = xx*CtLhpardis(-1,xx,qq)
27 dbar = xx*CtLhpardis(-2,xx,qq)
28 gluon= xx*CtLhpardis( 0,xx,qq)
30 if(nflavor .ge. 3) then
31 sbar = xx*CtLhpardis(-3,xx,qq)
36 if(nflavor .ge. 4) then
37 cbar = xx*CtLhpardis(-4,xx,qq)
42 if(nflavor .ge. 5) then
43 bbar = xx*CtLhpardis(-5,xx,qq)
48 if(nflavor .eq. 6) then
49 tbar = xx*CtLhpardis(-6,xx,qq)
70 entry EVLCTEQread(nset)
73 read(1,*) xmin,qmax,nx,nq
78 entry EVLCTEQalfa(alfas,Q)
79 alfas = pi*CtLhALPI(Q)
82 entry EVLCTEQinit(nset,Eorder,Q2fit)
85 call CtLhParPdf(1,'IHDN',Ahdn,j)
86 call CtLhParPdf(1,'QMAX',qmax,j)
87 call CtLhParPdf(1,'XMIN',xmin,j)
88 call GetOrderAsM(nset,j)
90 call CtLhParQcd(1,'ORDR',ordi,j)
91 call GetThresholdM(nset,4,mass)
92 call CtLhParQcd(1,'M4',mass,j)
93 call GetThresholdM(nset,5,mass)
94 call CtLhParQcd(1,'M5',mass,j)
96 call CtLhParQcd(1,'M6',mass,j)
100 call CtLhParQcd(1,'NFL',Anf,j)
102 call CtLhParPdf(1,'QINI',qini,j)
103 call CtLhEvlpar(1,'NFMX', Anf, j)
105 call CtLhParPdf(1,'IKNL',ordi,j)
108 entry EVLCTEQpdf(nset)
109 call GetOrderAsM(nset,j)
110 call GetAlfas(nset,alfas0,Q0)
111 Blam=CtLhastolam(alfas0,Q0,j+1,nflavor)
112 call CtLhSetLam (nflavor,Blam,j+1)
113 call CtLhParPdf(1,'NX',anx,j)
114 call CtLhParPdf(1,'NT',anq,j)
115 call CtLhEvolve (parmflavor,j)
117 write(*,*) 'EVLCTEQ Evolve Error code :',j
124 double precision function parmflavor(i,x)
131 call parmPDF(iset,x,f)
142 function CtLhastolam(as,q,nloop,nf)
143 implicit double precision (a-h,o-z)
144 data pi / 3.141592653589793d0 /
146 b = (33.0-2.0*nf)/pi/12.0
147 bp = (153.0 - 19.0*nf) / pi / 2.0 / (33.0 - 2.0*nf) * xlp
149 !-----------------------------------------------------------
154 !-----------------------------------------------------------
156 ! Value and Derivative of alfa with respect to t
158 as0 = 1/b/t - bp*xlt/(b*t)**2
159 as1 = - 1/b/t**2 -bp/b**2*(1-2*xlt)/t**3
161 if(abs(ot-t)/ot.gt..00001)goto 1
162 CtLhastolam = q/exp(t/2.0)