~alifson/chiralityflow/trunk

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/CT_interface.f

  • Committer: andrew.lifson at lu
  • Date: 2021-09-01 15:34:39 UTC
  • Revision ID: andrew.lifson@thep.lu.se-20210901153439-7fasjhav4cp4m88r
testing a new repository of a madgraph folder

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      SUBROUTINE CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
2
C     
 
3
C     Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
 
4
C     By the MadGraph5_aMC@NLO Development Team
 
5
C     Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
 
6
C     
 
7
C     Interface between MG5 and CutTools.
 
8
C     
 
9
C     Process: g g > w- t b~ QED=1 QCD=2 [ virt = QCD ] WEIGHTED=10
 
10
C     
 
11
C     
 
12
C     CONSTANTS 
 
13
C     
 
14
      INTEGER    NEXTERNAL
 
15
      PARAMETER (NEXTERNAL=5)
 
16
      LOGICAL CHECKPCONSERVATION
 
17
      PARAMETER (CHECKPCONSERVATION=.TRUE.)
 
18
      REAL*8 NORMALIZATION
 
19
      PARAMETER (NORMALIZATION = 1.D0/(16.D0*3.14159265358979323846D0*
 
20
     $ *2))
 
21
C     
 
22
C     ARGUMENTS 
 
23
C     
 
24
      INTEGER NLOOPLINE, RANK
 
25
      REAL*8 PL(0:3,NLOOPLINE)
 
26
      REAL*8 PCT(0:3,0:NLOOPLINE-1)
 
27
      COMPLEX*16 M2L(NLOOPLINE)
 
28
      COMPLEX*16 M2LCT(0:NLOOPLINE-1)
 
29
      COMPLEX*16 RES(3)
 
30
      LOGICAL STABLE
 
31
C     
 
32
C     LOCAL VARIABLES 
 
33
C     
 
34
      COMPLEX*16 R1, ACC
 
35
      INTEGER I, J, K
 
36
      LOGICAL INIT
 
37
      DATA INIT /.TRUE./
 
38
      SAVE INIT
 
39
C     
 
40
C     EXTERNAL FUNCTIONS
 
41
C     
 
42
      EXTERNAL LOOPNUM
 
43
      EXTERNAL MPLOOPNUM
 
44
C     
 
45
C     GLOBAL VARIABLES
 
46
C     
 
47
      INCLUDE 'coupl.inc'
 
48
      INTEGER CTMODE
 
49
      REAL*8 LSCALE
 
50
      COMMON/CT/LSCALE,CTMODE
 
51
 
 
52
      INTEGER ID,R
 
53
      COMMON/LOOP/ID,R
 
54
 
 
55
C     ----------
 
56
C     BEGIN CODE
 
57
C     ----------
 
58
 
 
59
C     INITIALIZE CUTTOOLS IF NEEDED
 
60
      IF (INIT) THEN
 
61
        INIT=.FALSE.
 
62
        CALL INITCT()
 
63
      ENDIF
 
64
 
 
65
C     YOU CAN FIND THE DETAILS ABOUT THE DIFFERENT CTMODE AT THE
 
66
C      BEGINNING OF THE FILE CTS_CUTS.F90 IN THE CUTTOOLS DISTRIBUTION
 
67
 
 
68
C     CONVERT THE MASSES TO BE COMPLEX
 
69
      DO I=1,NLOOPLINE
 
70
        M2LCT(I-1)=M2L(I)
 
71
      ENDDO
 
72
 
 
73
C     CONVERT THE MOMENTA FLOWING IN THE LOOP LINES TO CT CONVENTIONS
 
74
      DO I=0,3
 
75
        DO J=0,(NLOOPLINE-1)
 
76
          PCT(I,J)=0.D0
 
77
        ENDDO
 
78
      ENDDO
 
79
      DO I=0,3
 
80
        DO J=1,NLOOPLINE
 
