1
C THE SUBROUTINE TO CREATE THE COEFFICIENTS FROM LAST LOOP WF AND
4
SUBROUTINE CREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE,LOOP_COEFS
5
$ ,SYMFACT,COLOR_ID,HELCONFIG)
11
PARAMETER (NBORNAMPS=2)
13
PARAMETER (IMAG1=(0D0,1D0))
15
PARAMETER (MAXLWFSIZE=4)
17
PARAMETER (LOOPMAXCOEFS=35)
19
PARAMETER (NCOLORROWS=39)
21
PARAMETER (NLOOPGROUPS=9)
27
COMPLEX*16 LOOP_WF(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
28
INTEGER RANK, COLOR_ID, SYMFACT, LCUT_SIZE, HELCONFIG
29
COMPLEX*16 LOOP_COEFS(LOOPMAXCOEFS)
39
INTEGER CF_D(NCOLORROWS,NBORNAMPS)
40
INTEGER CF_N(NCOLORROWS,NBORNAMPS)
44
LOGICAL HELDOUBLECHECKED
45
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
48
INTEGER GOODHEL(NCOMB)
49
LOGICAL GOODAMP(NLOOPGROUPS)
50
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
53
COMMON/HELCHOICE/HELPICKED
55
COMPLEX*16 AMP(NBORNAMPS)
61
CFTOT=DCMPLX(CF_N(COLOR_ID,I)/DBLE(ABS(CF_D(COLOR_ID,I)))
63
IF(CF_D(COLOR_ID,I).LT.0) CFTOT=CFTOT*IMAG1
64
CONST=CONST+CFTOT*DCONJG(AMP(I))
67
IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
69
CONST=CONST*GOODHEL(HELCONFIG)
71
CALL MERGE_WL(LOOP_WF,RANK,LCUT_SIZE,CONST,LOOP_COEFS)
75
SUBROUTINE MP_CREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE,LOOP_COEFS
76
$ ,SYMFACT,COLOR_ID,HELCONFIG)
81
PARAMETER (NBORNAMPS=2)
83
PARAMETER (IMAG1=(0E0_16,1E0_16))
85
PARAMETER (MAXLWFSIZE=4)
87
PARAMETER (LOOPMAXCOEFS=35)
89
PARAMETER (NCOLORROWS=39)
91
PARAMETER (NLOOPGROUPS=9)
97
COMPLEX*32 LOOP_WF(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
98
INTEGER RANK, COLOR_ID, SYMFACT, LCUT_SIZE, HELCONFIG
99
COMPLEX*32 LOOP_COEFS(LOOPMAXCOEFS)
109
INTEGER CF_D(NCOLORROWS,NBORNAMPS)
110
INTEGER CF_N(NCOLORROWS,NBORNAMPS)
114
LOGICAL HELDOUBLECHECKED
115
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
118
INTEGER GOODHEL(NCOMB)
119
LOGICAL GOODAMP(NLOOPGROUPS)
120
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
123
COMMON/HELCHOICE/HELPICKED
125
COMPLEX*32 AMP(NBORNAMPS)
128
CONST=(0.0E0_16,0.0E0_16)
131
CFTOT=CMPLX(CF_N(COLOR_ID,I)/REAL(ABS(CF_D(COLOR_ID,I))
132
$ ,KIND=16),0.0E0_16,KIND=16)
133
IF(CF_D(COLOR_ID,I).LT.0) CFTOT=CFTOT*IMAG1
134
CONST=CONST+CFTOT*CONJG(AMP(I))
137
IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
139
CONST=CONST*GOODHEL(HELCONFIG)
141
CALL MP_MERGE_WL(LOOP_WF,RANK,LCUT_SIZE,CONST,LOOP_COEFS)
146
SUBROUTINE EVAL_POLY(C,R,Q,OUT)
147
INCLUDE 'coef_specs.inc'
148
COMPLEX*16 C(0:LOOP_MAXCOEFS-1)
155
OUT=OUT+C(1)*Q(0)+C(2)*Q(1)+C(3)*Q(2)+C(4)*Q(3)
158
OUT=OUT+C(5)*Q(0)*Q(0)+C(6)*Q(0)*Q(1)+C(7)*Q(0)*Q(2)+C(8)*Q(0)
159
$ *Q(3)+C(9)*Q(1)*Q(1)+C(10)*Q(1)*Q(2)+C(11)*Q(1)*Q(3)
160
$ +C(12)*Q(2)*Q(2)+C(13)*Q(2)*Q(3)+C(14)*Q(3)*Q(3)
163
OUT=OUT+C(15)*Q(0)*Q(0)*Q(0)+C(16)*Q(0)*Q(0)*Q(1)+C(17)*Q(0)
164
$ *Q(0)*Q(2)+C(18)*Q(0)*Q(0)*Q(3)+C(19)*Q(0)*Q(1)*Q(1)
165
$ +C(20)*Q(0)*Q(1)*Q(2)+C(21)*Q(0)*Q(1)*Q(3)+C(22)*Q(0)*Q(2)
166
$ *Q(2)+C(23)*Q(0)*Q(2)*Q(3)+C(24)*Q(0)*Q(3)*Q(3)+C(25)*Q(1)
167
$ *Q(1)*Q(1)+C(26)*Q(1)*Q(1)*Q(2)+C(27)*Q(1)*Q(1)*Q(3)
168
$ +C(28)*Q(1)*Q(2)*Q(2)+C(29)*Q(1)*Q(2)*Q(3)+C(30)*Q(1)*Q(3)
169
$ *Q(3)+C(31)*Q(2)*Q(2)*Q(2)+C(32)*Q(2)*Q(2)*Q(3)+C(33)*Q(2)
170
$ *Q(3)*Q(3)+C(34)*Q(3)*Q(3)*Q(3)
174
SUBROUTINE MP_EVAL_POLY(C,R,Q,OUT)
175
INCLUDE 'coef_specs.inc'
176
COMPLEX*32 C(0:LOOP_MAXCOEFS-1)
183
OUT=OUT+C(1)*Q(0)+C(2)*Q(1)+C(3)*Q(2)+C(4)*Q(3)
186
OUT=OUT+C(5)*Q(0)*Q(0)+C(6)*Q(0)*Q(1)+C(7)*Q(0)*Q(2)+C(8)*Q(0)
187
$ *Q(3)+C(9)*Q(1)*Q(1)+C(10)*Q(1)*Q(2)+C(11)*Q(1)*Q(3)
188
$ +C(12)*Q(2)*Q(2)+C(13)*Q(2)*Q(3)+C(14)*Q(3)*Q(3)
191
OUT=OUT+C(15)*Q(0)*Q(0)*Q(0)+C(16)*Q(0)*Q(0)*Q(1)+C(17)*Q(0)
192
$ *Q(0)*Q(2)+C(18)*Q(0)*Q(0)*Q(3)+C(19)*Q(0)*Q(1)*Q(1)
193
$ +C(20)*Q(0)*Q(1)*Q(2)+C(21)*Q(0)*Q(1)*Q(3)+C(22)*Q(0)*Q(2)
194
$ *Q(2)+C(23)*Q(0)*Q(2)*Q(3)+C(24)*Q(0)*Q(3)*Q(3)+C(25)*Q(1)
195
$ *Q(1)*Q(1)+C(26)*Q(1)*Q(1)*Q(2)+C(27)*Q(1)*Q(1)*Q(3)
196
$ +C(28)*Q(1)*Q(2)*Q(2)+C(29)*Q(1)*Q(2)*Q(3)+C(30)*Q(1)*Q(3)
197
$ *Q(3)+C(31)*Q(2)*Q(2)*Q(2)+C(32)*Q(2)*Q(2)*Q(3)+C(33)*Q(2)
198
$ *Q(3)*Q(3)+C(34)*Q(3)*Q(3)*Q(3)
202
SUBROUTINE ADD_COEFS(A,RA,B,RB)
203
INCLUDE 'coef_specs.inc'
205
COMPLEX*16 A(0:LOOP_MAXCOEFS-1),B(0:LOOP_MAXCOEFS-1)
209
DATA NCOEF_R/1,5,15,35/
216
SUBROUTINE MP_ADD_COEFS(A,RA,B,RB)
217
INCLUDE 'coef_specs.inc'
219
COMPLEX*32 A(0:LOOP_MAXCOEFS-1),B(0:LOOP_MAXCOEFS-1)
223
DATA NCOEF_R/1,5,15,35/
230
SUBROUTINE MERGE_WL(WL,R,LCUT_SIZE,CONST,OUT)
231
INCLUDE 'coef_specs.inc'
233
COMPLEX*16 WL(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
236
COMPLEX*16 OUT(0:LOOP_MAXCOEFS-1)
239
DATA NCOEF_R/1,5,15,35/
243
OUT(J)=OUT(J)+WL(I,J,I)*CONST
248
SUBROUTINE MP_MERGE_WL(WL,R,LCUT_SIZE,CONST,OUT)
249
INCLUDE 'coef_specs.inc'
251
COMPLEX*32 WL(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
254
COMPLEX*32 OUT(0:LOOP_MAXCOEFS-1)
257
DATA NCOEF_R/1,5,15,35/
261
OUT(J)=OUT(J)+WL(I,J,I)*CONST
266
SUBROUTINE UPDATE_WL_0_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
267
INCLUDE 'coef_specs.inc'
269
COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
270
COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
271
COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
272
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
277
OUT(J,K,I)=(0.0D0,0.0D0)
280
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
281
OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)
282
OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)
283
OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)
284
OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)
290
SUBROUTINE MP_UPDATE_WL_0_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
291
INCLUDE 'coef_specs.inc'
293
COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
294
COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
295
COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
296
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
301
OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
304
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
305
OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)
306
OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)
307
OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)
308
OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)
314
SUBROUTINE UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
315
INCLUDE 'coef_specs.inc'
317
COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
318
COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
319
COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
320
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
325
OUT(J,K,I)=(0.0D0,0.0D0)
328
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
329
OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
330
OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
331
OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
332
OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
333
OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
334
OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
335
OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
336
OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
337
OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
338
OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
339
OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
340
OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
341
OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
342
OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
348
SUBROUTINE MP_UPDATE_WL_2_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
349
INCLUDE 'coef_specs.inc'
351
COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
352
COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
353
COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
354
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
359
OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
362
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
363
OUT(J,1,I)=OUT(J,1,I)+A(K,1,I)*B(J,0,K)
364
OUT(J,2,I)=OUT(J,2,I)+A(K,2,I)*B(J,0,K)
365
OUT(J,3,I)=OUT(J,3,I)+A(K,3,I)*B(J,0,K)
366
OUT(J,4,I)=OUT(J,4,I)+A(K,4,I)*B(J,0,K)
367
OUT(J,5,I)=OUT(J,5,I)+A(K,5,I)*B(J,0,K)
368
OUT(J,6,I)=OUT(J,6,I)+A(K,6,I)*B(J,0,K)
369
OUT(J,7,I)=OUT(J,7,I)+A(K,7,I)*B(J,0,K)
370
OUT(J,8,I)=OUT(J,8,I)+A(K,8,I)*B(J,0,K)
371
OUT(J,9,I)=OUT(J,9,I)+A(K,9,I)*B(J,0,K)
372
OUT(J,10,I)=OUT(J,10,I)+A(K,10,I)*B(J,0,K)
373
OUT(J,11,I)=OUT(J,11,I)+A(K,11,I)*B(J,0,K)
374
OUT(J,12,I)=OUT(J,12,I)+A(K,12,I)*B(J,0,K)
375
OUT(J,13,I)=OUT(J,13,I)+A(K,13,I)*B(J,0,K)
376
OUT(J,14,I)=OUT(J,14,I)+A(K,14,I)*B(J,0,K)
382
SUBROUTINE UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
383
INCLUDE 'coef_specs.inc'
385
COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
386
COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
387
COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
388
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
393
OUT(J,K,I)=(0.0D0,0.0D0)
396
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
402
SUBROUTINE MP_UPDATE_WL_0_0(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
403
INCLUDE 'coef_specs.inc'
405
COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
406
COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
407
COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
408
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
413
OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
416
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
422
SUBROUTINE UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
423
INCLUDE 'coef_specs.inc'
425
COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
426
COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
427
COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
428
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
433
OUT(J,K,I)=(0.0D0,0.0D0)
436
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
437
OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
438
OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
439
OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
440
OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
441
OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)
442
OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
443
OUT(J,7,I)=OUT(J,7,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
444
OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
445
OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,2,K)
446
OUT(J,10,I)=OUT(J,10,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)*B(J,2,K)
447
OUT(J,11,I)=OUT(J,11,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)*B(J,2,K)
448
OUT(J,12,I)=OUT(J,12,I)+A(K,3,I)*B(J,3,K)
449
OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)*B(J,3,K)
450
OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)
456
SUBROUTINE MP_UPDATE_WL_1_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
457
INCLUDE 'coef_specs.inc'
459
COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
460
COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
461
COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
462
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
467
OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
470
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
471
OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
472
OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
473
OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
474
OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
475
OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)
476
OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
477
OUT(J,7,I)=OUT(J,7,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
478
OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
479
OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,2,K)
480
OUT(J,10,I)=OUT(J,10,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)*B(J,2,K)
481
OUT(J,11,I)=OUT(J,11,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)*B(J,2,K)
482
OUT(J,12,I)=OUT(J,12,I)+A(K,3,I)*B(J,3,K)
483
OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)*B(J,3,K)
484
OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)
490
SUBROUTINE UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
491
INCLUDE 'coef_specs.inc'
493
COMPLEX*16 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
494
COMPLEX*16 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
495
COMPLEX*16 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
496
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
501
OUT(J,K,I)=(0.0D0,0.0D0)
504
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
505
OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
506
OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
507
OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
508
OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
509
OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)+A(K,5,I)*B(J,0,K)
510
OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
512
OUT(J,7,I)=OUT(J,7,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
514
OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
516
OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,2,K)+A(K,9,I)*B(J,0,K)
517
OUT(J,10,I)=OUT(J,10,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)
518
$ *B(J,2,K)+A(K,10,I)*B(J,0,K)
519
OUT(J,11,I)=OUT(J,11,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)
520
$ *B(J,2,K)+A(K,11,I)*B(J,0,K)
521
OUT(J,12,I)=OUT(J,12,I)+A(K,3,I)*B(J,3,K)+A(K,12,I)
523
OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)
524
$ *B(J,3,K)+A(K,13,I)*B(J,0,K)
525
OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)+A(K,14,I)
527
OUT(J,15,I)=OUT(J,15,I)+A(K,5,I)*B(J,1,K)
528
OUT(J,16,I)=OUT(J,16,I)+A(K,5,I)*B(J,2,K)+A(K,6,I)*B(J,1,K)
529
OUT(J,17,I)=OUT(J,17,I)+A(K,5,I)*B(J,3,K)+A(K,7,I)*B(J,1,K)
530
OUT(J,18,I)=OUT(J,18,I)+A(K,5,I)*B(J,4,K)+A(K,8,I)*B(J,1,K)
531
OUT(J,19,I)=OUT(J,19,I)+A(K,6,I)*B(J,2,K)+A(K,9,I)*B(J,1,K)
532
OUT(J,20,I)=OUT(J,20,I)+A(K,6,I)*B(J,3,K)+A(K,7,I)
533
$ *B(J,2,K)+A(K,10,I)*B(J,1,K)
534
OUT(J,21,I)=OUT(J,21,I)+A(K,6,I)*B(J,4,K)+A(K,8,I)
535
$ *B(J,2,K)+A(K,11,I)*B(J,1,K)
536
OUT(J,22,I)=OUT(J,22,I)+A(K,7,I)*B(J,3,K)+A(K,12,I)
538
OUT(J,23,I)=OUT(J,23,I)+A(K,7,I)*B(J,4,K)+A(K,8,I)
539
$ *B(J,3,K)+A(K,13,I)*B(J,1,K)
540
OUT(J,24,I)=OUT(J,24,I)+A(K,8,I)*B(J,4,K)+A(K,14,I)
542
OUT(J,25,I)=OUT(J,25,I)+A(K,9,I)*B(J,2,K)
543
OUT(J,26,I)=OUT(J,26,I)+A(K,9,I)*B(J,3,K)+A(K,10,I)
545
OUT(J,27,I)=OUT(J,27,I)+A(K,9,I)*B(J,4,K)+A(K,11,I)
547
OUT(J,28,I)=OUT(J,28,I)+A(K,10,I)*B(J,3,K)+A(K,12,I)
549
OUT(J,29,I)=OUT(J,29,I)+A(K,10,I)*B(J,4,K)+A(K,11,I)
550
$ *B(J,3,K)+A(K,13,I)*B(J,2,K)
551
OUT(J,30,I)=OUT(J,30,I)+A(K,11,I)*B(J,4,K)+A(K,14,I)
553
OUT(J,31,I)=OUT(J,31,I)+A(K,12,I)*B(J,3,K)
554
OUT(J,32,I)=OUT(J,32,I)+A(K,12,I)*B(J,4,K)+A(K,13,I)
556
OUT(J,33,I)=OUT(J,33,I)+A(K,13,I)*B(J,4,K)+A(K,14,I)
558
OUT(J,34,I)=OUT(J,34,I)+A(K,14,I)*B(J,4,K)
564
SUBROUTINE MP_UPDATE_WL_2_1(A,LCUT_SIZE,B,IN_SIZE,OUT_SIZE,OUT)
565
INCLUDE 'coef_specs.inc'
567
COMPLEX*32 A(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
568
COMPLEX*32 B(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
569
COMPLEX*32 OUT(MAXLWFSIZE,0:LOOP_MAXCOEFS-1,MAXLWFSIZE)
570
INTEGER LCUT_SIZE,IN_SIZE,OUT_SIZE
575
OUT(J,K,I)=CMPLX(0.0E0_16,0.0E0_16,KIND=16)
578
OUT(J,0,I)=OUT(J,0,I)+A(K,0,I)*B(J,0,K)
579
OUT(J,1,I)=OUT(J,1,I)+A(K,0,I)*B(J,1,K)+A(K,1,I)*B(J,0,K)
580
OUT(J,2,I)=OUT(J,2,I)+A(K,0,I)*B(J,2,K)+A(K,2,I)*B(J,0,K)
581
OUT(J,3,I)=OUT(J,3,I)+A(K,0,I)*B(J,3,K)+A(K,3,I)*B(J,0,K)
582
OUT(J,4,I)=OUT(J,4,I)+A(K,0,I)*B(J,4,K)+A(K,4,I)*B(J,0,K)
583
OUT(J,5,I)=OUT(J,5,I)+A(K,1,I)*B(J,1,K)+A(K,5,I)*B(J,0,K)
584
OUT(J,6,I)=OUT(J,6,I)+A(K,1,I)*B(J,2,K)+A(K,2,I)*B(J,1,K)
586
OUT(J,7,I)=OUT(J,7,I)+A(K,1,I)*B(J,3,K)+A(K,3,I)*B(J,1,K)
588
OUT(J,8,I)=OUT(J,8,I)+A(K,1,I)*B(J,4,K)+A(K,4,I)*B(J,1,K)
590
OUT(J,9,I)=OUT(J,9,I)+A(K,2,I)*B(J,2,K)+A(K,9,I)*B(J,0,K)
591
OUT(J,10,I)=OUT(J,10,I)+A(K,2,I)*B(J,3,K)+A(K,3,I)
592
$ *B(J,2,K)+A(K,10,I)*B(J,0,K)
593
OUT(J,11,I)=OUT(J,11,I)+A(K,2,I)*B(J,4,K)+A(K,4,I)
594
$ *B(J,2,K)+A(K,11,I)*B(J,0,K)
595
OUT(J,12,I)=OUT(J,12,I)+A(K,3,I)*B(J,3,K)+A(K,12,I)
597
OUT(J,13,I)=OUT(J,13,I)+A(K,3,I)*B(J,4,K)+A(K,4,I)
598
$ *B(J,3,K)+A(K,13,I)*B(J,0,K)
599
OUT(J,14,I)=OUT(J,14,I)+A(K,4,I)*B(J,4,K)+A(K,14,I)
601
OUT(J,15,I)=OUT(J,15,I)+A(K,5,I)*B(J,1,K)
602
OUT(J,16,I)=OUT(J,16,I)+A(K,5,I)*B(J,2,K)+A(K,6,I)*B(J,1,K)
603
OUT(J,17,I)=OUT(J,17,I)+A(K,5,I)*B(J,3,K)+A(K,7,I)*B(J,1,K)
604
OUT(J,18,I)=OUT(J,18,I)+A(K,5,I)*B(J,4,K)+A(K,8,I)*B(J,1,K)
605
OUT(J,19,I)=OUT(J,19,I)+A(K,6,I)*B(J,2,K)+A(K,9,I)*B(J,1,K)
606
OUT(J,20,I)=OUT(J,20,I)+A(K,6,I)*B(J,3,K)+A(K,7,I)
607
$ *B(J,2,K)+A(K,10,I)*B(J,1,K)
608
OUT(J,21,I)=OUT(J,21,I)+A(K,6,I)*B(J,4,K)+A(K,8,I)
609
$ *B(J,2,K)+A(K,11,I)*B(J,1,K)
610
OUT(J,22,I)=OUT(J,22,I)+A(K,7,I)*B(J,3,K)+A(K,12,I)
612
OUT(J,23,I)=OUT(J,23,I)+A(K,7,I)*B(J,4,K)+A(K,8,I)
613
$ *B(J,3,K)+A(K,13,I)*B(J,1,K)
614
OUT(J,24,I)=OUT(J,24,I)+A(K,8,I)*B(J,4,K)+A(K,14,I)
616
OUT(J,25,I)=OUT(J,25,I)+A(K,9,I)*B(J,2,K)
617
OUT(J,26,I)=OUT(J,26,I)+A(K,9,I)*B(J,3,K)+A(K,10,I)
619
OUT(J,27,I)=OUT(J,27,I)+A(K,9,I)*B(J,4,K)+A(K,11,I)
621
OUT(J,28,I)=OUT(J,28,I)+A(K,10,I)*B(J,3,K)+A(K,12,I)
623
OUT(J,29,I)=OUT(J,29,I)+A(K,10,I)*B(J,4,K)+A(K,11,I)
624
$ *B(J,3,K)+A(K,13,I)*B(J,2,K)
625
OUT(J,30,I)=OUT(J,30,I)+A(K,11,I)*B(J,4,K)+A(K,14,I)
627
OUT(J,31,I)=OUT(J,31,I)+A(K,12,I)*B(J,3,K)
628
OUT(J,32,I)=OUT(J,32,I)+A(K,12,I)*B(J,4,K)+A(K,13,I)
630
OUT(J,33,I)=OUT(J,33,I)+A(K,13,I)*B(J,4,K)+A(K,14,I)
632
OUT(J,34,I)=OUT(J,34,I)+A(K,14,I)*B(J,4,K)