1       subroutine H1evolve(xin,qin,pdf)
2       implicit real*8 (a-h,o-z)
3 *******************************************************
4 c  done on  13/07/04 at  10.04.39
5 c evolution has been made starting at q2_input =      4.000
6 c  available for :       1.500 <= q2 <= 1000000.000
7 c            and :  0.000057 <= x <=  0.906052
8 c*
9 c   for x outside limits, the closest limit
10 c        is assumed : f2(x>xmax,q2)=f2(xmax,q2)
11 c                     f2(x<xmin,q2)=f2(xmin,q2)
12 c  for q2 outside limits, the closest limit
13 c        is assumed : f2(x,q2>q2max)=f2(x,q2max)
14 c                     f2(x,q2<q2min)=f2(x,q2min)
15 c*
16 c  comments, etc... to C. Pascaud or F. Zomer
17 ********************************************************
18       include 'parmsetup.inc'
19       PARAMETER(n_bin_q2=86)
20       PARAMETER(n_bin_x=100)
21       REAL*4 xl_bin(n_bin_x),q2l_bin(n_bin_q2)
22       PARAMETER(ngrid=20)
23       REAL*4 f(0:ngrid,8,n_bin_x,n_bin_q2),val(8)
24       real*8 pdf(-6:6)
25       real*4 q2in,x,y
26       character*16 name(nmxset)
27       integer nmem(nmxset),ndef(nmxset),mmem
28       common/NAME/name,nmem,ndef,mmem
29       integer nset,iset
30       save
31 c
32 c      enddo
33       call getnset(iset)
34       call getnmem(iset,imem)
35 c
36       q2in = qin*qin
37       x=log(xin)
38       y=log(q2in)
39       DO i=2,n_bin_x
40         IF(x.LT.xl_bin(i))  goto 1
41         IF(xl_bin(i).ge.0.)  goto 1
42       ENDDO
43       i=n_bin_x
44     1 i=i-1
45       DO j=2,n_bin_q2
46         IF(y.LT.q2l_bin(j))  GOTO 2
47       ENDDO
48       j=n_bin_q2
49     2 j=j-1
50       dx=xl_bin(i+1)-xl_bin(i)
51       xd=(x-xl_bin(i))/dx
52       dy=q2l_bin(j+1)-q2l_bin(j)
53       yd=(y-q2l_bin(j))/dy
54 c
55       do k=1,8
56       val(k)=f(imem,k,i,j)+xd*(f(imem,k,i+1,j)-f(imem,k,i,j))
57      &+yd*(f(imem,k,i,j+1)-f(imem,k,i,j))
58      &+xd*yd*(f(imem,k,i+1,j+1)+f(imem,k,i,j)
59      &-f(imem,k,i+1,j)-f(imem,k,i,j+1))
60       enddo
61       pdf(-6) = 0.0d0
62        pdf(6) = 0.0d0
63       pdf(-5) = val(7)
64        pdf(5) = val(7)
65       pdf(-4) = val(6)
66        pdf(4) = val(6)
67       pdf(-3) = val(5)
68        pdf(3) = val(5)
69       pdf(-2) = val(4)
70        pdf(2) = val(3)+val(4)
71       pdf(-1) = val(2)
72        pdf(1) = val(1)+val(2)
73        pdf(0) = val(8)
74       return
75 c
77 c
81         do i=1,n_bin_q2
82           q2l_bin(i)=log(q2l_bin(i))
83         enddo
84       do nm = 0,nmem(nset)
85         do jval = 1,8
87         enddo
88       enddo
89       return
90 c
91       entry H1alfa(alfas,qalfa)
92       call alphah1(alfas,Qalfa)
93       return
94 c
95       entry H1init(Eorder,Q2fit)
96       return
97 c
98       entry H1pdf(mem)
99       call getnset(iset)
100       call setnmem(iset,mem)
101 c      imem = mem
102       return
103 c
104  1000 format(5e13.5)
105       END
106 *
107       subroutine alphah1(alpha,Qin)
108       implicit real*8 (a-h,o-z)
109         call getnset(nset)
110         call GetOrderAsM(nset,iord)
111         if(iord.eq.1) then
112           call alphah1nlo(alpha,Qin)
113         elseif(iord.eq.0) then
114           call alphah1lo(alpha,Qin)
115         else
116           print *,'iord = ',iord
117           stop
118         endif
119       return
120       end
121 *
122       subroutine alphah1nlo(alpha,Qin)
123       implicit real*8 (a-h,o-z)
124 ****************************************************
125 c  done on  13/07/04 at  09.10.39
126 c evolution has been made starting at q2_input =      4.000
127 c  available for :       1.500 <= q2 <= 1000000.000
128 c  for q2 outside limits, the closest limit
129 c        is assumed : f2(x,q2>q2max)=f2(x,q2max)
130 c                     f2(x,q2<q2min)=f2(x,q2min)
131 c*
132 c  comments, etc... to C. Pascaud or F. Zomer
133 ***************************************************
134       PARAMETER(n_bin_q2=102)
135       dimension q2l_bin(n_bin_q2)
136       dimension f(n_bin_q2)
137       data q2l_bin/
138      +1.500000E+00,1.600000E+00,1.700000E+00,1.800000E+00,1.900000E+00,
139      +1.959902E+00,1.960000E+00,1.960098E+00,2.000000E+00,2.100000E+00,
140      +2.200000E+00,2.300000E+00,2.400000E+00,2.500000E+00,3.000000E+00,
141      +3.500000E+00,4.000000E+00,4.500000E+00,5.000000E+00,6.000000E+00,
142      +7.000000E+00,8.000000E+00,9.000000E+00,1.000000E+01,1.500000E+01,
143      +2.000000E+01,2.024899E+01,2.025000E+01,2.025101E+01,2.500000E+01,
144      +3.000000E+01,3.500000E+01,4.000000E+01,4.500000E+01,5.000000E+01,
145      +5.500000E+01,6.000000E+01,6.500000E+01,7.000000E+01,7.500000E+01,
146      +8.000000E+01,8.500000E+01,9.000000E+01,9.500000E+01,1.000000E+02,
147      +1.500000E+02,2.000000E+02,2.500000E+02,3.000000E+02,3.500000E+02,
148      +4.000000E+02,4.500000E+02,5.000000E+02,5.500000E+02,6.000000E+02,
149      +6.500000E+02,7.000000E+02,7.500000E+02,8.000000E+02,8.500000E+02,
150      +9.000000E+02,9.500000E+02,1.000000E+03,1.500000E+03,2.000000E+03,
151      +2.500000E+03,3.000000E+03,3.500000E+03,4.000000E+03,4.500000E+03,
152      +5.000000E+03,5.500000E+03,6.000000E+03,6.500000E+03,7.000000E+03,
153      +7.500000E+03,8.000000E+03,8.500000E+03,9.000000E+03,9.500000E+03,
154      +1.000000E+04,1.500000E+04,2.000000E+04,2.500000E+04,3.000000E+04,
155      +3.500000E+04,4.000000E+04,4.500000E+04,5.000000E+04,5.500000E+04,
156      +6.000000E+04,6.500000E+04,7.000000E+04,7.500000E+04,8.000000E+04,
157      +8.500000E+04,9.000000E+04,9.500000E+04,1.000000E+05,1.500000E+05,
158      +2.000000E+05,1.000000E+06/
159       data f/
160      +3.935326E-01,3.849873E-01,3.773198E-01,3.703884E-01,3.640814E-01,
161      +3.605647E-01,3.605591E-01,3.605540E-01,3.585220E-01,3.537029E-01,
162      +3.492356E-01,3.450786E-01,3.411967E-01,3.375601E-01,3.222805E-01,
163      +3.104663E-01,3.009529E-01,2.930611E-01,2.863649E-01,2.755124E-01,
164      +2.669931E-01,2.600508E-01,2.542359E-01,2.492618E-01,2.318890E-01,
165      +2.210261E-01,2.205828E-01,2.205810E-01,2.205794E-01,2.139838E-01,
166      +2.085977E-01,2.042587E-01,2.006485E-01,1.975722E-01,1.949020E-01,
167      +1.925502E-01,1.904538E-01,1.885667E-01,1.868536E-01,1.852875E-01,
168      +1.838468E-01,1.825145E-01,1.812765E-01,1.801214E-01,1.790394E-01,
169      +1.709373E-01,1.656324E-01,1.617456E-01,1.587067E-01,1.562275E-01,
170      +1.541435E-01,1.523521E-01,1.507856E-01,1.493968E-01,1.481517E-01,
171      +1.470250E-01,1.459974E-01,1.450540E-01,1.441827E-01,1.433740E-01,
172      +1.426200E-01,1.419142E-01,1.412513E-01,1.362263E-01,1.328778E-01,
173      +1.303943E-01,1.284347E-01,1.268244E-01,1.254625E-01,1.242858E-01,
174      +1.232522E-01,1.223323E-01,1.215046E-01,1.207533E-01,1.200661E-01,
175      +1.194337E-01,1.188480E-01,1.183032E-01,1.177942E-01,1.173169E-01,
176      +1.168677E-01,1.134367E-01,1.111245E-01,1.093963E-01,1.080244E-01,
177      +1.068916E-01,1.059298E-01,1.050959E-01,1.043613E-01,1.037057E-01,
178      +1.031144E-01,1.025766E-01,1.020837E-01,1.016292E-01,1.012077E-01,
179      +1.008150E-01,1.004476E-01,1.001026E-01,9.977747E-02,9.728142E-02,
180      +9.558620E-02,8.711093E-02/
181       data init/0/
182       if(init.eq.0) then
183         do i=1,n_bin_q2
184          q2l_bin(i) = log(q2l_bin(i))
185         enddo
186         init=1
187       endif
188 *
189       q2in = qin*qin
190 *
191       y = log(q2in)
192       do j = 2, n_bin_q2
193         if (y.lt.q2l_bin(j))  goto 2
194       enddo
195       j=n_bin_q2
196  2    j=j-1
197 *
198       dy = q2l_bin(j+1) - q2l_bin(j)
199       yd = (y - q2l_bin(j)) / dy
200       alpha = f(j) + yd*(f(j+1)-f(j))
201 *
202       return
203       END
205 *
206       subroutine alphah1lo(alpha,Qin)
207       implicit real*8 (a-h,o-z)
208 c  done on  13/07/04 at  11.32.26
209 c evolution has been made starting at q2_input =      4.000
210 c  available for :       1.500 <= q2 <= 1000000.000
211 c  for q2 outside limits, the closest limit
212 c        is assumed : f2(x,q2>q2max)=f2(x,q2max)
213 c                     f2(x,q2<q2min)=f2(x,q2min)
214 c*
215 c  comments, etc... to C. Pascaud or F. Zomer
216 ***************************************************
217       PARAMETER(n_bin_q2=102)
218       dimension q2l_bin(n_bin_q2)
219       dimension f(n_bin_q2)
220       data q2l_bin/
221      +1.500000E+00,1.600000E+00,1.700000E+00,1.800000E+00,1.900000E+00,
222      +1.959902E+00,1.960000E+00,1.960098E+00,2.000000E+00,2.100000E+00,
223      +2.200000E+00,2.300000E+00,2.400000E+00,2.500000E+00,3.000000E+00,
224      +3.500000E+00,4.000000E+00,4.500000E+00,5.000000E+00,6.000000E+00,
225      +7.000000E+00,8.000000E+00,9.000000E+00,1.000000E+01,1.500000E+01,
226      +2.000000E+01,2.024899E+01,2.025000E+01,2.025101E+01,2.500000E+01,
227      +3.000000E+01,3.500000E+01,4.000000E+01,4.500000E+01,5.000000E+01,
228      +5.500000E+01,6.000000E+01,6.500000E+01,7.000000E+01,7.500000E+01,
229      +8.000000E+01,8.500000E+01,9.000000E+01,9.500000E+01,1.000000E+02,
230      +1.500000E+02,2.000000E+02,2.500000E+02,3.000000E+02,3.500000E+02,
231      +4.000000E+02,4.500000E+02,5.000000E+02,5.500000E+02,6.000000E+02,
232      +6.500000E+02,7.000000E+02,7.500000E+02,8.000000E+02,8.500000E+02,
233      +9.000000E+02,9.500000E+02,1.000000E+03,1.500000E+03,2.000000E+03,
234      +2.500000E+03,3.000000E+03,3.500000E+03,4.000000E+03,4.500000E+03,
235      +5.000000E+03,5.500000E+03,6.000000E+03,6.500000E+03,7.000000E+03,
236      +7.500000E+03,8.000000E+03,8.500000E+03,9.000000E+03,9.500000E+03,
237      +1.000000E+04,1.500000E+04,2.000000E+04,2.500000E+04,3.000000E+04,
238      +3.500000E+04,4.000000E+04,4.500000E+04,5.000000E+04,5.500000E+04,
239      +6.000000E+04,6.500000E+04,7.000000E+04,7.500000E+04,8.000000E+04,
240      +8.500000E+04,9.000000E+04,9.500000E+04,1.000000E+05,1.500000E+05,
241      +2.000000E+05,1.000000E+06/
242       data f/
243      +4.395646E-01,4.308115E-01,4.229009E-01,4.157042E-01,4.091185E-01,
244      +4.054310E-01,4.054251E-01,4.054197E-01,4.032349E-01,3.980418E-01,
245      +3.932134E-01,3.887078E-01,3.844897E-01,3.805290E-01,3.637916E-01,
246      +3.507479E-01,3.401822E-01,3.313772E-01,3.238784E-01,3.116737E-01,
247      +3.020502E-01,2.941818E-01,2.875740E-01,2.819097E-01,2.620464E-01,
248      +2.495700E-01,2.490599E-01,2.490579E-01,2.490560E-01,2.413308E-01,
249      +2.350218E-01,2.299395E-01,2.257114E-01,2.221089E-01,2.189825E-01,
250      +2.162291E-01,2.137753E-01,2.115667E-01,2.095621E-01,2.077297E-01,
251      +2.060444E-01,2.044861E-01,2.030382E-01,2.016875E-01,2.004225E-01,
252      +1.909551E-01,1.847628E-01,1.802294E-01,1.766873E-01,1.737993E-01,
253      +1.713728E-01,1.692881E-01,1.674658E-01,1.658508E-01,1.644033E-01,
254      +1.630939E-01,1.619001E-01,1.608043E-01,1.597925E-01,1.588537E-01,
255      +1.579785E-01,1.571596E-01,1.563904E-01,1.505657E-01,1.466892E-01,
256      +1.438172E-01,1.415527E-01,1.396930E-01,1.381211E-01,1.367637E-01,
257      +1.355719E-01,1.345115E-01,1.335578E-01,1.326924E-01,1.319011E-01,
258      +1.311728E-01,1.304988E-01,1.298719E-01,1.292864E-01,1.287374E-01,
259      +1.282208E-01,1.242789E-01,1.216259E-01,1.196449E-01,1.180735E-01,
260      +1.167767E-01,1.156763E-01,1.147226E-01,1.138828E-01,1.131336E-01,
261      +1.124583E-01,1.118440E-01,1.112813E-01,1.107625E-01,1.102815E-01,
262      +1.098335E-01,1.094145E-01,1.090210E-01,1.086503E-01,1.058065E-01,
263      +1.038775E-01,9.426288E-02/
264       data init/0/
265       if(init.eq.0) then
266         do i=1,n_bin_q2
267          q2l_bin(i) = log(q2l_bin(i))
268         enddo
269         init=1
270       endif
272       q2in = qin*qin
273 *
274       y = log(q2in)
275       do j = 2, n_bin_q2
276         if (y.lt.q2l_bin(j))  goto 2
277       enddo
278       j=n_bin_q2
279  2    j=j-1
280 *
281       dy = q2l_bin(j+1) - q2l_bin(j)
282       yd = (y - q2l_bin(j)) / dy
283       alpha = f(j) + yd*(f(j+1)-f(j))
284 *
285       return
286       END
287 *