81
          PCT(I,0)=PCT(I,0)+PL(I,J)
 
82
        ENDDO
 
83
      ENDDO
 
84
      IF (CHECKPCONSERVATION) THEN
 
85
        IF (PCT(0,0).GT.1.D-6) THEN
 
86
          WRITE(*,*) 'energy is not conserved ',PCT(0,0)
 
87
          STOP 'energy is not conserved'
 
88
        ELSEIF (PCT(1,0).GT.1.D-6) THEN
 
89
          WRITE(*,*) 'px is not conserved ',PCT(1,0)
 
90
          STOP 'px is not conserved'
 
91
        ELSEIF (PCT(2,0).GT.1.D-6) THEN
 
92
          WRITE(*,*) 'py is not conserved ',PCT(2,0)
 
93
          STOP 'py is not conserved'
 
94
        ELSEIF (PCT(3,0).GT.1.D-6) THEN
 
95
          WRITE(*,*) 'pz is not conserved ',PCT(3,0)
 
96
          STOP 'pz is not conserved'
 
97
        ENDIF
 
98
      ENDIF
 
99
      DO I=0,3
 
100
        DO J=1,(NLOOPLINE-1)
 
101
          DO K=1,J
 
102
            PCT(I,J)=PCT(I,J)+PL(I,K)
 
103
          ENDDO
 
104
        ENDDO
 
105
      ENDDO
 
106
 
 
107
      CALL CTSXCUT(CTMODE,LSCALE,MU_R,NLOOPLINE,LOOPNUM,MPLOOPNUM,RANK
 
108
     $ ,PCT,M2LCT,RES,ACC,R1,STABLE)
 
109
      RES(1)=NORMALIZATION*2.0D0*DBLE(RES(1))
 
110
      RES(2)=NORMALIZATION*2.0D0*DBLE(RES(2))
 
111
      RES(3)=NORMALIZATION*2.0D0*DBLE(RES(3))
 
112
C     WRITE(*,*) 'Loop ID',ID,' =',RES(1),RES(2),RES(3)
 
113
      END
 
114
 
 
115
      SUBROUTINE INITCT()
 
116
C     
 
117
C     INITIALISATION OF CUTTOOLS
 
118
C     
 
119
C     LOCAL VARIABLES 
 
120
C     
 
121
      REAL*8 THRS
 
122
      LOGICAL EXT_NUM_FOR_R1
 
123
C     
 
124
C     GLOBAL VARIABLES 
 
125
C     
 
126
      INCLUDE 'MadLoopParams.inc'
 
127
C     ----------
 
128
C     BEGIN CODE
 
129
C     ----------
 
130
 
 
131
C     DEFAULT PARAMETERS FOR CUTTOOLS
 
132
C     -------------------------------  
 
133
C     THRS1 IS THE PRECISION LIMIT BELOW WHICH THE MP ROUTINES
 
134
C      ACTIVATES
 
135
      THRS=CTSTABTHRES
 
136
C     LOOPLIB SET WHAT LIBRARY CT USES
 
137
C     1 -> LOOPTOOLS
 
138
C     2 -> AVH
 
139
C     3 -> QCDLOOP
 
140
      LOOPLIB=CTLOOPLIBRARY
 
141
C     MADLOOP'S NUMERATOR IN THE OPEN LOOP IS MUCH FASTER THAN THE
 
142
C      RECONSTRUCTED ONE IN CT. SO WE BETTER USE MADLOOP ONE IN THIS
 
143
C      CASE.
 
144
      EXT_NUM_FOR_R1=.TRUE.
 
145
C     -------------------------------     
 
146
 
 
147
C     The initialization below is for CT v1.8.+
 
148
      CALL CTSINIT(THRS,LOOPLIB,EXT_NUM_FOR_R1)
 
149
C     The initialization below is for the older stable CT v1.7, still
 
150
C      used for now in the beta release.
 
