~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/mp_compute_loop_coefs.f

  • Committer: olivier Mattelaer
  • Date: 2015-03-05 00:14:16 UTC
  • mfrom: (258.1.9 2.3)
  • mto: (258.8.1 2.3)
  • mto: This revision was merged to the branch mainline in revision 259.
  • Revision ID: olivier.mattelaer@uclouvain.be-20150305001416-y9mzeykfzwnl9t0j
partial merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
      PARAMETER (NBORNAMPS=2)
21
21
      INTEGER    NLOOPS, NLOOPGROUPS, NCTAMPS
22
22
      PARAMETER (NLOOPS=11, NLOOPGROUPS=9, NCTAMPS=28)
 
23
      INTEGER    NLOOPAMPS
 
24
      PARAMETER (NLOOPAMPS=39)
23
25
      INTEGER    NCOLORROWS
24
 
      PARAMETER (NCOLORROWS=39)
 
26
      PARAMETER (NCOLORROWS=NLOOPAMPS)
25
27
      INTEGER    NEXTERNAL
26
28
      PARAMETER (NEXTERNAL=5)
27
29
      INTEGER    NWAVEFUNCS,NLOOPWAVEFUNCS
39
41
C     These are constants related to the split orders
40
42
      INTEGER    NSO, NSQUAREDSO, NAMPSO
41
43
      PARAMETER (NSO=0, NSQUAREDSO=0, NAMPSO=0)
 
44
 
 
45
 
42
46
C     
43
47
C     ARGUMENTS 
44
48
C     
47
51
C     
48
52
C     LOCAL VARIABLES 
49
53
C     
50
 
      INTEGER I,J,K,H,DUMMY,ITEMP
 
54
      LOGICAL DPW_COPIED
 
55
      INTEGER I,J,K,H,HEL_MULT,ITEMP
51
56
      REAL*16 TEMP2
52
57
      INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL)
53
58
      REAL*16 P(0:3,NEXTERNAL)
77
82
      INTEGER HELPICKED
78
83
      COMMON/ML5_0_HELCHOICE/HELPICKED
79
84
 
 
85
      INTEGER USERHEL
 
86
      COMMON/ML5_0_USERCHOICE/USERHEL
 
87
 
80
88
      INTEGER SQSO_TARGET
81
89
      COMMON/ML5_0_SOCHOICE/SQSO_TARGET
82
90
 
89
97
 
90
98
      COMPLEX*32 AMP(NBORNAMPS)
91
99
      COMMON/ML5_0_MP_AMPS/AMP
 
100
      COMPLEX*16 DP_AMP(NBORNAMPS)
 
101
      COMMON/ML5_0_AMPS/DP_AMP
92
102
      COMPLEX*32 W(20,NWAVEFUNCS)
93
103
      COMMON/ML5_0_MP_W/W
94
104
 
103
113
      COMPLEX*32 LOOPCOEFS(0:LOOPMAXCOEFS-1,NSQUAREDSO,NLOOPGROUPS)
104
114
      COMMON/ML5_0_MP_LCOEFS/LOOPCOEFS
105
115
 
 
116
 
106
117
      COMPLEX*32 AMPL(3,NCTAMPS)
107
118
      COMMON/ML5_0_MP_AMPL/AMPL
108
119
 
 
120
 
109
121
      INTEGER CF_D(NCOLORROWS,NBORNAMPS)
110
122
      INTEGER CF_N(NCOLORROWS,NBORNAMPS)
111
123
      COMMON/ML5_0_CF/CF_D,CF_N
156
168
        ENDDO
157
169
      ENDDO
158
170
 
 
171
 
 
172
      DO I=1, NBORNAMPS
 
173
        DP_AMP(I) = (0.0D0,0.0D0)
 
174
        AMP(I) = (ZERO, ZERO)
 
175
      ENDDO
 
176
 
159
177
      DO I=1,NLOOPGROUPS
160
178
        DO J=0,LOOPMAXCOEFS-1
161
179
          DO K=1,NSQUAREDSO
171
189
        ENDDO
172
190
      ENDDO
173
191
 
 
192
      DPW_COPIED = .FALSE.
174
193
      DO H=1,NCOMB
