1 subroutine EVLCTEQevolve(x,Q,f)
3 include 'parmsetup.inc'
4 character*16 name(nmxset)
5 integer nmem(nmxset),ndef(nmxset),mmem
6 common/NAME/name,nmem,ndef,mmem
8 real*8 x,Q,xx,qq,up,dn,ubar,dbar,gluon,sbar,cbar,bbar,tbar,Blam
9 real*8 xmin,qmax,anx,anq,Q2fit,qini,Ahdn,ordi,anf,mass,pi,alfas
11 real*8 CtLhpardis,CtLhALPI,parmflavor,CtLhastolam
12 integer nflavor,Eorder,j,nx,nq
14 data pi / 3.141592653589793d0 /
16 save nflavor,xmin,qmax,anx,anq
21 up = xx*CtLhpardis(1,xx,qq)
22 dn = xx*CtLhpardis(2,xx,qq)
23 ubar = xx*CtLhpardis(-1,xx,qq)
24 dbar = xx*CtLhpardis(-2,xx,qq)
25 gluon= xx*CtLhpardis( 0,xx,qq)
27 if(nflavor .ge. 3) then
28 sbar = xx*CtLhpardis(-3,xx,qq)
33 if(nflavor .ge. 4) then
34 cbar = xx*CtLhpardis(-4,xx,qq)
39 if(nflavor .ge. 5) then
40 bbar = xx*CtLhpardis(-5,xx,qq)
45 if(nflavor .eq. 6) then
46 tbar = xx*CtLhpardis(-6,xx,qq)
67 entry EVLCTEQread(nset)
70 read(1,*) xmin,qmax,nx,nq
75 entry EVLCTEQalfa(alfas,Q)
76 alfas = pi*CtLhALPI(Q)
79 entry EVLCTEQinit(nset,Eorder,Q2fit)
82 call CtLhParPdf(1,'IHDN',Ahdn,j)
83 call CtLhParPdf(1,'QMAX',qmax,j)
84 call CtLhParPdf(1,'XMIN',xmin,j)
85 call GetOrderAsM(nset,j)
87 call CtLhParQcd(1,'ORDR',ordi,j)
88 call GetThresholdM(nset,4,mass)
89 call CtLhParQcd(1,'M4',mass,j)
90 call GetThresholdM(nset,5,mass)
91 call CtLhParQcd(1,'M5',mass,j)
93 call CtLhParQcd(1,'M6',mass,j)
97 call CtLhParQcd(1,'NFL',Anf,j)
99 call CtLhParPdf(1,'QINI',qini,j)
100 call CtLhEvlpar(1,'NFMX', Anf, j)
102 call CtLhParPdf(1,'IKNL',ordi,j)
105 entry EVLCTEQpdf(nset)
106 call GetOrderAsM(nset,j)
107 call GetAlfas(nset,alfas0,Q0)
108 Blam=CtLhastolam(alfas0,Q0,j+1,nflavor)
109 call CtLhSetLam (nflavor,Blam,j+1)
110 call CtLhParPdf(1,'NX',anx,j)
111 call CtLhParPdf(1,'NT',anq,j)
112 call CtLhEvolve (parmflavor,j)
114 write(*,*) 'EVLCTEQ Evolve Error code :',j
121 double precision function parmflavor(i,x)
128 call parmPDF(iset,x,f)
139 function CtLhastolam(as,q,nloop,nf)
140 implicit double precision (a-h,o-z)
141 data pi / 3.141592653589793d0 /
143 b = (33.0-2.0*nf)/pi/12.0
144 bp = (153.0 - 19.0*nf) / pi / 2.0 / (33.0 - 2.0*nf) * xlp
146 c-----------------------------------------------------------
151 c-----------------------------------------------------------
153 c Value and Derivative of alfa with respect to t
155 as0 = 1/b/t - bp*xlt/(b*t)**2
156 as1 = - 1/b/t**2 -bp/b**2*(1-2*xlt)/t**3
158 if(abs(ot-t)/ot.gt..00001)goto 1
159 CtLhastolam = q/exp(t/2.0)