151
C     CALL CTSINIT(THRS,LOOPLIB)
 
152
 
 
153
      END
 
154
 
 
155
      SUBROUTINE LOOP_5( LID, W1, W2, W3, W4, W5, M1, M2, M3, M4, M5
 
156
     $ ,  RANK, RES, STABLE, LOOPNUM)
 
157
 
 
158
      INTEGER    NEXTERNAL
 
159
      PARAMETER (NEXTERNAL=5)
 
160
      INTEGER    NLOOPLINE
 
161
      PARAMETER (NLOOPLINE=5)
 
162
      INTEGER    NWAVEFUNCS
 
163
      PARAMETER (NWAVEFUNCS=28)
 
164
      INTEGER    NLOOPGROUPS
 
165
      PARAMETER (NLOOPGROUPS=77)
 
166
      INTEGER    NCOMB
 
167
      PARAMETER (NCOMB=48)
 
168
C     
 
169
C     ARGUMENTS 
 
170
C     
 
171
      INTEGER W1, W2, W3, W4, W5
 
172
      COMPLEX*16 M1, M2, M3, M4, M5
 
173
 
 
174
      COMPLEX*16 RES(3)
 
175
      INTEGER LID, RANK, LSYMFACT
 
176
      INTEGER LOOPNUM
 
177
      LOGICAL STABLE
 
178
C     
 
179
C     LOCAL VARIABLES 
 
180
C     
 
181
      REAL*8 PL(0:3,NLOOPLINE)
 
182
      COMPLEX*16 M2L(NLOOPLINE)
 
183
      INTEGER PAIRING(NLOOPLINE),WE(5)
 
184
      INTEGER I, J, K, TEMP
 
185
C     
 
186
C     GLOBAL VARIABLES
 
187
C     
 
188
      INTEGER ID,R
 
189
      COMMON/LOOP/ID,R
 
190
 
 
191
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
192
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
193
 
 
194
      INTEGER HELOFFSET
 
195
      INTEGER GOODHEL(NCOMB)
 
196
      LOGICAL GOODAMP(NLOOPGROUPS)
 
197
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
198
 
 
199
      COMPLEX*16 W(20,NWAVEFUNCS)
 
200
      COMMON/W/W
 
201
 
 
202
C     ----------
 
203
C     BEGIN CODE
 
204
C     ----------
 
205
 
 
206
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
207
     $ ) THEN
 
208
        WE(1)=W1
 
209
        WE(2)=W2
 
210
        WE(3)=W3
 
211
        WE(4)=W4
 
212
        WE(5)=W5
 
213
        M2L(1)=M5**2
 
214
        M2L(2)=M1**2
 
215
        M2L(3)=M2**2
 
216
        M2L(4)=M3**2
 
217
        M2L(5)=M4**2
 
218
        DO I=1,NLOOPLINE
 
219
          PAIRING(I)=1
 
220
        ENDDO
 
221
 
 
222
        R=RANK
 
223
        ID=LID
 
224
        DO I=0,3
 
225
          TEMP=1
 
226
          DO J=1,NLOOPLINE
 
227
            PL(I,J)=0.D0
 
228
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
229
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
230
            ENDDO
 
231
            TEMP=TEMP+PAIRING(J)
 
232
          ENDDO
 
233
        ENDDO
 
234
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
235
      ELSE
 
236
        RES(1)=0.0D0
 
237
        RES(2)=0.0D0
 
238
        RES(3)=0.0D0
 
239
        STABLE=.TRUE.
 
240
      ENDIF
 
241
      END
 
242
 
 
243
      SUBROUTINE LOOP_4_5( LID, P1, P2, P3, P4, W1, W2, W3, W4, W5, M1
 
244
     $ , M2, M3, M4,  RANK, RES, STABLE, LOOPNUM)
 
245
 
 
246
      INTEGER    NEXTERNAL
 
247
      PARAMETER (NEXTERNAL=5)
 