175
194
        IF ((HELPICKED.EQ.H).OR.((HELPICKED.EQ.-1).AND.(CHECKPHASE.OR.(
176
195
     $   .NOT.HELDOUBLECHECKED).OR.(GOODHEL(H).GT.-HELOFFSET.AND.GOODHE
183
202
          MP_CT_REQ_SO_DONE=.FALSE.
184
203
          MP_LOOP_REQ_SO_DONE=.FALSE.
185
204
 
 
205
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
 
206
     $     -1) THEN
 
207
            HEL_MULT=GOODHEL(H)
 
208
          ELSE
 
209
            HEL_MULT=1
 
210
          ENDIF
 
211
 
 
212
 
186
213
          CALL MP_IXXXXX(P(0,1),ZERO,NHEL(1),+1*IC(1),W(1,1))
187
214
          CALL MP_OXXXXX(P(0,2),ZERO,NHEL(2),-1*IC(2),W(1,2))
188
215
          CALL MP_OXXXXX(P(0,3),ZERO,NHEL(3),+1*IC(3),W(1,3))
245
272
 3000     CONTINUE
246
273
          MP_UVCT_REQ_SO_DONE=.TRUE.
247
274
 
248
 
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
249
 
     $     -1) THEN
250
 
            DUMMY=GOODHEL(H)
251
 
          ELSE
252
 
            DUMMY=1
253
 
          ENDIF
254
275
          DO I=1,NCTAMPS
255
276
            DO J=1,NBORNAMPS
256
277
              CFTOT=CMPLX(CF_N(I,J)/REAL(ABS(CF_D(I,J)),KIND=16)
260
281
     $         I),ML5_0_ML5SOINDEX_FOR_BORN_AMP(J))
261
282
              IF (.NOT.FILTER_SO.OR.SQSO_TARGET.EQ.ITEMP) THEN
262
283
                DO K=1,3
263
 
                  TEMP2 = DUMMY*2.0E0_16*REAL(CFTOT*AMPL(K,I)
 
284
                  TEMP2 = HEL_MULT*2.0E0_16*REAL(CFTOT*AMPL(K,I)
264
285
     $             *CONJG(AMP(J)),KIND=16)
265
286
                  ANS(K,ITEMP)=ANS(K,ITEMP)+TEMP2
266
287
                  ANS(K,0)=ANS(K,0)+TEMP2
277
298
          CALL MP_FFV1L3_1(PL(0,1),W(1,9),GC_5,ZERO,ZERO,PL(0,2),COEFS)
278
299
          CALL MP_ML5_0_UPDATE_WL_0_1(WL(1,0,1,1),4,COEFS,4,4,WL(1,0,1
279
300
     $     ,2))
280
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,2),1,4,1,1,29,H)
 
301
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,2),1,4,1,1,1,29,H)
281
302
C         Coefficient construction for loop diagram with ID 4
282
303
          CALL MP_FFV1L3_1(PL(0,0),W(1,2),GC_5,ZERO,ZERO,PL(0,3),COEFS)
283
304
          CALL MP_ML5_0_UPDATE_WL_0_1(WL(1,0,1,0),4,COEFS,4,4,WL(1,0,1
290
311
     $     ,COEFS)
291
312
          CALL MP_ML5_0_UPDATE_WL_2_0(WL(1,0,1,4),4,COEFS,4,4,WL(1,0,1
292
313
     $     ,5))
293
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,5),2,4,2,1,30,H)
 
314
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,5),2,4,2,1,1,30,H)
294
315
C         Coefficient construction for loop diagram with ID 5
295
316
          CALL MP_FFV1L3_2(PL(0,0),W(1,1),GC_5,ZERO,ZERO,PL(0,6),COEFS)
296
317
          CALL MP_ML5_0_UPDATE_WL_0_1(WL(1,0,1,0),4,COEFS,4,4,WL(1,0,1
303
324
     $     ,COEFS)
304
325
          CALL MP_ML5_0_UPDATE_WL_2_0(WL(1,0,1,7),4,COEFS,4,4,WL(1,0,1
305
326
     $     ,8))
306
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,8),2,4,3,1,31,H)
 
327
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,8),2,4,3,1,1,31,H)
307
328
C         Coefficient construction for loop diagram with ID 6
308
329
          CALL MP_FFV1L2P0_3(PL(0,0),W(1,1),GC_5,ZERO,ZERO,PL(0,9)
309
330
     $     ,COEFS)
321
342
     $     ,COEFS)
322
343
          CALL MP_ML5_0_UPDATE_WL_2_1(WL(1,0,1,11),4,COEFS,4,4,WL(1,0
323
344
     $     ,1,12))
324
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,12),3,4,4,1,32,H)
 
345
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,12),3,4,4,1,1,32,H)
325
346
C         Coefficient construction for loop diagram with ID 7
326
347
          CALL MP_VVV1L2P0_1(PL(0,9),W(1,5),GC_4,ZERO,ZERO,PL(0,13)
327
348
     $     ,COEFS)
331
352
     $     ,COEFS)
332
353
          CALL MP_ML5_0_UPDATE_WL_1_1(WL(1,0,1,13),4,COEFS,4,4,WL(1,0
333
354
     $     ,1,14))
334
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,14),2,4,5,1,33,H)
 
