JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
interfaceAD.F90
Go to the documentation of this file.
1 !!
2 !! File interfaceAD.F90 is part of COLLIER
3 !! - A Complex One-Loop Library In Extended Regularizations
4 !!
5 !! Copyright (C) 2015, 2016 Ansgar Denner, Stefan Dittmaier, Lars Hofer
6 !!
7 !! COLLIER is licenced under the GNU GPL version 3, see COPYING for details.
8 !!
9 
10 !#define RACOON
11 #define COLLIERTEST
12 !#define NOINTERFACE
13 
14 
15 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 !
17 ! ************************
18 ! * module interfaceAD *
19 ! * by Lars Hofer *
20 ! ************************
21 !
22 ! functions and subroutines:
23 !
24 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25 
26 
27 
28 !module interfaceAD
29 !
30 ! use COLLIER
31 !
32 ! implicit none
33 !
34 !
35 !contains
36 
37 
38  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
39  ! subroutine cBp12345(p10,m02,m12,
40  ! & B0,B1,B2,B3,B4,B5,B6,rank,switchin)
41  !
42  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
43 
44 #ifdef COLLIERTEST
45  subroutine cbp12345_if(p10,m02,m12,B0,B1,B2,B3,B4,B5,B6,rank,switchin,Berr)
46 #endif
47 #ifdef RACOON
48  subroutine cbp12345(p10,m02,m12,B0,B1,B2,B3,B4,B5,B6,rank,switchin)
49 #endif
50 
51  use collier
52 
53 #ifdef RACOON
54  entry cbp123(p10,m02,m12,b0,b1,b2,b3,rank)
55 #endif
56 
57  implicit none
58  double complex, intent(in) :: p10,m02,m12
59  integer, intent(in) :: rank, switchin
60 #ifdef COLLIERTEST
61  double precision, optional, intent(out) :: Berr(0:6)
62 #endif
63  double complex, intent(out) :: B0,B1,B2(0:1,0:1),B3(0:1,0:1,0:1),B4(0:1,0:1,0:1,0:1)
64  double complex, intent(out) :: B5(0:1,0:1,0:1,0:1,0:1),B6(0:1,0:1,0:1,0:1,0:1,0:1)
65  double complex :: B0123456(0:rank/2,0:rank), B0123456uv(0:rank/2,0:rank)
66 
67 #ifdef COLLIERTEST
68 #ifdef NOINTERFACE
69  if(present(berr)) then
70  call b_cll(b0123456,b0123456uv,p10,m02,m12,rank,berr(0:rank))
71  else
72  call b_cll(b0123456,b0123456uv,p10,m02,m12,rank)
73  endif
74 #else
75  if(present(berr)) then
76  call b_cll(b0123456,b0123456uv,p10,m02,m12,rank,berr(0:rank))
77  else
78  call b_cll(b0123456,b0123456uv,p10,m02,m12,rank)
79  endif
80 #endif
81 #endif
82 
83 #ifdef RACOON
84 #ifdef NOINTERFACE
85  call b_cll(b0123456,b0123456uv,p10,m02,m12,rank)
86 #else
87  call b_cll(b0123456,b0123456uv,p10,m02,m12,rank)
88 #endif
89 #endif
90 
91  b0 = b0123456(0,0)
92  if (rank.eq.0) return
93 
94  b1 = b0123456(0,1)
95  if (rank.eq.1) return
96 
97  b2(0,0) = b0123456(1,0)
98  b2(1,1) = b0123456(0,2)
99  if (rank.eq.2) return
100 
101  b3(0,0,1) = b0123456(1,1)
102  b3(1,1,1) = b0123456(0,3)
103  if (rank.eq.3) return
104 
105  b4(0,0,0,0) = b0123456(2,0)
106  b4(0,0,1,1) = b0123456(1,2)
107  b4(1,1,1,1) = b0123456(0,4)
108  if (rank.eq.4) return
109 
110  b5(0,0,0,0,1) = b0123456(2,1)
111  b5(0,0,1,1,1) = b0123456(1,3)
112  b5(1,1,1,1,1) = b0123456(0,5)
113  if (rank.eq.5) return
114 
115  b6(0,0,0,0,0,0) = b0123456(3,0)
116  b6(0,0,0,0,1,1) = b0123456(2,2)
117  b6(0,0,1,1,1,1) = b0123456(1,4)
118  b6(1,1,1,1,1,1) = b0123456(0,6)
119 
120 #ifdef COLLIERTEST
121  end subroutine cbp12345_if
122 #endif
123 #ifdef RACOON
124  end subroutine cbp12345
125 #endif
126 
127 
128 
129 
130 
131  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
132  ! subroutine cCp12345(p10,p21,p20,m02,m12,m22,
133  ! & C0,C1,C2,C3,C4,C5,rank)
134  !
135  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
136 
137 #ifdef COLLIERTEST
138  subroutine ccp12345_if(p10,p21,p20,m02,m12,m22,C0,C1,C2,C3,C4,C5,C6,rank,Cerr,Cerr2)
139 #endif
140 #ifdef RACOON
141  subroutine ccp12345(p10,p21,p20,m02,m12,m22,C0,C1,C2,C3,C4,C5,C6,rank)
142 #endif
143  use collier
144 
145  implicit none
146  double complex, intent(in) :: p10,p21,p20,m02,m12,m22
147  integer, intent(in) :: rank
148 #ifdef COLLIERTEST
149  double precision, optional, intent(out) :: Cerr(0:6),Cerr2(0:6)
150  double precision :: Cerraux(0:6),Cerr2aux(0:6)
151 #endif
152  double complex, intent(out) :: C0,C1(2),C2(0:2,0:2),C3(0:2,0:2,0:2)
153  double complex, intent(out) :: C4(0:2,0:2,0:2,0:2),C5(0:2,0:2,0:2,0:2,0:2)
154  double complex, intent(out) :: C6(0:2,0:2,0:2,0:2,0:2,0:2)
155  double complex :: C012345(0:rank/2,0:rank,0:rank),C012345uv(0:rank/2,0:rank,0:rank)
156 
157 #ifdef COLLIERTEST
158 #ifdef NOINTERFACE
159 ! if(present(Cerr)) then
160 ! call C_main_cll(C012345,C012345uv,p10,p21,p20,m02,m12,m22,rank,Cerr(0:rank))
161 ! else
162 ! call C_main_cll(C012345,C012345uv,p10,p21,p20,m02,m12,m22,rank)
163 ! endif
164  call c_main_cll(c012345,c012345uv,p10,p21,p20,m02,m12,m22,rank,cerraux(0:rank),cerr2=cerr2aux(0:rank))
165 #else
166 ! if(present(Cerr)) then
167 ! call C_cll(C012345,C012345uv,p10,p21,p20,m02,m12,m22,rank,Cerr(0:rank))
168 ! else
169 ! call C_cll(C012345,C012345uv,p10,p21,p20,m02,m12,m22,rank)
170 ! endif
171  call c_cll(c012345,c012345uv,p10,p21,p20,m02,m12,m22,rank,cerraux(0:rank),cerr2=cerr2aux(0:rank))
172 #endif
173  if(present(cerr)) cerr(0:rank)=cerraux(0:rank)
174  if(present(cerr2)) cerr2(0:rank)=cerr2aux(0:rank)
175 #endif
176 
177 #ifdef RACOON
178 #ifdef NOINTERFACE
179  call c_main_cll(c012345,c012345uv,p10,p21,p20,m02,m12,m22,rank)
180 #else
181  call c_cll(c012345,c012345uv,p10,p21,p20,m02,m12,m22,rank)
182 #endif
183 #endif
184 
185  c0 = c012345(0,0,0)
186  if (rank.eq.0) return
187 
188  c1(1) = c012345(0,1,0)
189  c1(2) = c012345(0,0,1)
190  if (rank.eq.1) return
191 
192  c2(0,0) = c012345(1,0,0)
193  c2(1,1) = c012345(0,2,0)
194  c2(1,2) = c012345(0,1,1)
195  c2(2,2) = c012345(0,0,2)
196  if (rank.eq.2) return
197 
198  c3(0,0,1) = c012345(1,1,0)
199  c3(0,0,2) = c012345(1,0,1)
200  c3(1,1,1) = c012345(0,3,0)
201  c3(1,1,2) = c012345(0,2,1)
202  c3(1,2,2) = c012345(0,1,2)
203  c3(2,2,2) = c012345(0,0,3)
204  if (rank.eq.3) return
205 
206  c4(0,0,0,0) = c012345(2,0,0)
207  c4(0,0,1,1) = c012345(1,2,0)
208  c4(0,0,1,2) = c012345(1,1,1)
209  c4(0,0,2,2) = c012345(1,0,2)
210  c4(1,1,1,1) = c012345(0,4,0)
211  c4(1,1,1,2) = c012345(0,3,1)
212  c4(1,1,2,2) = c012345(0,2,2)
213  c4(1,2,2,2) = c012345(0,1,3)
214  c4(2,2,2,2) = c012345(0,0,4)
215  if (rank.eq.4) return
216 
217  c5(0,0,0,0,1) = c012345(2,1,0)
218  c5(0,0,0,0,2) = c012345(2,0,1)
219  c5(0,0,1,1,1) = c012345(1,3,0)
220  c5(0,0,1,1,2) = c012345(1,2,1)
221  c5(0,0,1,2,2) = c012345(1,1,2)
222  c5(0,0,2,2,2) = c012345(1,0,3)
223  c5(1,1,1,1,1) = c012345(0,5,0)
224  c5(1,1,1,1,2) = c012345(0,4,1)
225  c5(1,1,1,2,2) = c012345(0,3,2)
226  c5(1,1,2,2,2) = c012345(0,2,3)
227  c5(1,2,2,2,2) = c012345(0,1,4)
228  c5(2,2,2,2,2) = c012345(0,0,5)
229  if (rank.eq.5) return
230 
231  c6(0,0,0,0,0,0) = c012345(3,0,0)
232  c6(0,0,0,0,1,1) = c012345(2,2,0)
233  c6(0,0,0,0,1,2) = c012345(2,1,1)
234  c6(0,0,0,0,2,2) = c012345(2,0,2)
235  c6(0,0,1,1,1,1) = c012345(1,4,0)
236  c6(0,0,1,1,1,2) = c012345(1,3,1)
237  c6(0,0,1,1,2,2) = c012345(1,2,2)
238  c6(0,0,1,2,2,2) = c012345(1,1,3)
239  c6(0,0,2,2,2,2) = c012345(1,0,4)
240  c6(1,1,1,1,1,1) = c012345(0,6,0)
241  c6(1,1,1,1,1,2) = c012345(0,5,1)
242  c6(1,1,1,1,2,2) = c012345(0,4,2)
243  c6(1,1,1,2,2,2) = c012345(0,3,3)
244  c6(1,1,2,2,2,2) = c012345(0,2,4)
245  c6(1,2,2,2,2,2) = c012345(0,1,5)
246  c6(2,2,2,2,2,2) = c012345(0,0,6)
247 
248 #ifdef COLLIERTEST
249  end subroutine ccp12345_if
250 #endif
251 #ifdef RACOON
252  end subroutine ccp12345
253 #endif
254 
255 
256 
257 
258 
259  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
260  ! subroutine cDp12345(p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,
261  ! & D0,D1,D2,D3,D4,D5,rank,eswitch)
262  !
263  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
264 
265 #ifdef COLLIERTEST
266  subroutine cdp12345_if(p10,p21,p32,p30,p20,p31,m02,m12,m22,m32, &
267  D0,D1,D2,D3,D4,D5,rank,eswitch,Derr,Derr2)
268 #endif
269 #ifdef RACOON
270  subroutine cdp12345(p10,p21,p32,p30,p20,p31,m02,m12,m22,m32, &
271  D0,D1,D2,D3,D4,D5,rank,eswitch)
272 #endif
273 
274  use collier
275 
276  implicit none
277  double complex, intent(in) :: p10,p21,p32,p30,p20,p31,m02,m12,m22,m32
278  integer, intent(in) :: rank, eswitch
279  double complex, intent(out) :: D0,D1(3),D2(0:3,0:3),D3(0:3,0:3,0:3)
280  double complex, intent(out) :: D4(0:3,0:3,0:3,0:3),D5(0:3,0:3,0:3,0:3,0:3)
281 #ifdef COLLIERTEST
282  double precision, optional, intent(out) :: Derr(0:5),Derr2(0:5)
283  double precision :: Derraux(0:5),Derr2aux(0:5)
284 #endif
285  double complex :: D012345(0:rank/2,0:rank,0:rank,0:rank)
286  double complex :: D012345uv(0:rank/2,0:rank,0:rank,0:rank)
287 
288 ! write(*,*) 'cDp12345 in:',p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank,eswitch
289 
290 #ifdef COLLIERTEST
291 #ifdef NOINTERFACE
292 ! if(present(Derr))then
293 ! call D_main_cll(D012345,D012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank,Derr(0:rank))
294 ! else
295 ! call D_main_cll(D012345,D012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank)
296 ! endif
297  call d_main_cll(d012345,d012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank,derraux(0:rank),derr2=derr2aux(0:rank))
298 #else
299 ! if(present(Derr))then
300 ! call D_cll(D012345,D012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank,Derr(0:rank))
301 ! else
302 ! call D_cll(D012345,D012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank)
303  call d_cll(d012345,d012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank,derraux(0:rank),derr2=derr2aux(0:rank))
304 ! endif
305 #endif
306  if(present(derr)) derr(0:rank)=derraux(0:rank)
307  if(present(derr2)) derr2(0:rank)=derr2aux(0:rank)
308 
309 ! if(present(Derr)) write(*,*) ' cDp12345_if Derr ',Derr
310 ! if(present(Derr2)) write(*,*) ' cDp12345_if Derr2',Derr2
311 
312 
313 #endif
314 
315 #ifdef RACOON
316 #ifdef NOINTERFACE
317  call d_main_cll(d012345,d012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank)
318 #else
319  call d_cll(d012345,d012345uv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,rank)
320 #endif
321 #endif
322 
323  d0 = d012345(0,0,0,0)
324  if (rank.eq.0) return
325 
326  d1(1) = d012345(0,1,0,0)
327  d1(2) = d012345(0,0,1,0)
328  d1(3) = d012345(0,0,0,1)
329  if (rank.eq.1) return
330 
331  d2(0,0) = d012345(1,0,0,0)
332  d2(1,1) = d012345(0,2,0,0)
333  d2(1,2) = d012345(0,1,1,0)
334  d2(1,3) = d012345(0,1,0,1)
335  d2(2,2) = d012345(0,0,2,0)
336  d2(2,3) = d012345(0,0,1,1)
337  d2(3,3) = d012345(0,0,0,2)
338  if (rank.eq.2) return
339 
340  d3(0,0,1) = d012345(1,1,0,0)
341  d3(0,0,2) = d012345(1,0,1,0)
342  d3(0,0,3) = d012345(1,0,0,1)
343  d3(1,1,1) = d012345(0,3,0,0)
344  d3(1,1,2) = d012345(0,2,1,0)
345  d3(1,1,3) = d012345(0,2,0,1)
346  d3(1,2,2) = d012345(0,1,2,0)
347  d3(1,2,3) = d012345(0,1,1,1)
348  d3(1,3,3) = d012345(0,1,0,2)
349  d3(2,2,2) = d012345(0,0,3,0)
350  d3(2,2,3) = d012345(0,0,2,1)
351  d3(2,3,3) = d012345(0,0,1,2)
352  d3(3,3,3) = d012345(0,0,0,3)
353  if (rank.eq.3) return
354 
355  d4(0,0,0,0) = d012345(2,0,0,0)
356  d4(0,0,1,1) = d012345(1,2,0,0)
357  d4(0,0,1,2) = d012345(1,1,1,0)
358  d4(0,0,1,3) = d012345(1,1,0,1)
359  d4(0,0,2,2) = d012345(1,0,2,0)
360  d4(0,0,2,3) = d012345(1,0,1,1)
361  d4(0,0,3,3) = d012345(1,0,0,2)
362  d4(1,1,1,1) = d012345(0,4,0,0)
363  d4(1,1,1,2) = d012345(0,3,1,0)
364  d4(1,1,1,3) = d012345(0,3,0,1)
365  d4(1,1,2,2) = d012345(0,2,2,0)
366  d4(1,1,2,3) = d012345(0,2,1,1)
367  d4(1,1,3,3) = d012345(0,2,0,2)
368  d4(1,2,2,2) = d012345(0,1,3,0)
369  d4(1,2,2,3) = d012345(0,1,2,1)
370  d4(1,2,3,3) = d012345(0,1,1,2)
371  d4(1,3,3,3) = d012345(0,1,0,3)
372  d4(2,2,2,2) = d012345(0,0,4,0)
373  d4(2,2,2,3) = d012345(0,0,3,1)
374  d4(2,2,3,3) = d012345(0,0,2,2)
375  d4(2,3,3,3) = d012345(0,0,1,3)
376  d4(3,3,3,3) = d012345(0,0,0,4)
377  if (rank.eq.4) return
378 
379  d5(0,0,0,0,1) = d012345(2,1,0,0)
380  d5(0,0,0,0,2) = d012345(2,0,1,0)
381  d5(0,0,0,0,3) = d012345(2,0,0,1)
382  d5(0,0,1,1,1) = d012345(1,3,0,0)
383  d5(0,0,1,1,2) = d012345(1,2,1,0)
384  d5(0,0,1,1,3) = d012345(1,2,0,1)
385  d5(0,0,1,2,2) = d012345(1,1,2,0)
386  d5(0,0,1,2,3) = d012345(1,1,1,1)
387  d5(0,0,1,3,3) = d012345(1,1,0,2)
388  d5(0,0,2,2,2) = d012345(1,0,3,0)
389  d5(0,0,2,2,3) = d012345(1,0,2,1)
390  d5(0,0,2,3,3) = d012345(1,0,1,2)
391  d5(0,0,3,3,3) = d012345(1,0,0,3)
392  d5(1,1,1,1,1) = d012345(0,5,0,0)
393  d5(1,1,1,1,2) = d012345(0,4,1,0)
394  d5(1,1,1,1,3) = d012345(0,4,0,1)
395  d5(1,1,1,2,2) = d012345(0,3,2,0)
396  d5(1,1,1,2,3) = d012345(0,3,1,1)
397  d5(1,1,1,3,3) = d012345(0,3,0,2)
398  d5(1,1,2,2,2) = d012345(0,2,3,0)
399  d5(1,1,2,2,3) = d012345(0,2,2,1)
400  d5(1,1,2,3,3) = d012345(0,2,1,2)
401  d5(1,1,3,3,3) = d012345(0,2,0,3)
402  d5(1,2,2,2,2) = d012345(0,1,4,0)
403  d5(1,2,2,2,3) = d012345(0,1,3,1)
404  d5(1,2,2,3,3) = d012345(0,1,2,2)
405  d5(1,2,3,3,3) = d012345(0,1,1,3)
406  d5(1,3,3,3,3) = d012345(0,1,0,4)
407  d5(2,2,2,2,2) = d012345(0,0,5,0)
408  d5(2,2,2,2,3) = d012345(0,0,4,1)
409  d5(2,2,2,3,3) = d012345(0,0,3,2)
410  d5(2,2,3,3,3) = d012345(0,0,2,3)
411  d5(2,3,3,3,3) = d012345(0,0,1,4)
412  d5(3,3,3,3,3) = d012345(0,0,0,5)
413 
414 #ifdef COLLIERTEST
415  end subroutine cdp12345_if
416 #endif
417 #ifdef RACOON
418  end subroutine cdp12345
419 #endif
420 
421 
422 
423 
424 #ifdef COLLIERTEST
425  subroutine cep12345_if(p10,p21,p32,p43,p40,p20,p31,p42,p30,p41, &
426  m02,m12,m22,m32,m42, &
427  E0,E1,E2,E3,E4,E5,rank,Eerr,Eerr2)
428 #endif
429 #ifdef RACOON
430  subroutine cep12345(p10,p21,p32,p43,p40,p20,p31,p42,p30,p41, &
431  m02,m12,m22,m32,m42, &
432  E0,E1,E2,E3,E4,E5,rank)
433 #endif
434 
435  use collier
436 
437 #ifdef RACOON
438  entry cep1234(p10,p21,p32,p43,p40,p20,p31,p42,p30,p41, &
439  m02,m12,m22,m32,m42, &
440  e0,e1,e2,e3,e4,rank)
441 #endif
442 
443  implicit none
444  double complex, intent(in) :: p10,p21,p32,p43,p40,p20,p31,p42,p30,p41
445  double complex, intent(in) :: m02,m12,m22,m32,m42
446  integer, intent(in) :: rank
447 #ifdef COLLIERTEST
448  double precision, optional, intent(out) :: Eerr(0:5),Eerr2(0:5)
449  double precision :: Eerraux(0:5),Eerr2aux(0:5)
450 #endif
451  double complex, intent(out) :: E0,E1(4),E2(0:4,0:4),E3(0:4,0:4,0:4)
452  double complex, intent(out) :: E4(0:4,0:4,0:4,0:4),E5(0:4,0:4,0:4,0:4,0:4)
453  double complex :: E012345(0:rank/2,0:rank,0:rank,0:rank,0:rank)
454  double complex :: E012345uv(0:rank/2,0:rank,0:rank,0:rank,0:rank)
455 
456 #ifdef COLLIERTEST
457 #ifdef NOINTERFACE
458 ! if(present(Eerr)) then
459 ! call E_main_cll(E012345,E012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42,rank,Eerr(0:rank))
460 ! else
461 ! call E_main_cll(E012345,E012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42,rank)
462 ! endif
463  call e_main_cll(e012345,e012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42, &
464  rank,eerraux(0:rank),eerr2=eerr2aux(0:rank))
465 #else
466 ! if(present(Eerr)) then
467 ! call E_cll(E012345,E012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42,rank,Eerr(0:rmax))
468 ! else
469 ! call E_cll(E012345,E012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42,rank)
470 ! endif
471  call e_cll(e012345,e012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42, &
472  rank,eerraux(0:rank),eerr2=eerr2aux(0:rank))
473 #endif
474  if(present(eerr)) eerr(0:rank)=eerraux(0:rank)
475  if(present(eerr2)) eerr2(0:rank)=eerr2aux(0:rank)
476 #endif
477 
478 #ifdef RACOON
479 #ifdef NOINTERFACE
480  call e_main_cll(e012345,e012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42,rank)
481 #else
482  call e_cll(e012345,e012345uv,p10,p21,p32,p43,p40,p20,p31,p42,p30,p41,m02,m12,m22,m32,m42,rank)
483 #endif
484 #endif
485 
486  e0 = e012345(0,0,0,0,0)
487  if (rank.eq.0) return
488 
489  e1(1) = e012345(0,1,0,0,0)
490  e1(2) = e012345(0,0,1,0,0)
491  e1(3) = e012345(0,0,0,1,0)
492  e1(4) = e012345(0,0,0,0,1)
493  if (rank.eq.1) return
494 
495  e2(0,0) = e012345(1,0,0,0,0)
496  e2(1,1) = e012345(0,2,0,0,0)
497  e2(1,2) = e012345(0,1,1,0,0)
498  e2(1,3) = e012345(0,1,0,1,0)
499  e2(1,4) = e012345(0,1,0,0,1)
500  e2(2,2) = e012345(0,0,2,0,0)
501  e2(2,3) = e012345(0,0,1,1,0)
502  e2(2,4) = e012345(0,0,1,0,1)
503  e2(3,3) = e012345(0,0,0,2,0)
504  e2(3,4) = e012345(0,0,0,1,1)
505  e2(4,4) = e012345(0,0,0,0,2)
506  if (rank.eq.2) return
507 
508  e3(0,0,1) = e012345(1,1,0,0,0)
509  e3(0,0,2) = e012345(1,0,1,0,0)
510  e3(0,0,3) = e012345(1,0,0,1,0)
511  e3(0,0,4) = e012345(1,0,0,0,1)
512  e3(1,1,1) = e012345(0,3,0,0,0)
513  e3(1,1,2) = e012345(0,2,1,0,0)
514  e3(1,1,3) = e012345(0,2,0,1,0)
515  e3(1,1,4) = e012345(0,2,0,0,1)
516  e3(1,2,2) = e012345(0,1,2,0,0)
517  e3(1,2,3) = e012345(0,1,1,1,0)
518  e3(1,2,4) = e012345(0,1,1,0,1)
519  e3(1,3,3) = e012345(0,1,0,2,0)
520  e3(1,3,4) = e012345(0,1,0,1,1)
521  e3(1,4,4) = e012345(0,1,0,0,2)
522  e3(2,2,2) = e012345(0,0,3,0,0)
523  e3(2,2,3) = e012345(0,0,2,1,0)
524  e3(2,2,4) = e012345(0,0,2,0,1)
525  e3(2,3,3) = e012345(0,0,1,2,0)
526  e3(2,3,4) = e012345(0,0,1,1,1)
527  e3(2,4,4) = e012345(0,0,1,0,2)
528  e3(3,3,3) = e012345(0,0,0,3,0)
529  e3(3,3,4) = e012345(0,0,0,2,1)
530  e3(3,4,4) = e012345(0,0,0,1,2)
531  e3(4,4,4) = e012345(0,0,0,0,3)
532  if (rank.eq.3) return
533 
534  e4(0,0,0,0) = e012345(2,0,0,0,0)
535  e4(0,0,1,1) = e012345(1,2,0,0,0)
536  e4(0,0,1,2) = e012345(1,1,1,0,0)
537  e4(0,0,1,3) = e012345(1,1,0,1,0)
538  e4(0,0,1,4) = e012345(1,1,0,0,1)
539  e4(0,0,2,2) = e012345(1,0,2,0,0)
540  e4(0,0,2,3) = e012345(1,0,1,1,0)
541  e4(0,0,2,4) = e012345(1,0,1,0,1)
542  e4(0,0,3,3) = e012345(1,0,0,2,0)
543  e4(0,0,3,4) = e012345(1,0,0,1,1)
544  e4(0,0,4,4) = e012345(1,0,0,0,2)
545  e4(1,1,1,1) = e012345(0,4,0,0,0)
546  e4(1,1,1,2) = e012345(0,3,1,0,0)
547  e4(1,1,1,3) = e012345(0,3,0,1,0)
548  e4(1,1,1,4) = e012345(0,3,0,0,1)
549  e4(1,1,2,2) = e012345(0,2,2,0,0)
550  e4(1,1,2,3) = e012345(0,2,1,1,0)
551  e4(1,1,2,4) = e012345(0,2,1,0,1)
552  e4(1,1,3,3) = e012345(0,2,0,2,0)
553  e4(1,1,3,4) = e012345(0,2,0,1,1)
554  e4(1,1,4,4) = e012345(0,2,0,0,2)
555  e4(1,2,2,2) = e012345(0,1,3,0,0)
556  e4(1,2,2,3) = e012345(0,1,2,1,0)
557  e4(1,2,2,4) = e012345(0,1,2,0,1)
558  e4(1,2,3,3) = e012345(0,1,1,2,0)
559  e4(1,2,3,4) = e012345(0,1,1,1,1)
560  e4(1,2,4,4) = e012345(0,1,1,0,2)
561  e4(1,3,3,3) = e012345(0,1,0,3,0)
562  e4(1,3,3,4) = e012345(0,1,0,2,1)
563  e4(1,3,4,4) = e012345(0,1,0,1,2)
564  e4(1,4,4,4) = e012345(0,1,0,0,3)
565  e4(2,2,2,2) = e012345(0,0,4,0,0)
566  e4(2,2,2,3) = e012345(0,0,3,1,0)
567  e4(2,2,2,4) = e012345(0,0,3,0,1)
568  e4(2,2,3,3) = e012345(0,0,2,2,0)
569  e4(2,2,3,4) = e012345(0,0,2,1,1)
570  e4(2,2,4,4) = e012345(0,0,2,0,2)
571  e4(2,3,3,3) = e012345(0,0,1,3,0)
572  e4(2,3,3,4) = e012345(0,0,1,2,1)
573  e4(2,3,4,4) = e012345(0,0,1,1,2)
574  e4(2,4,4,4) = e012345(0,0,1,0,3)
575  e4(3,3,3,3) = e012345(0,0,0,4,0)
576  e4(3,3,3,4) = e012345(0,0,0,3,1)
577  e4(3,3,4,4) = e012345(0,0,0,2,2)
578  e4(3,4,4,4) = e012345(0,0,0,1,3)
579  e4(4,4,4,4) = e012345(0,0,0,0,4)
580  if (rank.eq.4) return
581 
582  e5(0,0,0,0,1) = e012345(2,1,0,0,0)
583  e5(0,0,0,0,2) = e012345(2,0,1,0,0)
584  e5(0,0,0,0,3) = e012345(2,0,0,1,0)
585  e5(0,0,0,0,4) = e012345(2,0,0,0,1)
586  e5(0,0,1,1,1) = e012345(1,3,0,0,0)
587  e5(0,0,1,1,2) = e012345(1,2,1,0,0)
588  e5(0,0,1,1,3) = e012345(1,2,0,1,0)
589  e5(0,0,1,1,4) = e012345(1,2,0,0,1)
590  e5(0,0,1,2,2) = e012345(1,1,2,0,0)
591  e5(0,0,1,2,3) = e012345(1,1,1,1,0)
592  e5(0,0,1,2,4) = e012345(1,1,1,0,1)
593  e5(0,0,1,3,3) = e012345(1,1,0,2,0)
594  e5(0,0,1,3,4) = e012345(1,1,0,1,1)
595  e5(0,0,1,4,4) = e012345(1,1,0,0,2)
596  e5(0,0,2,2,2) = e012345(1,0,3,0,0)
597  e5(0,0,2,2,3) = e012345(1,0,2,1,0)
598  e5(0,0,2,2,4) = e012345(1,0,2,0,1)
599  e5(0,0,2,3,3) = e012345(1,0,1,2,0)
600  e5(0,0,2,3,4) = e012345(1,0,1,1,1)
601  e5(0,0,2,4,4) = e012345(1,0,1,0,2)
602  e5(0,0,3,3,3) = e012345(1,0,0,3,0)
603  e5(0,0,3,3,4) = e012345(1,0,0,2,1)
604  e5(0,0,3,4,4) = e012345(1,0,0,1,2)
605  e5(0,0,4,4,4) = e012345(1,0,0,0,3)
606  e5(1,1,1,1,1) = e012345(0,5,0,0,0)
607  e5(1,1,1,1,2) = e012345(0,4,1,0,0)
608  e5(1,1,1,1,3) = e012345(0,4,0,1,0)
609  e5(1,1,1,1,4) = e012345(0,4,0,0,1)
610  e5(1,1,1,2,2) = e012345(0,3,2,0,0)
611  e5(1,1,1,2,3) = e012345(0,3,1,1,0)
612  e5(1,1,1,2,4) = e012345(0,3,1,0,1)
613  e5(1,1,1,3,3) = e012345(0,3,0,2,0)
614  e5(1,1,1,3,4) = e012345(0,3,0,1,1)
615  e5(1,1,1,4,4) = e012345(0,3,0,0,2)
616  e5(1,1,2,2,2) = e012345(0,2,3,0,0)
617  e5(1,1,2,2,3) = e012345(0,2,2,1,0)
618  e5(1,1,2,2,4) = e012345(0,2,2,0,1)
619  e5(1,1,2,3,3) = e012345(0,2,1,2,0)
620  e5(1,1,2,3,4) = e012345(0,2,1,1,1)
621  e5(1,1,2,4,4) = e012345(0,2,1,0,2)
622  e5(1,1,3,3,3) = e012345(0,2,0,3,0)
623  e5(1,1,3,3,4) = e012345(0,2,0,2,1)
624  e5(1,1,3,4,4) = e012345(0,2,0,1,2)
625  e5(1,1,4,4,4) = e012345(0,2,0,0,3)
626  e5(1,2,2,2,2) = e012345(0,1,4,0,0)
627  e5(1,2,2,2,3) = e012345(0,1,3,1,0)
628  e5(1,2,2,2,4) = e012345(0,1,3,0,1)
629  e5(1,2,2,3,3) = e012345(0,1,2,2,0)
630  e5(1,2,2,3,4) = e012345(0,1,2,1,1)
631  e5(1,2,2,4,4) = e012345(0,1,2,0,2)
632  e5(1,2,3,3,3) = e012345(0,1,1,3,0)
633  e5(1,2,3,3,4) = e012345(0,1,1,2,1)
634  e5(1,2,3,4,4) = e012345(0,1,1,1,2)
635  e5(1,2,4,4,4) = e012345(0,1,1,0,3)
636  e5(1,3,3,3,3) = e012345(0,1,0,4,0)
637  e5(1,3,3,3,4) = e012345(0,1,0,3,1)
638  e5(1,3,3,4,4) = e012345(0,1,0,2,2)
639  e5(1,3,4,4,4) = e012345(0,1,0,1,3)
640  e5(1,4,4,4,4) = e012345(0,1,0,0,4)
641  e5(2,2,2,2,2) = e012345(0,0,5,0,0)
642  e5(2,2,2,2,3) = e012345(0,0,4,1,0)
643  e5(2,2,2,2,4) = e012345(0,0,4,0,1)
644  e5(2,2,2,3,3) = e012345(0,0,3,2,0)
645  e5(2,2,2,3,4) = e012345(0,0,3,1,1)
646  e5(2,2,2,4,4) = e012345(0,0,3,0,2)
647  e5(2,2,3,3,3) = e012345(0,0,2,3,0)
648  e5(2,2,3,3,4) = e012345(0,0,2,2,1)
649  e5(2,2,3,4,4) = e012345(0,0,2,1,2)
650  e5(2,2,4,4,4) = e012345(0,0,2,0,3)
651  e5(2,3,3,3,3) = e012345(0,0,1,4,0)
652  e5(2,3,3,3,4) = e012345(0,0,1,3,1)
653  e5(2,3,3,4,4) = e012345(0,0,1,2,2)
654  e5(2,3,4,4,4) = e012345(0,0,1,1,3)
655  e5(2,4,4,4,4) = e012345(0,0,1,0,4)
656  e5(3,3,3,3,3) = e012345(0,0,0,5,0)
657  e5(3,3,3,3,4) = e012345(0,0,0,4,1)
658  e5(3,3,3,4,4) = e012345(0,0,0,3,2)
659  e5(3,3,4,4,4) = e012345(0,0,0,2,3)
660  e5(3,4,4,4,4) = e012345(0,0,0,1,4)
661  e5(4,4,4,4,4) = e012345(0,0,0,0,5)
662 
663 #ifdef COLLIERTEST
664  end subroutine cep12345_if
665 #endif
666 #ifdef RACOON
667  end subroutine cep12345
668 #endif
669 
670 
671 
672 
673 
674 #ifdef COLLIERTEST
675  subroutine cfp12345_if(p10,p21,p32,p43,p54,p50,p20,p31,p42, &
676  p53,p40,p51,p30,p41,p52,m02,m12,m22,m32,m42,m52, &
677  F0,F1,F2,F3,F4,F5,rank,Ferr,Ferr2)
678 #endif
679 #ifdef RACOON
680  subroutine cfp12345(p10,p21,p32,p43,p54,p50,p20,p31,p42, &
681  p53,p40,p51,p30,p41,p52,m02,m12,m22,m32,m42,m52, &
682  F0,F1,F2,F3,F4,F5,rank)
683 #endif
684 
685  use collier
686 
687 #ifdef RACOON
688  entry cfp1234(p10,p21,p32,p43,p54,p50,p20,p31,p42, &
689  p53,p40,p51,p30,p41,p52,m02,m12,m22,m32,m42,m52, &
690  f0,f1,f2,f3,f4,rank)
691 #endif
692 
693  implicit none
694  double complex, intent(in) :: p10,p21,p32,p43,p54,p50,p20,p31,p42
695  double complex, intent(in) :: p53,p40,p51,p30,p41,p52
696  double complex, intent(in) :: m02,m12,m22,m32,m42,m52
697  integer, intent(in) :: rank
698 #ifdef COLLIERTEST
699  double precision, optional, intent(out) :: Ferr(0:5),Ferr2(0:5)
700 #endif
701  double complex, intent(out) :: F0,F1(5),F2(0:5,0:5),F3(0:5,0:5,0:5)
702  double complex, intent(out) :: F4(0:5,0:5,0:5,0:5),F5(0:5,0:5,0:5,0:5,0:5)
703  double complex :: F012345(0:rank/2,0:rank,0:rank,0:rank,0:rank,0:rank)
704  double complex :: F012345uv(0:rank/2,0:rank,0:rank,0:rank,0:rank,0:rank)
705 
706 #ifdef COLLIERTEST
707 #ifdef NOINTERFACE
708  if(present(ferr)) then
709  if(present(ferr2)) then
710  call f_main_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
711  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank,ferr(0:rank),ferr2=ferr2(0:rank))
712  else
713  call f_main_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
714  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank,ferr(0:rank))
715  endif
716  else
717  call f_main_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
718  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank)
719  endif
720 #else
721  if(present(ferr)) then
722  if(present(ferr2)) then
723  call f_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
724  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank,ferr(0:rank),ferr2=ferr2(0:rank))
725  else
726  call f_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
727  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank,ferr(0:rank))
728  end if
729  else
730  call f_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
731  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank)
732  endif
733 #endif
734 #endif
735 
736 
737 #ifdef RACOON
738 #ifdef NOINTERFACE
739  call f_main_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
740  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank)
741 #else
742  call f_cll(f012345,f012345uv,p10,p21,p32,p43,p54,p50,p20,p31,p42,p53,p40, &
743  p51,p30,p41,p52,m02,m12,m22,m32,m42,m52,rank)
744 #endif
745 #endif
746 
747 
748  f0 = f012345(0,0,0,0,0,0)
749  if (rank.eq.0) return
750 
751  f1(1) = f012345(0,1,0,0,0,0)
752  f1(2) = f012345(0,0,1,0,0,0)
753  f1(3) = f012345(0,0,0,1,0,0)
754  f1(4) = f012345(0,0,0,0,1,0)
755  f1(5) = f012345(0,0,0,0,0,1)
756  if (rank.eq.1) return
757 
758  f2(0,0) = f012345(1,0,0,0,0,0)
759  f2(1,1) = f012345(0,2,0,0,0,0)
760  f2(1,2) = f012345(0,1,1,0,0,0)
761  f2(1,3) = f012345(0,1,0,1,0,0)
762  f2(1,4) = f012345(0,1,0,0,1,0)
763  f2(1,5) = f012345(0,1,0,0,0,1)
764  f2(2,2) = f012345(0,0,2,0,0,0)
765  f2(2,3) = f012345(0,0,1,1,0,0)
766  f2(2,4) = f012345(0,0,1,0,1,0)
767  f2(2,5) = f012345(0,0,1,0,0,1)
768  f2(3,3) = f012345(0,0,0,2,0,0)
769  f2(3,4) = f012345(0,0,0,1,1,0)
770  f2(3,5) = f012345(0,0,0,1,0,1)
771  f2(4,4) = f012345(0,0,0,0,2,0)
772  f2(4,5) = f012345(0,0,0,0,1,1)
773  f2(5,5) = f012345(0,0,0,0,0,2)
774  if (rank.eq.2) return
775 
776  f3(0,0,1) = f012345(1,1,0,0,0,0)
777  f3(0,0,2) = f012345(1,0,1,0,0,0)
778  f3(0,0,3) = f012345(1,0,0,1,0,0)
779  f3(0,0,4) = f012345(1,0,0,0,1,0)
780  f3(0,0,5) = f012345(1,0,0,0,0,1)
781  f3(1,1,1) = f012345(0,3,0,0,0,0)
782  f3(1,1,2) = f012345(0,2,1,0,0,0)
783  f3(1,1,3) = f012345(0,2,0,1,0,0)
784  f3(1,1,4) = f012345(0,2,0,0,1,0)
785  f3(1,1,5) = f012345(0,2,0,0,0,1)
786  f3(1,2,2) = f012345(0,1,2,0,0,0)
787  f3(1,2,3) = f012345(0,1,1,1,0,0)
788  f3(1,2,4) = f012345(0,1,1,0,1,0)
789  f3(1,2,5) = f012345(0,1,1,0,0,1)
790  f3(1,3,3) = f012345(0,1,0,2,0,0)
791  f3(1,3,4) = f012345(0,1,0,1,1,0)
792  f3(1,3,5) = f012345(0,1,0,1,0,1)
793  f3(1,4,4) = f012345(0,1,0,0,2,0)
794  f3(1,4,5) = f012345(0,1,0,0,1,1)
795  f3(1,5,5) = f012345(0,1,0,0,0,2)
796  f3(2,2,2) = f012345(0,0,3,0,0,0)
797  f3(2,2,3) = f012345(0,0,2,1,0,0)
798  f3(2,2,4) = f012345(0,0,2,0,1,0)
799  f3(2,2,5) = f012345(0,0,2,0,0,1)
800  f3(2,3,3) = f012345(0,0,1,2,0,0)
801  f3(2,3,4) = f012345(0,0,1,1,1,0)
802  f3(2,3,5) = f012345(0,0,1,1,0,1)
803  f3(2,4,4) = f012345(0,0,1,0,2,0)
804  f3(2,4,5) = f012345(0,0,1,0,1,1)
805  f3(2,5,5) = f012345(0,0,1,0,0,2)
806  f3(3,3,3) = f012345(0,0,0,3,0,0)
807  f3(3,3,4) = f012345(0,0,0,2,1,0)
808  f3(3,3,5) = f012345(0,0,0,2,0,1)
809  f3(3,4,4) = f012345(0,0,0,1,2,0)
810  f3(3,4,5) = f012345(0,0,0,1,1,1)
811  f3(3,5,5) = f012345(0,0,0,1,0,2)
812  f3(4,4,4) = f012345(0,0,0,0,3,0)
813  f3(4,4,5) = f012345(0,0,0,0,2,1)
814  f3(4,5,5) = f012345(0,0,0,0,1,2)
815  f3(5,5,5) = f012345(0,0,0,0,0,3)
816  if (rank.eq.3) return
817 
818  f4(0,0,0,0) = f012345(2,0,0,0,0,0)
819  f4(0,0,1,1) = f012345(1,2,0,0,0,0)
820  f4(0,0,1,2) = f012345(1,1,1,0,0,0)
821  f4(0,0,1,3) = f012345(1,1,0,1,0,0)
822  f4(0,0,1,4) = f012345(1,1,0,0,1,0)
823  f4(0,0,1,5) = f012345(1,1,0,0,0,1)
824  f4(0,0,2,2) = f012345(1,0,2,0,0,0)
825  f4(0,0,2,3) = f012345(1,0,1,1,0,0)
826  f4(0,0,2,4) = f012345(1,0,1,0,1,0)
827  f4(0,0,2,5) = f012345(1,0,1,0,0,1)
828  f4(0,0,3,3) = f012345(1,0,0,2,0,0)
829  f4(0,0,3,4) = f012345(1,0,0,1,1,0)
830  f4(0,0,3,5) = f012345(1,0,0,1,0,1)
831  f4(0,0,4,4) = f012345(1,0,0,0,2,0)
832  f4(0,0,4,5) = f012345(1,0,0,0,1,1)
833  f4(0,0,5,5) = f012345(1,0,0,0,0,2)
834  f4(1,1,1,1) = f012345(0,4,0,0,0,0)
835  f4(1,1,1,2) = f012345(0,3,1,0,0,0)
836  f4(1,1,1,3) = f012345(0,3,0,1,0,0)
837  f4(1,1,1,4) = f012345(0,3,0,0,1,0)
838  f4(1,1,1,5) = f012345(0,3,0,0,0,1)
839  f4(1,1,2,2) = f012345(0,2,2,0,0,0)
840  f4(1,1,2,3) = f012345(0,2,1,1,0,0)
841  f4(1,1,2,4) = f012345(0,2,1,0,1,0)
842  f4(1,1,2,5) = f012345(0,2,1,0,0,1)
843  f4(1,1,3,3) = f012345(0,2,0,2,0,0)
844  f4(1,1,3,4) = f012345(0,2,0,1,1,0)
845  f4(1,1,3,5) = f012345(0,2,0,1,0,1)
846  f4(1,1,4,4) = f012345(0,2,0,0,2,0)
847  f4(1,1,4,5) = f012345(0,2,0,0,1,1)
848  f4(1,1,5,5) = f012345(0,2,0,0,0,2)
849  f4(1,2,2,2) = f012345(0,1,3,0,0,0)
850  f4(1,2,2,3) = f012345(0,1,2,1,0,0)
851  f4(1,2,2,4) = f012345(0,1,2,0,1,0)
852  f4(1,2,2,5) = f012345(0,1,2,0,0,1)
853  f4(1,2,3,3) = f012345(0,1,1,2,0,0)
854  f4(1,2,3,4) = f012345(0,1,1,1,1,0)
855  f4(1,2,3,5) = f012345(0,1,1,1,0,1)
856  f4(1,2,4,4) = f012345(0,1,1,0,2,0)
857  f4(1,2,4,5) = f012345(0,1,1,0,1,1)
858  f4(1,2,5,5) = f012345(0,1,1,0,0,2)
859  f4(1,3,3,3) = f012345(0,1,0,3,0,0)
860  f4(1,3,3,4) = f012345(0,1,0,2,1,0)
861  f4(1,3,3,5) = f012345(0,1,0,2,0,1)
862  f4(1,3,4,4) = f012345(0,1,0,1,2,0)
863  f4(1,3,4,5) = f012345(0,1,0,1,1,1)
864  f4(1,3,5,5) = f012345(0,1,0,1,0,2)
865  f4(1,4,4,4) = f012345(0,1,0,0,3,0)
866  f4(1,4,4,5) = f012345(0,1,0,0,2,1)
867  f4(1,4,5,5) = f012345(0,1,0,0,1,2)
868  f4(1,5,5,5) = f012345(0,1,0,0,0,3)
869  f4(2,2,2,2) = f012345(0,0,4,0,0,0)
870  f4(2,2,2,3) = f012345(0,0,3,1,0,0)
871  f4(2,2,2,4) = f012345(0,0,3,0,1,0)
872  f4(2,2,2,5) = f012345(0,0,3,0,0,1)
873  f4(2,2,3,3) = f012345(0,0,2,2,0,0)
874  f4(2,2,3,4) = f012345(0,0,2,1,1,0)
875  f4(2,2,3,5) = f012345(0,0,2,1,0,1)
876  f4(2,2,4,4) = f012345(0,0,2,0,2,0)
877  f4(2,2,4,5) = f012345(0,0,2,0,1,1)
878  f4(2,2,5,5) = f012345(0,0,2,0,0,2)
879  f4(2,3,3,3) = f012345(0,0,1,3,0,0)
880  f4(2,3,3,4) = f012345(0,0,1,2,1,0)
881  f4(2,3,3,5) = f012345(0,0,1,2,0,1)
882  f4(2,3,4,4) = f012345(0,0,1,1,2,0)
883  f4(2,3,4,5) = f012345(0,0,1,1,1,1)
884  f4(2,3,5,5) = f012345(0,0,1,1,0,2)
885  f4(2,4,4,4) = f012345(0,0,1,0,3,0)
886  f4(2,4,4,5) = f012345(0,0,1,0,2,1)
887  f4(2,4,5,5) = f012345(0,0,1,0,1,2)
888  f4(2,5,5,5) = f012345(0,0,1,0,0,3)
889  f4(3,3,3,3) = f012345(0,0,0,4,0,0)
890  f4(3,3,3,4) = f012345(0,0,0,3,1,0)
891  f4(3,3,3,5) = f012345(0,0,0,3,0,1)
892  f4(3,3,4,4) = f012345(0,0,0,2,2,0)
893  f4(3,3,4,5) = f012345(0,0,0,2,1,1)
894  f4(3,3,5,5) = f012345(0,0,0,2,0,2)
895  f4(3,4,4,4) = f012345(0,0,0,1,3,0)
896  f4(3,4,4,5) = f012345(0,0,0,1,2,1)
897  f4(3,4,5,5) = f012345(0,0,0,1,1,2)
898  f4(3,5,5,5) = f012345(0,0,0,1,0,3)
899  f4(4,4,4,4) = f012345(0,0,0,0,4,0)
900  f4(4,4,4,5) = f012345(0,0,0,0,3,1)
901  f4(4,4,5,5) = f012345(0,0,0,0,2,2)
902  f4(4,5,5,5) = f012345(0,0,0,0,1,3)
903  f4(5,5,5,5) = f012345(0,0,0,0,0,4)
904  if (rank.eq.4) return
905 
906  f5(0,0,0,0,1) = f012345(2,1,0,0,0,0)
907  f5(0,0,0,0,2) = f012345(2,0,1,0,0,0)
908  f5(0,0,0,0,3) = f012345(2,0,0,1,0,0)
909  f5(0,0,0,0,4) = f012345(2,0,0,0,1,0)
910  f5(0,0,0,0,5) = f012345(2,0,0,0,0,1)
911  f5(0,0,1,1,1) = f012345(1,3,0,0,0,0)
912  f5(0,0,1,1,2) = f012345(1,2,1,0,0,0)
913  f5(0,0,1,1,3) = f012345(1,2,0,1,0,0)
914  f5(0,0,1,1,4) = f012345(1,2,0,0,1,0)
915  f5(0,0,1,1,5) = f012345(1,2,0,0,0,1)
916  f5(0,0,1,2,2) = f012345(1,1,2,0,0,0)
917  f5(0,0,1,2,3) = f012345(1,1,1,1,0,0)
918  f5(0,0,1,2,4) = f012345(1,1,1,0,1,0)
919  f5(0,0,1,2,5) = f012345(1,1,1,0,0,1)
920  f5(0,0,1,3,3) = f012345(1,1,0,2,0,0)
921  f5(0,0,1,3,4) = f012345(1,1,0,1,1,0)
922  f5(0,0,1,3,5) = f012345(1,1,0,1,0,1)
923  f5(0,0,1,4,4) = f012345(1,1,0,0,2,0)
924  f5(0,0,1,4,5) = f012345(1,1,0,0,1,1)
925  f5(0,0,1,5,5) = f012345(1,1,0,0,0,2)
926  f5(0,0,2,2,2) = f012345(1,0,3,0,0,0)
927  f5(0,0,2,2,3) = f012345(1,0,2,1,0,0)
928  f5(0,0,2,2,4) = f012345(1,0,2,0,1,0)
929  f5(0,0,2,2,5) = f012345(1,0,2,0,0,1)
930  f5(0,0,2,3,3) = f012345(1,0,1,2,0,0)
931  f5(0,0,2,3,4) = f012345(1,0,1,1,1,0)
932  f5(0,0,2,3,5) = f012345(1,0,1,1,0,1)
933  f5(0,0,2,4,4) = f012345(1,0,1,0,2,0)
934  f5(0,0,2,4,5) = f012345(1,0,1,0,1,1)
935  f5(0,0,2,5,5) = f012345(1,0,1,0,0,2)
936  f5(0,0,3,3,3) = f012345(1,0,0,3,0,0)
937  f5(0,0,3,3,4) = f012345(1,0,0,2,1,0)
938  f5(0,0,3,3,5) = f012345(1,0,0,2,0,1)
939  f5(0,0,3,4,4) = f012345(1,0,0,1,2,0)
940  f5(0,0,3,4,5) = f012345(1,0,0,1,1,1)
941  f5(0,0,3,5,5) = f012345(1,0,0,1,0,2)
942  f5(0,0,4,4,4) = f012345(1,0,0,0,3,0)
943  f5(0,0,4,4,5) = f012345(1,0,0,0,2,1)
944  f5(0,0,4,5,5) = f012345(1,0,0,0,1,2)
945  f5(0,0,5,5,5) = f012345(1,0,0,0,0,3)
946  f5(1,1,1,1,1) = f012345(0,5,0,0,0,0)
947  f5(1,1,1,1,2) = f012345(0,4,1,0,0,0)
948  f5(1,1,1,1,3) = f012345(0,4,0,1,0,0)
949  f5(1,1,1,1,4) = f012345(0,4,0,0,1,0)
950  f5(1,1,1,1,5) = f012345(0,4,0,0,0,1)
951  f5(1,1,1,2,2) = f012345(0,3,2,0,0,0)
952  f5(1,1,1,2,3) = f012345(0,3,1,1,0,0)
953  f5(1,1,1,2,4) = f012345(0,3,1,0,1,0)
954  f5(1,1,1,2,5) = f012345(0,3,1,0,0,1)
955  f5(1,1,1,3,3) = f012345(0,3,0,2,0,0)
956  f5(1,1,1,3,4) = f012345(0,3,0,1,1,0)
957  f5(1,1,1,3,5) = f012345(0,3,0,1,0,1)
958  f5(1,1,1,4,4) = f012345(0,3,0,0,2,0)
959  f5(1,1,1,4,5) = f012345(0,3,0,0,1,1)
960  f5(1,1,1,5,5) = f012345(0,3,0,0,0,2)
961  f5(1,1,2,2,2) = f012345(0,2,3,0,0,0)
962  f5(1,1,2,2,3) = f012345(0,2,2,1,0,0)
963  f5(1,1,2,2,4) = f012345(0,2,2,0,1,0)
964  f5(1,1,2,2,5) = f012345(0,2,2,0,0,1)
965  f5(1,1,2,3,3) = f012345(0,2,1,2,0,0)
966  f5(1,1,2,3,4) = f012345(0,2,1,1,1,0)
967  f5(1,1,2,3,5) = f012345(0,2,1,1,0,1)
968  f5(1,1,2,4,4) = f012345(0,2,1,0,2,0)
969  f5(1,1,2,4,5) = f012345(0,2,1,0,1,1)
970  f5(1,1,2,5,5) = f012345(0,2,1,0,0,2)
971  f5(1,1,3,3,3) = f012345(0,2,0,3,0,0)
972  f5(1,1,3,3,4) = f012345(0,2,0,2,1,0)
973  f5(1,1,3,3,5) = f012345(0,2,0,2,0,1)
974  f5(1,1,3,4,4) = f012345(0,2,0,1,2,0)
975  f5(1,1,3,4,5) = f012345(0,2,0,1,1,1)
976  f5(1,1,3,5,5) = f012345(0,2,0,1,0,2)
977  f5(1,1,4,4,4) = f012345(0,2,0,0,3,0)
978  f5(1,1,4,4,5) = f012345(0,2,0,0,2,1)
979  f5(1,1,4,5,5) = f012345(0,2,0,0,1,2)
980  f5(1,1,5,5,5) = f012345(0,2,0,0,0,3)
981  f5(1,2,2,2,2) = f012345(0,1,4,0,0,0)
982  f5(1,2,2,2,3) = f012345(0,1,3,1,0,0)
983  f5(1,2,2,2,4) = f012345(0,1,3,0,1,0)
984  f5(1,2,2,2,5) = f012345(0,1,3,0,0,1)
985  f5(1,2,2,3,3) = f012345(0,1,2,2,0,0)
986  f5(1,2,2,3,4) = f012345(0,1,2,1,1,0)
987  f5(1,2,2,3,5) = f012345(0,1,2,1,0,1)
988  f5(1,2,2,4,4) = f012345(0,1,2,0,2,0)
989  f5(1,2,2,4,5) = f012345(0,1,2,0,1,1)
990  f5(1,2,2,5,5) = f012345(0,1,2,0,0,2)
991  f5(1,2,3,3,3) = f012345(0,1,1,3,0,0)
992  f5(1,2,3,3,4) = f012345(0,1,1,2,1,0)
993  f5(1,2,3,3,5) = f012345(0,1,1,2,0,1)
994  f5(1,2,3,4,4) = f012345(0,1,1,1,2,0)
995  f5(1,2,3,4,5) = f012345(0,1,1,1,1,1)
996  f5(1,2,3,5,5) = f012345(0,1,1,1,0,2)
997  f5(1,2,4,4,4) = f012345(0,1,1,0,3,0)
998  f5(1,2,4,4,5) = f012345(0,1,1,0,2,1)
999  f5(1,2,4,5,5) = f012345(0,1,1,0,1,2)
1000  f5(1,2,5,5,5) = f012345(0,1,1,0,0,3)
1001  f5(1,3,3,3,3) = f012345(0,1,0,4,0,0)
1002  f5(1,3,3,3,4) = f012345(0,1,0,3,1,0)
1003  f5(1,3,3,3,5) = f012345(0,1,0,3,0,1)
1004  f5(1,3,3,4,4) = f012345(0,1,0,2,2,0)
1005  f5(1,3,3,4,5) = f012345(0,1,0,2,1,1)
1006  f5(1,3,3,5,5) = f012345(0,1,0,2,0,2)
1007  f5(1,3,4,4,4) = f012345(0,1,0,1,3,0)
1008  f5(1,3,4,4,5) = f012345(0,1,0,1,2,1)
1009  f5(1,3,4,5,5) = f012345(0,1,0,1,1,2)
1010  f5(1,3,5,5,5) = f012345(0,1,0,1,0,3)
1011  f5(1,4,4,4,4) = f012345(0,1,0,0,4,0)
1012  f5(1,4,4,4,5) = f012345(0,1,0,0,3,1)
1013  f5(1,4,4,5,5) = f012345(0,1,0,0,2,2)
1014  f5(1,4,5,5,5) = f012345(0,1,0,0,1,3)
1015  f5(1,5,5,5,5) = f012345(0,1,0,0,0,4)
1016  f5(2,2,2,2,2) = f012345(0,0,5,0,0,0)
1017  f5(2,2,2,2,3) = f012345(0,0,4,1,0,0)
1018  f5(2,2,2,2,4) = f012345(0,0,4,0,1,0)
1019  f5(2,2,2,2,5) = f012345(0,0,4,0,0,1)
1020  f5(2,2,2,3,3) = f012345(0,0,3,2,0,0)
1021  f5(2,2,2,3,4) = f012345(0,0,3,1,1,0)
1022  f5(2,2,2,3,5) = f012345(0,0,3,1,0,1)
1023  f5(2,2,2,4,4) = f012345(0,0,3,0,2,0)
1024  f5(2,2,2,4,5) = f012345(0,0,3,0,1,1)
1025  f5(2,2,2,5,5) = f012345(0,0,3,0,0,2)
1026  f5(2,2,3,3,3) = f012345(0,0,2,3,0,0)
1027  f5(2,2,3,3,4) = f012345(0,0,2,2,1,0)
1028  f5(2,2,3,3,5) = f012345(0,0,2,2,0,1)
1029  f5(2,2,3,4,4) = f012345(0,0,2,1,2,0)
1030  f5(2,2,3,4,5) = f012345(0,0,2,1,1,1)
1031  f5(2,2,3,5,5) = f012345(0,0,2,1,0,2)
1032  f5(2,2,4,4,4) = f012345(0,0,2,0,3,0)
1033  f5(2,2,4,4,5) = f012345(0,0,2,0,2,1)
1034  f5(2,2,4,5,5) = f012345(0,0,2,0,1,2)
1035  f5(2,2,5,5,5) = f012345(0,0,2,0,0,3)
1036  f5(2,3,3,3,3) = f012345(0,0,1,4,0,0)
1037  f5(2,3,3,3,4) = f012345(0,0,1,3,1,0)
1038  f5(2,3,3,3,5) = f012345(0,0,1,3,0,1)
1039  f5(2,3,3,4,4) = f012345(0,0,1,2,2,0)
1040  f5(2,3,3,4,5) = f012345(0,0,1,2,1,1)
1041  f5(2,3,3,5,5) = f012345(0,0,1,2,0,2)
1042  f5(2,3,4,4,4) = f012345(0,0,1,1,3,0)
1043  f5(2,3,4,4,5) = f012345(0,0,1,1,2,1)
1044  f5(2,3,4,5,5) = f012345(0,0,1,1,1,2)
1045  f5(2,3,5,5,5) = f012345(0,0,1,1,0,3)
1046  f5(2,4,4,4,4) = f012345(0,0,1,0,4,0)
1047  f5(2,4,4,4,5) = f012345(0,0,1,0,3,1)
1048  f5(2,4,4,5,5) = f012345(0,0,1,0,2,2)
1049  f5(2,4,5,5,5) = f012345(0,0,1,0,1,3)
1050  f5(2,5,5,5,5) = f012345(0,0,1,0,0,4)
1051  f5(3,3,3,3,3) = f012345(0,0,0,5,0,0)
1052  f5(3,3,3,3,4) = f012345(0,0,0,4,1,0)
1053  f5(3,3,3,3,5) = f012345(0,0,0,4,0,1)
1054  f5(3,3,3,4,4) = f012345(0,0,0,3,2,0)
1055  f5(3,3,3,4,5) = f012345(0,0,0,3,1,1)
1056  f5(3,3,3,5,5) = f012345(0,0,0,3,0,2)
1057  f5(3,3,4,4,4) = f012345(0,0,0,2,3,0)
1058  f5(3,3,4,4,5) = f012345(0,0,0,2,2,1)
1059  f5(3,3,4,5,5) = f012345(0,0,0,2,1,2)
1060  f5(3,3,5,5,5) = f012345(0,0,0,2,0,3)
1061  f5(3,4,4,4,4) = f012345(0,0,0,1,4,0)
1062  f5(4,4,4,4,4) = f012345(0,0,0,0,5,0)
1063  f5(4,4,4,4,5) = f012345(0,0,0,0,4,1)
1064  f5(4,4,4,5,5) = f012345(0,0,0,0,3,2)
1065  f5(4,4,5,5,5) = f012345(0,0,0,0,2,3)
1066  f5(4,5,5,5,5) = f012345(0,0,0,0,1,4)
1067  f5(5,5,5,5,5) = f012345(0,0,0,0,0,5)
1068 
1069 #ifdef COLLIERTEST
1070  end subroutine cfp12345_if
1071 #endif
1072 #ifdef RACOON
1073  end subroutine cfp12345
1074 #endif
1075 
1076 
1077 #ifdef COLLIERTEST
1078  subroutine defcoli_if
1079 #endif
1080 #ifdef RACOON
1081  subroutine defcoli
1082 #endif
1083 
1084  use collier
1085 
1086 ! call initcoli
1087  call init_cll(6)
1088  call switchofferrstop_cll()
1089  call setmode_cll(1) ! COLI
1090  call setcheckacc_cll(1d0)
1091  call setcritacc_cll(1d-2)
1092  call setreqacc_cll(1d-8)
1093 ! call SetMode_cll(2) ! DDlib
1094 ! call setcminf2(dcmplx(1d-20)) ! to ensure correct calculation
1095 ! of singular integrals in width
1096  call initmonitoring_cll()
1097 
1098 #ifdef COLLIERTEST
1099  end subroutine defcoli_if
1100 #endif
1101 #ifdef RACOON
1102  end subroutine defcoli
1103 #endif
1104 
1105 
1106 #ifdef COLLIERTEST
1107  subroutine setmphoton2_if(m2)
1108 #endif
1109 #ifdef RACOON
1110  subroutine setmphoton2(m2)
1111 #endif
1112 
1113  use collier
1114 
1115  implicit none
1116  double precision, intent(in) :: m2
1117 
1118  call setmuir2_cll(m2)
1119 
1120 #ifdef COLLIERTEST
1121  end subroutine setmphoton2_if
1122 #endif
1123 #ifdef RACOON
1124  end subroutine setmphoton2
1125 #endif
1126 
1127 
1128 #ifdef COLLIERTEST
1129  subroutine setmudim2_if(m2)
1130 #endif
1131 #ifdef RACOON
1132  subroutine setmudim2(m2)
1133 #endif
1134 
1135  use collier
1136 
1137  implicit none
1138  double precision, intent(in) :: m2
1139 
1140  call setmuuv2_cll(m2)
1141 
1142 #ifdef COLLIERTEST
1143  end subroutine setmudim2_if
1144 #endif
1145 #ifdef RACOON
1146  end subroutine setmudim2
1147 #endif
1148 
1149 
1150 #ifdef COLLIERTEST
1151  subroutine setminf2_if(m2)
1152 #endif
1153 #ifdef RACOON
1154  subroutine setcminf2(m2)
1155 #endif
1156 
1157  use collier
1158 
1159  implicit none
1160  double complex, intent(in) :: m2
1161 
1162  call addminf2_cll(m2)
1163 
1164 #ifdef COLLIERTEST
1165  end subroutine setminf2_if
1166 #endif
1167 #ifdef RACOON
1168  end subroutine setcminf2
1169 #endif
1170 
1171 
1172 #ifdef COLLIERTEST
1173  subroutine clearcoliminf2_if
1174 !#endif
1175 !#ifdef RACOON
1176 ! subroutine clearcoliminf2
1177 !#endif
1178 
1179  use collier
1180 
1181  implicit none
1182 
1183  call clearminf2_cll
1184 
1185 !#ifdef COLLIERTEST
1186  end subroutine clearcoliminf2_if
1187 #endif
1188 !#ifdef RACOON
1189 ! end subroutine clearcoliminf2
1190 !#endif
1191 
1192 #ifdef COLLIERTEST
1193  subroutine setminfscale2_if(m2)
1194 #endif
1195 #ifdef RACOON
1196  subroutine setcminfscale2(m2)
1197 #endif
1198 
1199  use collier
1200 
1201  implicit none
1202  double precision, intent(in) :: m2
1203 
1204  return
1205 
1206 #ifdef COLLIERTEST
1207  end subroutine setminfscale2_if
1208 #endif
1209 #ifdef RACOON
1210  end subroutine setcminfscale2
1211 #endif
1212 
1213 
1214 #ifdef COLLIERTEST
1215  function ca0f_if(m02)
1216 #endif
1217 #ifdef RACOON
1218  function ca0f(m02)
1219 #endif
1220 
1221  implicit none
1222  double complex :: ca0f,ca0f_if
1223  double complex, intent(in) :: m02
1224  double complex :: a0_coli
1225 
1226 #ifdef COLLIERTEST
1227  ca0f_if=a0_coli(m02)
1228 #endif
1229 #ifdef RACOON
1230  ca0f=a0_coli(m02)
1231 #endif
1232 
1233 #ifdef COLLIERTEST
1234  end function ca0f_if
1235 #endif
1236 #ifdef RACOON
1237  end function ca0f
1238 #endif
1239 
1240 #ifdef COLLIERTEST
1241  function cb0f_if(p,m02,m12)
1242 #endif
1243 #ifdef RACOON
1244  function cb0f(p,m02,m12)
1245 #endif
1246 
1247  implicit none
1248  double complex :: cb0f,cb0f_if
1249  double complex, intent(in) :: p,m02,m12
1250  double complex :: b0_coli
1251 
1252 #ifdef COLLIERTEST
1253  cb0f_if=b0_coli(p,m02,m12)
1254 #endif
1255 #ifdef RACOON
1256  cb0f=b0_coli(p,m02,m12)
1257 #endif
1258 
1259 #ifdef COLLIERTEST
1260  end function cb0f_if
1261 #endif
1262 #ifdef RACOON
1263  end function cb0f
1264 #endif
1265 
1266 #ifdef COLLIERTEST
1267  function cdb0f_if(p,m02,m12)
1268 #endif
1269 #ifdef RACOON
1270  function cdb0f(p,m02,m12)
1271 #endif
1272 
1273  implicit none
1274  double complex :: cdb0f,cdb0f_if
1275  double complex, intent(in) :: p,m02,m12
1276  double complex :: db0_coli
1277 
1278 #ifdef COLLIERTEST
1279  cdb0f_if=db0_coli(p,m02,m12)
1280 #endif
1281 #ifdef RACOON
1282  cdb0f=db0_coli(p,m02,m12)
1283 #endif
1284 
1285 #ifdef COLLIERTEST
1286  end function cdb0f_if
1287 #endif
1288 #ifdef RACOON
1289  end function cdb0f
1290 #endif
1291 
1292 #ifdef COLLIERTEST
1293  function cb1f_if(p,m02,m12)
1294 #endif
1295 #ifdef RACOON
1296  function cb1f(p,m02,m12)
1297 #endif
1298 
1299  implicit none
1300  double complex :: cb1f,cb1f_if
1301  double complex, intent(in) :: p,m02,m12
1302  double complex :: b1_coli
1303 
1304 #ifdef COLLIERTEST
1305  cb1f_if=b1_coli(p,m02,m12)
1306 #endif
1307 #ifdef RACOON
1308  cb1f=b1_coli(p,m02,m12)
1309 #endif
1310 
1311 #ifdef COLLIERTEST
1312  end function cb1f_if
1313 #endif
1314 #ifdef RACOON
1315  end function cb1f
1316 #endif
1317 
1318 #ifdef COLLIERTEST
1319  function cdb1f_if(p,m02,m12)
1320 #endif
1321 #ifdef RACOON
1322  function cdb1f(p,m02,m12)
1323 #endif
1324 
1325  implicit none
1326  double complex :: cdb1f,cdb1f_if
1327  double complex, intent(in) :: p,m02,m12
1328  double complex :: db1_coli
1329 
1330 #ifdef COLLIERTEST
1331  cdb1f_if=db1_coli(p,m02,m12)
1332 #endif
1333 #ifdef RACOON
1334  cdb1f=db1_coli(p,m02,m12)
1335 #endif
1336 
1337 #ifdef COLLIERTEST
1338  end function cdb1f_if
1339 #endif
1340 #ifdef RACOON
1341  end function cdb1f
1342 #endif
1343 
1344 #ifdef COLLIERTEST
1345  function cb00f_if(p,m02,m12)
1346 #endif
1347 #ifdef RACOON
1348  function cb00f(p,m02,m12)
1349 #endif
1350 
1351  implicit none
1352  double complex :: cb00f,cb00f_if
1353  double complex, intent(in) :: p,m02,m12
1354  double complex :: b00_coli
1355 
1356 #ifdef COLLIERTEST
1357  cb00f_if=b00_coli(p,m02,m12)
1358 #endif
1359 #ifdef RACOON
1360  cb00f=b00_coli(p,m02,m12)
1361 #endif
1362 
1363 #ifdef COLLIERTEST
1364  end function cb00f_if
1365 #endif
1366 #ifdef RACOON
1367  end function cb00f
1368 #endif
1369 
1370 
1371 #ifdef COLLIERTEST
1372  function cc0f_if(q12,q23,q13,m12,m22,m32)
1373 #endif
1374 #ifdef RACOON
1375  function cc0f(q12,q23,q13,m12,m22,m32)
1376 #endif
1377 
1378  implicit none
1379  double complex :: cc0f,cc0f_if
1380  double complex, intent(in) :: q12,q23,q13,m12,m22,m32
1381  double complex :: c0_coli
1382 
1383 #ifdef COLLIERTEST
1384  cc0f_if=c0_coli(q12,q23,q13,m12,m22,m32)
1385 #endif
1386 #ifdef RACOON
1387  cc0f=c0_coli(q12,q23,q13,m12,m22,m32)
1388 #endif
1389 
1390 
1391 #ifdef COLLIERTEST
1392  end function cc0f_if
1393 #endif
1394 #ifdef RACOON
1395  end function cc0f
1396 #endif
1397 
1398 
1399 #ifdef COLLIERTEST
1400  subroutine cacheon_if
1401 #endif
1402 #ifdef RACOON
1403  subroutine cacheon
1404 #endif
1405 
1406  use collier
1407  use cache
1408 
1409 ! call SwitchOnCacheSystem
1410  call initcachesystem_cll(1,6)
1411 ! call InitCacheSystem_cll(2,6)
1412 
1413 #ifdef COLLIERTEST
1414  end subroutine cacheon_if
1415 #endif
1416 #ifdef RACOON
1417  end subroutine cacheon
1418 #endif
1419 
1420 
1421 
1422 #ifdef COLLIERTEST
1423  subroutine cacheinit_if(nout)
1424 #endif
1425 #ifdef RACOON
1426  subroutine cacheinit(nout)
1427 #endif
1428 
1429  use collier
1430  use cache
1431 
1432  integer, intent(in) :: nout
1433 
1434  call initevent_cll(1)
1435 ! call InitEvent_cll(2)
1436 
1437 #ifdef COLLIERTEST
1438  end subroutine cacheinit_if
1439 #endif
1440 #ifdef RACOON
1441  end subroutine cacheinit
1442 #endif
1443 
1444 
1445 
1446 
1447 #ifdef COLLIERTEST
1448  subroutine countinit_if(nout)
1449 #endif
1450 #ifdef RACOON
1451  subroutine countinit(nout)
1452 #endif
1453 
1454  use collier
1455  use coli_stat
1456 
1457  integer, intent(in) :: nout
1458 
1460 
1461 #ifdef COLLIERTEST
1462  end subroutine countinit_if
1463 #endif
1464 #ifdef RACOON
1465  end subroutine countinit
1466 #endif
1467 
1468 
1469 
1470 #ifdef COLLIERTEST
1471  subroutine writecount_if(nout)
1472 #endif
1473 #ifdef RACOON
1474  subroutine writecount(nout)
1475 #endif
1476 
1477  use collier
1478  use coli_stat
1479 
1480  integer, intent(in) :: nout
1481 
1482 #ifdef CritPointsCOLI
1483  call printstatisticscoli_cll(nout)
1484 #endif
1485  call printstatistics_cll
1486 #ifdef CritPoints2
1487  call printstatistics2_cll
1488 #endif
1489 
1490 #ifdef COLLIERTEST
1491  end subroutine writecount_if
1492 #endif
1493 #ifdef RACOON
1494  end subroutine writecount
1495 #endif
1496 
1497 
1498 
1499 
1500 !end module interfaceAD
defcoli_if
subroutine defcoli_if
Definition: interfaceAD.F90:1079
ca0f_if
double complex function ca0f_if(m02)
Definition: interfaceAD.F90:1216
setmphoton2_if
subroutine setmphoton2_if(m2)
Definition: interfaceAD.F90:1108
cdb1f_if
double complex function cdb1f_if(p, m02, m12)
Definition: interfaceAD.F90:1320
collier
Definition: COLLIER.F90:30
ccp12345_if
subroutine ccp12345_if(p10, p21, p20, m02, m12, m22, C0, C1, C2, C3, C4, C5, C6, rank, Cerr, Cerr2)
Definition: interfaceAD.F90:139
setminf2_if
subroutine setminf2_if(m2)
Definition: interfaceAD.F90:1152
setmudim2_if
subroutine setmudim2_if(m2)
Definition: interfaceAD.F90:1130
cep12345_if
subroutine cep12345_if(p10, p21, p32, p43, p40, p20, p31, p42, p30, p41, m02, m12, m22, m32, m42, E0, E1, E2, E3, E4, E5, rank, Eerr, Eerr2)
Definition: interfaceAD.F90:428
countinit_if
subroutine countinit_if(nout)
Definition: interfaceAD.F90:1449
coli_stat::initstatisticsa_coli
subroutine initstatisticsa_coli
Definition: coli_stat.F90:54
cacheinit_if
subroutine cacheinit_if(nout)
Definition: interfaceAD.F90:1424
writecount_if
subroutine writecount_if(nout)
Definition: interfaceAD.F90:1472
cb00f_if
double complex function cb00f_if(p, m02, m12)
Definition: interfaceAD.F90:1346
cb1f_if
double complex function cb1f_if(p, m02, m12)
Definition: interfaceAD.F90:1294
cdp12345_if
subroutine cdp12345_if(p10, p21, p32, p30, p20, p31, m02, m12, m22, m32, D0, D1, D2, D3, D4, D5, rank, eswitch, Derr, Derr2)
Definition: interfaceAD.F90:268
coli_stat
Definition: coli_stat.F90:22
cbp12345_if
subroutine cbp12345_if(p10, m02, m12, B0, B1, B2, B3, B4, B5, B6, rank, switchin, Berr)
Definition: interfaceAD.F90:46
cfp12345_if
subroutine cfp12345_if(p10, p21, p32, p43, p54, p50, p20, p31, p42, p53, p40, p51, p30, p41, p52, m02, m12, m22, m32, m42, m52, F0, F1, F2, F3, F4, F5, rank, Ferr, Ferr2)
Definition: interfaceAD.F90:678
cb0f_if
double complex function cb0f_if(p, m02, m12)
Definition: interfaceAD.F90:1242
clearcoliminf2_if
subroutine clearcoliminf2_if
Definition: interfaceAD.F90:1174
cdb0f_if
double complex function cdb0f_if(p, m02, m12)
Definition: interfaceAD.F90:1268
cacheon_if
subroutine cacheon_if
Definition: interfaceAD.F90:1401
cc0f_if
double complex function cc0f_if(q12, q23, q13, m12, m22, m32)
Definition: interfaceAD.F90:1373
setminfscale2_if
subroutine setminfscale2_if(m2)
Definition: interfaceAD.F90:1194