248
      INTEGER    NLOOPLINE
 
249
      PARAMETER (NLOOPLINE=4)
 
250
      INTEGER    NWAVEFUNCS
 
251
      PARAMETER (NWAVEFUNCS=28)
 
252
      INTEGER    NLOOPGROUPS
 
253
      PARAMETER (NLOOPGROUPS=77)
 
254
      INTEGER    NCOMB
 
255
      PARAMETER (NCOMB=48)
 
256
C     
 
257
C     ARGUMENTS 
 
258
C     
 
259
      INTEGER W1, W2, W3, W4, W5
 
260
      COMPLEX*16 M1, M2, M3, M4
 
261
      INTEGER P1, P2, P3, P4
 
262
      COMPLEX*16 RES(3)
 
263
      INTEGER LID, RANK, LSYMFACT
 
264
      INTEGER LOOPNUM
 
265
      LOGICAL STABLE
 
266
C     
 
267
C     LOCAL VARIABLES 
 
268
C     
 
269
      REAL*8 PL(0:3,NLOOPLINE)
 
270
      COMPLEX*16 M2L(NLOOPLINE)
 
271
      INTEGER PAIRING(NLOOPLINE),WE(5)
 
272
      INTEGER I, J, K, TEMP
 
273
C     
 
274
C     GLOBAL VARIABLES
 
275
C     
 
276
      INTEGER ID,R
 
277
      COMMON/LOOP/ID,R
 
278
 
 
279
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
280
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
281
 
 
282
      INTEGER HELOFFSET
 
283
      INTEGER GOODHEL(NCOMB)
 
284
      LOGICAL GOODAMP(NLOOPGROUPS)
 
285
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
286
 
 
287
      COMPLEX*16 W(20,NWAVEFUNCS)
 
288
      COMMON/W/W
 
289
 
 
290
C     ----------
 
291
C     BEGIN CODE
 
292
C     ----------
 
293
 
 
294
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
295
     $ ) THEN
 
296
        WE(1)=W1
 
297
        WE(2)=W2
 
298
        WE(3)=W3
 
299
        WE(4)=W4
 
300
        WE(5)=W5
 
301
        M2L(1)=M4**2
 
302
        M2L(2)=M1**2
 
303
        M2L(3)=M2**2
 
304
        M2L(4)=M3**2
 
305
        PAIRING(1)=P1
 
306
        PAIRING(2)=P2
 
307
        PAIRING(3)=P3
 
308
        PAIRING(4)=P4
 
309
        R=RANK
 
310
        ID=LID
 
311
        DO I=0,3
 
312
          TEMP=1
 
313
          DO J=1,NLOOPLINE
 
314
            PL(I,J)=0.D0
 
315
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
316
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
317
            ENDDO
 
318
            TEMP=TEMP+PAIRING(J)
 
319
          ENDDO
 
320
        ENDDO
 
321
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
322
      ELSE
 
323
        RES(1)=0.0D0
 
324
        RES(2)=0.0D0
 
325
        RES(3)=0.0D0
 
326
        STABLE=.TRUE.
 
327
      ENDIF
 
328
      END
 
329
 
 
330
      SUBROUTINE LOOP_4( LID, W1, W2, W3, W4, M1, M2, M3, M4,  RANK
 
331
     $ , RES, STABLE, LOOPNUM)
 
332
 
 
333
      INTEGER    NEXTERNAL
 
334
      PARAMETER (NEXTERNAL=5)
 
335
      INTEGER    NLOOPLINE
 
336
      PARAMETER (NLOOPLINE=4)
 
337
      INTEGER    NWAVEFUNCS
 
338
      PARAMETER (NWAVEFUNCS=28)
 
339
      INTEGER    NLOOPGROUPS
 
340
      PARAMETER (NLOOPGROUPS=77)
 
341
      INTEGER    NCOMB
 
342
      PARAMETER (NCOMB=48)
 
