JHUGen MELA  JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
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