flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
libcollier_wrapper.f90
Go to the documentation of this file.
1# 1 "src/loop_libraries/libcollier_wrapper.cpp"
2# 1 "<built-in>"
3# 1 "<command-line>"
4# 1 "/usr/include/stdc-predef.h" 1 3 4
5# 1 "<command-line>" 2
6# 1 "src/loop_libraries/libcollier_wrapper.cpp"
7! ====================================================================
8! This file is part of FlexibleSUSY.
9!
10! FlexibleSUSY is free software: you can redistribute it and/or modify
11! it under the terms of the GNU General Public License as published
12! by the Free Software Foundation, either version 3 of the License,
13! or (at your option) any later version.
14!
15! FlexibleSUSY is distributed in the hope that it will be useful, but
16! WITHOUT ANY WARRANTY; without even the implied warranty of
17! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18! General Public License for more details.
19!
20! You should have received a copy of the GNU General Public License
21! along with FlexibleSUSY. If not, see
22! <http:
23! ====================================================================
24# 71 "src/loop_libraries/libcollier_wrapper.cpp"
26 use collier
27 use, intrinsic :: iso_c_binding
28 use, intrinsic :: iso_fortran_env
29 implicit none
30
31contains
32 subroutine initialize_collier_dummy() bind(C, name='initialize_collier_impl')
33 call init_cll(4,2,"")
34 call setdeltair_cll(0d0, 0d0)
35 end
36
37 subroutine set_mu2_uv_dummy(scl2) bind(C, name='set_mu2_uv_impl')
38 real(C_DOUBLE), intent(in) :: scl2
39
40 call setmuuv2_cll(scl2)
41 call setmuir2_cll(scl2)
42 end
43
44 subroutine a0_dummy(res, m02) bind(C, name='A0_impl')
45 complex(C_DOUBLE_COMPLEX), intent(in) :: m02
46 complex(C_DOUBLE_COMPLEX), intent(out) :: res
47
48 call a0_cll(res, m02)
49 end
50
51 subroutine b0_dummy(res, p10, m02, m12) bind(C, name='B0_impl')
52 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
53 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
54 complex(C_DOUBLE_COMPLEX), intent(out) :: res
55
56 call b0_cll(res, p10, m02, m12)
57 end
58
59
60subroutine b1_dummy(res, p10, m02, m12) bind(C, name="B1_impl")
61 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
62 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
63 complex(C_DOUBLE_COMPLEX), intent(out) :: res
64 complex(REAL64), allocatable :: Bcoeff(:,:), Bcoeffuv(:,:)
65
66 allocate(bcoeff(0:1, 0:2))
67 allocate(bcoeffuv(0:1, 0:2))
68 call b_cll(bcoeff, bcoeffuv, p10, m02, m12, 2)
69
70 res = bcoeff(0,1)
71
72 deallocate(bcoeff, bcoeffuv)
73end
74
75subroutine b00_dummy(res, p10, m02, m12) bind(C, name="B00_impl")
76 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
77 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
78 complex(C_DOUBLE_COMPLEX), intent(out) :: res
79 complex(REAL64), allocatable :: Bcoeff(:,:), Bcoeffuv(:,:)
80
81 allocate(bcoeff(0:1, 0:2))
82 allocate(bcoeffuv(0:1, 0:2))
83 call b_cll(bcoeff, bcoeffuv, p10, m02, m12, 2)
84
85 res = bcoeff(1,0)
86
87 deallocate(bcoeff, bcoeffuv)
88end
89
90
91subroutine c0_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C0_impl")
92 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
93 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
94 complex(C_DOUBLE_COMPLEX), intent(out) :: res
95 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
96
97 allocate(ccoeff(0:1, 0:2, 0:2))
98 allocate(ccoeffuv(0:1, 0:2, 0:2))
99 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
100
101 res = ccoeff(0,0,0)
102
103 deallocate(ccoeff, ccoeffuv)
104end
105
106subroutine c00_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C00_impl")
107 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
108 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
109 complex(C_DOUBLE_COMPLEX), intent(out) :: res
110 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
111
112 allocate(ccoeff(0:1, 0:2, 0:2))
113 allocate(ccoeffuv(0:1, 0:2, 0:2))
114 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
115
116 res = ccoeff(1,0,0)
117
118 deallocate(ccoeff, ccoeffuv)
119end
120
121subroutine c1_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C1_impl")
122 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
123 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
124 complex(C_DOUBLE_COMPLEX), intent(out) :: res
125 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
126
127 allocate(ccoeff(0:1, 0:2, 0:2))
128 allocate(ccoeffuv(0:1, 0:2, 0:2))
129 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
130
131 res = ccoeff(0,1,0)
132
133 deallocate(ccoeff, ccoeffuv)
134end
135
136subroutine c11_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C11_impl")
137 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
138 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
139 complex(C_DOUBLE_COMPLEX), intent(out) :: res
140 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
141
142 allocate(ccoeff(0:1, 0:2, 0:2))
143 allocate(ccoeffuv(0:1, 0:2, 0:2))
144 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
145
146 res = ccoeff(0,2,0)
147
148 deallocate(ccoeff, ccoeffuv)
149end
150
151subroutine c12_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C12_impl")
152 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
153 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
154 complex(C_DOUBLE_COMPLEX), intent(out) :: res
155 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
156
157 allocate(ccoeff(0:1, 0:2, 0:2))
158 allocate(ccoeffuv(0:1, 0:2, 0:2))
159 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
160
161 res = ccoeff(0,1,1)
162
163 deallocate(ccoeff, ccoeffuv)
164end
165
166subroutine c2_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C2_impl")
167 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
168 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
169 complex(C_DOUBLE_COMPLEX), intent(out) :: res
170 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
171
172 allocate(ccoeff(0:1, 0:2, 0:2))
173 allocate(ccoeffuv(0:1, 0:2, 0:2))
174 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
175
176 res = ccoeff(0,0,1)
177
178 deallocate(ccoeff, ccoeffuv)
179end
180
181subroutine c22_dummy(res, p10, p21, p20, m02, m12, m22) bind(C, name="C22_impl")
182 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
183 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
184 complex(C_DOUBLE_COMPLEX), intent(out) :: res
185 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
186
187 allocate(ccoeff(0:1, 0:2, 0:2))
188 allocate(ccoeffuv(0:1, 0:2, 0:2))
189 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
190
191 res = ccoeff(0,0,2)
192
193 deallocate(ccoeff, ccoeffuv)
194end
195
196
197subroutine d0_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D0_impl")
198 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
199 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
200 complex(C_DOUBLE_COMPLEX), intent(out) :: res
201 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
202
203 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
204 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
205 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
206
207 res = dcoeff(0,0,0,0)
208
209 deallocate(dcoeff, dcoeffuv)
210end
211
212subroutine d00_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D00_impl")
213 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
214 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
215 complex(C_DOUBLE_COMPLEX), intent(out) :: res
216 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
217
218 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
219 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
220 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
221
222 res = dcoeff(1,0,0,0)
223
224 deallocate(dcoeff, dcoeffuv)
225end
226
227subroutine d1_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D1_impl")
228 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
229 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
230 complex(C_DOUBLE_COMPLEX), intent(out) :: res
231 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
232
233 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
234 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
235 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
236
237 res = dcoeff(0,1,0,0)
238
239 deallocate(dcoeff, dcoeffuv)
240end
241
242subroutine d11_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D11_impl")
243 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
244 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
245 complex(C_DOUBLE_COMPLEX), intent(out) :: res
246 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
247
248 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
249 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
250 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
251
252 res = dcoeff(0,2,0,0)
253
254 deallocate(dcoeff, dcoeffuv)
255end
256
257subroutine d12_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D12_impl")
258 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
259 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
260 complex(C_DOUBLE_COMPLEX), intent(out) :: res
261 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
262
263 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
264 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
265 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
266
267 res = dcoeff(0,1,1,0)
268
269 deallocate(dcoeff, dcoeffuv)
270end
271
272subroutine d13_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D13_impl")
273 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
274 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
275 complex(C_DOUBLE_COMPLEX), intent(out) :: res
276 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
277
278 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
279 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
280 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
281
282 res = dcoeff(0,1,0,1)
283
284 deallocate(dcoeff, dcoeffuv)
285end
286
287subroutine d2_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D2_impl")
288 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
289 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
290 complex(C_DOUBLE_COMPLEX), intent(out) :: res
291 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
292
293 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
294 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
295 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
296
297 res = dcoeff(0,0,1,0)
298
299 deallocate(dcoeff, dcoeffuv)
300end
301
302subroutine d22_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D22_impl")
303 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
304 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
305 complex(C_DOUBLE_COMPLEX), intent(out) :: res
306 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
307
308 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
309 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
310 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
311
312 res = dcoeff(0,0,2,0)
313
314 deallocate(dcoeff, dcoeffuv)
315end
316
317subroutine d23_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D23_impl")
318 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
319 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
320 complex(C_DOUBLE_COMPLEX), intent(out) :: res
321 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
322
323 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
324 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
325 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
326
327 res = dcoeff(0,0,1,1)
328
329 deallocate(dcoeff, dcoeffuv)
330end
331
332subroutine d3_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D3_impl")
333 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
334 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
335 complex(C_DOUBLE_COMPLEX), intent(out) :: res
336 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
337
338 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
339 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
340 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
341
342 res = dcoeff(0,0,0,1)
343
344 deallocate(dcoeff, dcoeffuv)
345end
346
347subroutine d33_dummy(res,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name="D33_impl")
348 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
349 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
350 complex(C_DOUBLE_COMPLEX), intent(out) :: res
351 complex(REAL64), allocatable :: Dcoeff(:,:,:,:), Dcoeffuv(:,:,:,:)
352
353 allocate(dcoeff(0:1, 0:2, 0:2, 0:2))
354 allocate(dcoeffuv(0:1, 0:2, 0:2, 0:2))
355 call d_cll(dcoeff,dcoeffuv,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32,2)
356
357 res = dcoeff(0,0,0,2)
358
359 deallocate(dcoeff, dcoeffuv)
360end
361
362 subroutine get_t1_dummy(a,m02) bind(C, name='get_A_impl')
363 complex(C_DOUBLE_COMPLEX), intent(in) :: m02
364 complex(C_DOUBLE_COMPLEX), intent(out), dimension(1) :: a
365 complex(REAL64), allocatable :: Acoeff(:), Acoeffuv(:)
366
367 allocate(acoeff(0:0))
368 allocate(acoeffuv(0:0))
369
370 call a_cll(acoeff,acoeffuv,m02,0)
371 a(1) = acoeff(0)
372
373 deallocate(acoeff,acoeffuv)
374 end
375
376 subroutine get_t2_dummy(b,p10,m02,m12) bind(C, name='get_B_impl')
377 complex(C_DOUBLE_COMPLEX), intent(in) :: p10
378 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12
379 complex(C_DOUBLE_COMPLEX), intent(out), dimension(3) :: b
380 complex(REAL64), allocatable :: Bcoeff(:,:), Bcoeffuv(:,:)
381
382 allocate(bcoeff(0:1,0:2))
383 allocate(bcoeffuv(0:1,0:2))
384 call b_cll(bcoeff, bcoeffuv, p10, m02, m12, 2)
385 b(1) = bcoeff(0,0)
386 b(2) = bcoeff(0,1)
387 b(3) = bcoeff(1,0)
388
389 deallocate(bcoeff,bcoeffuv)
390 end
391
392 subroutine get_t3_dummy(c,p10,p21,p20,m02,m12,m22) bind(C, name='get_C_impl')
393 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p20
394 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22
395 complex(C_DOUBLE_COMPLEX), intent(out), dimension(7) :: c
396 complex(REAL64), allocatable :: Ccoeff(:,:,:), Ccoeffuv(:,:,:)
397
398 allocate(ccoeff(0:1,0:2,0:2))
399 allocate(ccoeffuv(0:1,0:2,0:2))
400 call c_cll(ccoeff, ccoeffuv, p10, p21, p20, m02, m12, m22, 2)
401 c(1) = ccoeff(0,0,0)
402 c(2) = ccoeff(0,1,0)
403 c(3) = ccoeff(0,0,1)
404 c(4) = ccoeff(1,0,0)
405 c(5) = ccoeff(0,2,0)
406 c(6) = ccoeff(0,1,1)
407 c(7) = ccoeff(0,0,2)
408
409 deallocate(ccoeff,ccoeffuv)
410 end
411
412 subroutine get_t4_dummy(d,p10,p21,p32,p30,p20,p31,m02,m12,m22,m32) bind(C, name='get_D_impl')
413 complex(C_DOUBLE_COMPLEX), intent(in) :: p10, p21, p32, p30, p20, p31
414 complex(C_DOUBLE_COMPLEX), intent(in) :: m02, m12, m22, m32
415 complex(C_DOUBLE_COMPLEX), intent(out), dimension(11) :: d
416 complex(REAL64), allocatable :: TNcoeff(:),TNcoeffuv(:)
417 integer :: i
418 allocate(tncoeff(11))
419 allocate(tncoeffuv(11))
420
421 call tn_cll(tncoeff,tncoeffuv,[ p10,p21,p32,p30,p20,p31 ],[ m02,m12,m22,m32 ],4,2)
422 do i = 1, 11
423 d(i) = tncoeff(i)
424 end do
425
426 deallocate(tncoeff,tncoeffuv)
427 end
428
429end module
subroutine b00_dummy(res, p10, m02, m12)
subroutine d23_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine set_mu2_uv_dummy(scl2)
subroutine c12_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine get_t1_dummy(a, m02)
subroutine d0_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine d33_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine b1_dummy(res, p10, m02, m12)
subroutine d12_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine d22_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c2_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine get_t3_dummy(c, p10, p21, p20, m02, m12, m22)
subroutine d13_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine get_t4_dummy(d, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c00_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine c22_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine initialize_collier_dummy()
subroutine b0_dummy(res, p10, m02, m12)
subroutine d11_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine d1_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c11_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine d3_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine c0_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine d2_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)
subroutine get_t2_dummy(b, p10, m02, m12)
subroutine a0_dummy(res, m02)
subroutine c1_dummy(res, p10, p21, p20, m02, m12, m22)
subroutine d00_dummy(res, p10, p21, p32, p30, p20, p31, m02, m12, m22, m32)