343
C     
 
344
C     ARGUMENTS 
 
345
C     
 
346
      INTEGER W1, W2, W3, W4
 
347
      COMPLEX*16 M1, M2, M3, M4
 
348
 
 
349
      COMPLEX*16 RES(3)
 
350
      INTEGER LID, RANK, LSYMFACT
 
351
      INTEGER LOOPNUM
 
352
      LOGICAL STABLE
 
353
C     
 
354
C     LOCAL VARIABLES 
 
355
C     
 
356
      REAL*8 PL(0:3,NLOOPLINE)
 
357
      COMPLEX*16 M2L(NLOOPLINE)
 
358
      INTEGER PAIRING(NLOOPLINE),WE(4)
 
359
      INTEGER I, J, K, TEMP
 
360
C     
 
361
C     GLOBAL VARIABLES
 
362
C     
 
363
      INTEGER ID,R
 
364
      COMMON/LOOP/ID,R
 
365
 
 
366
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
367
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
368
 
 
369
      INTEGER HELOFFSET
 
370
      INTEGER GOODHEL(NCOMB)
 
371
      LOGICAL GOODAMP(NLOOPGROUPS)
 
372
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
373
 
 
374
      COMPLEX*16 W(20,NWAVEFUNCS)
 
375
      COMMON/W/W
 
376
 
 
377
C     ----------
 
378
C     BEGIN CODE
 
379
C     ----------
 
380
 
 
381
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
382
     $ ) THEN
 
383
        WE(1)=W1
 
384
        WE(2)=W2
 
385
        WE(3)=W3
 
386
        WE(4)=W4
 
387
        M2L(1)=M4**2
 
388
        M2L(2)=M1**2
 
389
        M2L(3)=M2**2
 
390
        M2L(4)=M3**2
 
391
        DO I=1,NLOOPLINE
 
392
          PAIRING(I)=1
 
393
        ENDDO
 
394
 
 
395
        R=RANK
 
396
        ID=LID
 
397
        DO I=0,3
 
398
          TEMP=1
 
399
          DO J=1,NLOOPLINE
 
400
            PL(I,J)=0.D0
 
401
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
402
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
403
            ENDDO
 
404
            TEMP=TEMP+PAIRING(J)
 
405
          ENDDO
 
406
        ENDDO
 
407
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
408
      ELSE
 
409
        RES(1)=0.0D0
 
410
        RES(2)=0.0D0
 
411
        RES(3)=0.0D0
 
412
        STABLE=.TRUE.
 
413
      ENDIF
 
414
      END
 
415
 
 
416
      SUBROUTINE LOOP_2_3( LID, P1, P2, W1, W2, W3, M1, M2,  RANK, RES
 
417
     $ , STABLE, LOOPNUM)
 
418
 
 
419
      INTEGER    NEXTERNAL
 
420
      PARAMETER (NEXTERNAL=5)
 
421
      INTEGER    NLOOPLINE
 
422
      PARAMETER (NLOOPLINE=2)
 
423
      INTEGER    NWAVEFUNCS
 
424
      PARAMETER (NWAVEFUNCS=28)
 
425
      INTEGER    NLOOPGROUPS
 
426
      PARAMETER (NLOOPGROUPS=77)
 
427
      INTEGER    NCOMB
 
428
      PARAMETER (NCOMB=48)
 
429
C     
 
430
C     ARGUMENTS 
 
431
C     
 
432
      INTEGER W1, W2, W3
 
433
      COMPLEX*16 M1, M2
 
434
      INTEGER P1, P2
 
435
      COMPLEX*16 RES(3)
 
436
      INTEGER LID, RANK, LSYMFACT
 
437
      INTEGER LOOPNUM
 
438
      LOGICAL STABLE
 
439
C     
 
440
C     LOCAL VARIABLES 
 
441
C     
 
442
      REAL*8 PL(0:3,NLOOPLINE)
 