355
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,14),2,4,5,1,1,33,H)
335
356
C         Coefficient construction for loop diagram with ID 8
336
357
          CALL MP_FFV1L3_1(PL(0,13),W(1,2),GC_5,ZERO,ZERO,PL(0,15)
337
358
     $     ,COEFS)
341
362
     $     ,COEFS)
342
363
          CALL MP_ML5_0_UPDATE_WL_2_1(WL(1,0,1,15),4,COEFS,4,4,WL(1,0
343
364
     $     ,1,16))
344
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,16),3,4,6,1,34,H)
 
365
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,16),3,4,6,1,1,34,H)
345
366
C         Coefficient construction for loop diagram with ID 9
346
367
          CALL MP_FFV2L2_1(PL(0,10),W(1,7),GC_47,ZERO,ZERO,PL(0,17)
347
368
     $     ,COEFS)
351
372
     $     ,COEFS)
352
373
          CALL MP_ML5_0_UPDATE_WL_2_1(WL(1,0,1,17),4,COEFS,4,4,WL(1,0
353
374
     $     ,1,18))
354
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,18),3,4,7,1,35,H)
 
375
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,18),3,4,7,1,1,35,H)
355
376
C         Coefficient construction for loop diagram with ID 10
356
377
          CALL MP_FFV1L1_2(PL(0,6),W(1,5),GC_5,ZERO,ZERO,PL(0,19)
357
378
     $     ,COEFS)
361
382
     $     ,COEFS)
362
383
          CALL MP_ML5_0_UPDATE_WL_2_0(WL(1,0,1,19),4,COEFS,4,4,WL(1,0
363
384
     $     ,1,20))
364
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,20),2,4,5,1,36,H)
 
385
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,20),2,4,5,1,1,36,H)
365
386
C         Coefficient construction for loop diagram with ID 11
366
387
          CALL MP_FFV1L1P0_3(PL(0,0),W(1,8),GC_5,ZERO,ZERO,PL(0,21)
367
388
     $     ,COEFS)
371
392
     $     ,COEFS)
372
393
          CALL MP_ML5_0_UPDATE_WL_0_1(WL(1,0,1,21),4,COEFS,4,4,WL(1,0
373
394
     $     ,1,22))
374
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,22),1,4,8,1,37,H)
 
395
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,22),1,4,8,1,1,37,H)
375
396
C         Coefficient construction for loop diagram with ID 12
376
397
          CALL MP_FFV1L1P0_3(PL(0,0),W(1,2),GC_5,ZERO,ZERO,PL(0,23)
377
398
     $     ,COEFS)
385
406
     $     ,COEFS)
386
407
          CALL MP_ML5_0_UPDATE_WL_1_1(WL(1,0,1,24),4,COEFS,4,4,WL(1,0
387
408
     $     ,1,25))
388
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,25),2,4,9,1,38,H)
 
409
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,25),2,4,9,1,1,38,H)
389
410
C         Coefficient construction for loop diagram with ID 13
390
411
          CALL MP_FFV1L2_1(PL(0,3),W(1,5),GC_5,ZERO,ZERO,PL(0,26)
391
412
     $     ,COEFS)
395
416
     $     ,COEFS)
396
417
          CALL MP_ML5_0_UPDATE_WL_2_0(WL(1,0,1,26),4,COEFS,4,4,WL(1,0
397
418
     $     ,1,27))
398
 
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,27),2,4,9,1,39,H)
 
419
          CALL MP_ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,27),2,4,9,1,1,39,H)
399
420
 4000     CONTINUE
400
421
          MP_LOOP_REQ_SO_DONE=.TRUE.
401
422
 
 
423
 
 
424
C         Copy the qp wfs to the dp ones as they are used to setup the
 
425
C          CT calls.
 
426
C         This needs to be done once since only the momenta of these
 
427
C          WF matters.
 
428
          IF(.NOT.DPW_COPIED) THEN
 
429
            DO I=1,NWAVEFUNCS
 
430
              DO J=1,MAXLWFSIZE+4
 
431
                DPW(J,I)=DBLE(W(J,I))
 
432
              ENDDO
 
433
            ENDDO
 
434
            DPW_COPIED=.TRUE.
 
435
          ENDIF
 
436
 
 
437
 
 
438
 
 
439
 
 
440
 
402
441
        ENDIF
403
442
      ENDDO
404
443
 
405
 
C     Copy the qp wfs to the dp ones as they are used to setup the CT
406
 
C      calls.
407
 
      DO I=1,NWAVEFUNCS
408
 
        DO J=1,MAXLWFSIZE+4
409
 
          DPW(J,I)=W(J,I)
410
 
        ENDDO
411
 
      ENDDO
412
 
 
413
444
      DO I=1,3
414
445
        DO J=0,NSQUAREDSO
415
446
          ANSDP(I,J)=ANS(I,J)