443
      COMPLEX*16 M2L(NLOOPLINE)
 
444
      INTEGER PAIRING(NLOOPLINE),WE(3)
 
445
      INTEGER I, J, K, TEMP
 
446
C     
 
447
C     GLOBAL VARIABLES
 
448
C     
 
449
      INTEGER ID,R
 
450
      COMMON/LOOP/ID,R
 
451
 
 
452
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
453
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
454
 
 
455
      INTEGER HELOFFSET
 
456
      INTEGER GOODHEL(NCOMB)
 
457
      LOGICAL GOODAMP(NLOOPGROUPS)
 
458
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
459
 
 
460
      COMPLEX*16 W(20,NWAVEFUNCS)
 
461
      COMMON/W/W
 
462
 
 
463
C     ----------
 
464
C     BEGIN CODE
 
465
C     ----------
 
466
 
 
467
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
468
     $ ) THEN
 
469
        WE(1)=W1
 
470
        WE(2)=W2
 
471
        WE(3)=W3
 
472
        M2L(1)=M2**2
 
473
        M2L(2)=M1**2
 
474
        PAIRING(1)=P1
 
475
        PAIRING(2)=P2
 
476
        R=RANK
 
477
        ID=LID
 
478
        DO I=0,3
 
479
          TEMP=1
 
480
          DO J=1,NLOOPLINE
 
481
            PL(I,J)=0.D0
 
482
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
483
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
484
            ENDDO
 
485
            TEMP=TEMP+PAIRING(J)
 
486
          ENDDO
 
487
        ENDDO
 
488
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
489
      ELSE
 
490
        RES(1)=0.0D0
 
491
        RES(2)=0.0D0
 
492
        RES(3)=0.0D0
 
493
        STABLE=.TRUE.
 
494
      ENDIF
 
495
      END
 
496
 
 
497
      SUBROUTINE LOOP_2( LID, W1, W2, M1, M2,  RANK, RES, STABLE
 
498
     $ , LOOPNUM)
 
499
 
 
500
      INTEGER    NEXTERNAL
 
501
      PARAMETER (NEXTERNAL=5)
 
502
      INTEGER    NLOOPLINE
 
503
      PARAMETER (NLOOPLINE=2)
 
504
      INTEGER    NWAVEFUNCS
 
505
      PARAMETER (NWAVEFUNCS=28)
 
506
      INTEGER    NLOOPGROUPS
 
507
      PARAMETER (NLOOPGROUPS=77)
 
508
      INTEGER    NCOMB
 
509
      PARAMETER (NCOMB=48)
 
510
C     
 
511
C     ARGUMENTS 
 
512
C     
 
513
      INTEGER W1, W2
 
514
      COMPLEX*16 M1, M2
 
515
 
 
516
      COMPLEX*16 RES(3)
 
517
      INTEGER LID, RANK, LSYMFACT
 
518
      INTEGER LOOPNUM
 
519
      LOGICAL STABLE
 
520
C     
 
521
C     LOCAL VARIABLES 
 
522
C     
 
523
      REAL*8 PL(0:3,NLOOPLINE)
 
524
      COMPLEX*16 M2L(NLOOPLINE)
 
525
      INTEGER PAIRING(NLOOPLINE),WE(2)
 
526
      INTEGER I, J, K, TEMP
 
527
C     
 
528
C     GLOBAL VARIABLES
 
529
C     
 
530
      INTEGER ID,R
 
531
      COMMON/LOOP/ID,R
 
532
 
 
533
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
534
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
535
 
 
536
      INTEGER HELOFFSET
 
537
      INTEGER GOODHEL(NCOMB)
 
538
      LOGICAL GOODAMP(NLOOPGROUPS)
 
539
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
540
 
 
541
      COMPLEX*16 W(20,NWAVEFUNCS)
 
542
      COMMON/W/W
 
543
 
 
544
C     ----------
 
545
C     BEGIN CODE
 
546
C     ----------
 
547
 
 
548
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
549
     $ ) THEN
 
550
        WE(1)=W1
 
551
        WE(2)=W2
 
552
        M2L(1)=M2**2
 
553
        M2L(2)=M1**2
 
554
        DO I=1,NLOOPLINE
 
555
          PAIRING(I)=1
 
556
        ENDDO
 
557
 
 
558
        R=RANK
 
559
        ID=LID
 
560
        DO I=0,3
 
561
          TEMP=1
 
562
          DO J=1,NLOOPLINE
 
563
            PL(I,J)=0.D0
 
564
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
565
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
566
            ENDDO
 
567
            TEMP=TEMP+PAIRING(J)
 
568
          ENDDO
 
569
        ENDDO
 
570
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
571
      ELSE
 
572
        RES(1)=0.0D0
 
573
        RES(2)=0.0D0
 
574
        RES(3)=0.0D0
 
575
        STABLE=.TRUE.
 
576
      ENDIF
 
577
      END
 
578
 
 
579
      SUBROUTINE LOOP_3_4( LID, P1, P2, P3, W1, W2, W3, W4, M1, M2, M3
 
580
     $ ,  RANK, RES, STABLE, LOOPNUM)
 
581
 
 
582
      INTEGER    NEXTERNAL
 
583
      PARAMETER (NEXTERNAL=5)
 
584
      INTEGER    NLOOPLINE
 
585
      PARAMETER (NLOOPLINE=3)
 
586
      INTEGER    NWAVEFUNCS
 
587
      PARAMETER (NWAVEFUNCS=28)
 
588
      INTEGER    NLOOPGROUPS
 
589
      PARAMETER (NLOOPGROUPS=77)
 
590
      INTEGER    NCOMB
 
591
      PARAMETER (NCOMB=48)
 
592
C     
 
593
C     ARGUMENTS 
 
594
C     
 
595
      INTEGER W1, W2, W3, W4
 
596
      COMPLEX*16 M1, M2, M3
 
597
      INTEGER P1, P2, P3
 
598
      COMPLEX*16 RES(3)
 
599
      INTEGER LID, RANK, LSYMFACT
 
600
      INTEGER LOOPNUM
 
601
      LOGICAL STABLE
 
602
C     
 
603
C     LOCAL VARIABLES 
 
604
C     
 
605
      REAL*8 PL(0:3,NLOOPLINE)
 
606
      COMPLEX*16 M2L(NLOOPLINE)
 
607
      INTEGER PAIRING(NLOOPLINE),WE(4)
 
608
      INTEGER I, J, K, TEMP
 
609
C     
 
610
C     GLOBAL VARIABLES
 
611
C     
 
612
      INTEGER ID,R
 
613
      COMMON/LOOP/ID,R
 
614
 
 
615
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
616
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
617
 
 
618
      INTEGER HELOFFSET
 
619
      INTEGER GOODHEL(NCOMB)
 
620
      LOGICAL GOODAMP(NLOOPGROUPS)
 
621
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
622
 
 
623
      COMPLEX*16 W(20,NWAVEFUNCS)
 
624
      COMMON/W/W
 
625
 
 
626
C     ----------
 
627
C     BEGIN CODE
 
628
C     ----------
 
629
 
 
630
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
631
     $ ) THEN
 
632
        WE(1)=W1
 
633
        WE(2)=W2
 
634
        WE(3)=W3
 
635
        WE(4)=W4
 
636
        M2L(1)=M3**2
 
637
        M2L(2)=M1**2
 
638
        M2L(3)=M2**2
 
639
        PAIRING(1)=P1
 
640
        PAIRING(2)=P2
 
641
        PAIRING(3)=P3
 
642
        R=RANK
 
643
        ID=LID
 
644
        DO I=0,3
 
645
          TEMP=1
 
646
          DO J=1,NLOOPLINE
 
647
            PL(I,J)=0.D0
 
648
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
649
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
650
            ENDDO
 
651
            TEMP=TEMP+PAIRING(J)
 
652
          ENDDO
 
653
        ENDDO
 
654
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
655
      ELSE
 
656
        RES(1)=0.0D0
 
657
        RES(2)=0.0D0
 
658
        RES(3)=0.0D0
 
659
        STABLE=.TRUE.
 
660
      ENDIF
 
661
      END
 
662
 
 
663
      SUBROUTINE LOOP_3( LID, W1, W2, W3, M1, M2, M3,  RANK, RES
 
664
     $ , STABLE, LOOPNUM)
 
665
 
 
666
      INTEGER    NEXTERNAL
 
667
      PARAMETER (NEXTERNAL=5)
 
668
      INTEGER    NLOOPLINE
 
669
      PARAMETER (NLOOPLINE=3)
 
670
      INTEGER    NWAVEFUNCS
 
671
      PARAMETER (NWAVEFUNCS=28)
 
672
      INTEGER    NLOOPGROUPS
 
673
      PARAMETER (NLOOPGROUPS=77)
 
674
      INTEGER    NCOMB
 
675
      PARAMETER (NCOMB=48)
 
676
C     
 
677
C     ARGUMENTS 
 
678
C     
 
679
      INTEGER W1, W2, W3
 
680
      COMPLEX*16 M1, M2, M3
 
681
 
 
682
      COMPLEX*16 RES(3)
 
683
      INTEGER LID, RANK, LSYMFACT
 
684
      INTEGER LOOPNUM
 
685
      LOGICAL STABLE
 
686
C     
 
687
C     LOCAL VARIABLES 
 
688
C     
 
689
      REAL*8 PL(0:3,NLOOPLINE)
 
690
      COMPLEX*16 M2L(NLOOPLINE)
 
691
      INTEGER PAIRING(NLOOPLINE),WE(3)
 
692
      INTEGER I, J, K, TEMP
 
693
C     
 
694
C     GLOBAL VARIABLES
 
695
C     
 
696
      INTEGER ID,R
 
697
      COMMON/LOOP/ID,R
 
698
 
 
699
      LOGICAL CHECKPHASE, HELDOUBLECHECKED
 
700
      COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
 
701
 
 
702
      INTEGER HELOFFSET
 
703
      INTEGER GOODHEL(NCOMB)
 
704
      LOGICAL GOODAMP(NLOOPGROUPS)
 
705
      COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
 
706
 
 
707
      COMPLEX*16 W(20,NWAVEFUNCS)
 
708
      COMMON/W/W
 
709
 
 
710
C     ----------
 
711
C     BEGIN CODE
 
712
C     ----------
 
713
 
 
714
      IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
 
715
     $ ) THEN
 
716
        WE(1)=W1
 
717
        WE(2)=W2
 
718
        WE(3)=W3
 
719
        M2L(1)=M3**2
 
720
        M2L(2)=M1**2
 
721
        M2L(3)=M2**2
 
722
        DO I=1,NLOOPLINE
 
723
          PAIRING(I)=1
 
724
        ENDDO
 
725
 
 
726
        R=RANK
 
727
        ID=LID
 
728
        DO I=0,3
 
729
          TEMP=1
 
730
          DO J=1,NLOOPLINE
 
731
            PL(I,J)=0.D0
 
732
            DO K=TEMP,(TEMP+PAIRING(J)-1)
 
733
              PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
 
734
            ENDDO
 
735
            TEMP=TEMP+PAIRING(J)
 
736
          ENDDO
 
737
        ENDDO
 
738
        CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
 
739
      ELSE
 
740
        RES(1)=0.0D0
 
741
        RES(2)=0.0D0
 
742
        RES(3)=0.0D0
 
743
        STABLE=.TRUE.
 
744
      ENDIF
 
745
      END
 
746