~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/LoopSquaredOrder_IOTest/Loop_sqso_uux_ddx/loop_matrix_QCDQEDpert_default.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:
16
16
C     
17
17
      IMPLICIT NONE
18
18
C     
 
19
C     USER CUSTOMIZABLE OPTIONS
 
20
C     
 
21
C     This parameter is designed for the check timing command of MG5.
 
22
C      It skips the loop reduction.
 
23
      LOGICAL SKIPLOOPEVAL
 
24
      PARAMETER (SKIPLOOPEVAL=.FALSE.)
 
25
C     For timing checks. Stops the code after having only initialized
 
26
C      its arrays from the external data files 
 
27
      LOGICAL BOOTANDSTOP
 
28
      PARAMETER (BOOTANDSTOP=.FALSE.)
 
29
      INTEGER TIR_CACHE_SIZE
 
30
C     To change memory foot-print of MadLoop, you can change this
 
31
C      parameter to be 0,1 or 2 *and recompile*.
 
32
C     Notice that this will impact MadLoop speed performances in the
 
33
C      context of stability checks.
 
34
      INCLUDE 'tir_cache_size.inc'
 
35
C     
19
36
C     CONSTANTS
20
37
C     
21
38
      CHARACTER*512 PARAMFNAME,HELCONFIGFNAME,LOOPFILTERFNAME
33
50
      PARAMETER (NBORNAMPS=7)
34
51
      INTEGER    NLOOPS, NLOOPGROUPS, NCTAMPS
35
52
      PARAMETER (NLOOPS=70, NLOOPGROUPS=37, NCTAMPS=117)
 
53
      INTEGER    NLOOPAMPS
 
54
      PARAMETER (NLOOPAMPS=187)
36
55
      INTEGER    NCOLORROWS
37
 
      PARAMETER (NCOLORROWS=187)
 
56
      PARAMETER (NCOLORROWS=NLOOPAMPS)
38
57
      INTEGER    NEXTERNAL
39
58
      PARAMETER (NEXTERNAL=4)
40
59
      INTEGER    NWAVEFUNCS,NLOOPWAVEFUNCS
68
87
C     Only CutTools provides QP
69
88
      INTEGER QP_NLOOPLIB
70
89
      PARAMETER (QP_NLOOPLIB=1)
71
 
C     This parameter is designed for the check timing command of MG5
72
 
      LOGICAL SKIPLOOPEVAL
73
 
      PARAMETER (SKIPLOOPEVAL=.FALSE.)
74
 
      LOGICAL BOOTANDSTOP
75
 
      PARAMETER (BOOTANDSTOP=.FALSE.)
76
90
      INTEGER MAXSTABILITYLENGTH
77
91
      DATA MAXSTABILITYLENGTH/20/
78
92
      COMMON/ML5_0_STABILITY_TESTS/MAXSTABILITYLENGTH
 
93
 
79
94
C     
80
95
C     ARGUMENTS 
81
96
C     
103
118
C     
104
119
C     LOCAL VARIABLES 
105
120
C     
106
 
      INTEGER I,J,K,H,DUMMY,I_QP_LIB
 
121
      INTEGER I,J,K,H,HEL_MULT,I_QP_LIB,DUMMY
107
122
 
108
123
      CHARACTER*512 PARAMFN,HELCONFIGFN,LOOPFILTERFN,COLORNUMFN
109
124
     $ ,COLORDENOMFN,HELFILTERFN
134
149
      LOGICAL EVAL_DONE(MAXSTABILITYLENGTH)
135
150
      LOGICAL DOING_QP_EVALS
136
151
      INTEGER STAB_INDEX,BASIC_CT_MODE
137
 
      INTEGER N_DP_EVAL, N_QP_EVAL
138
 
      DATA N_DP_EVAL/1/
139
 
      DATA N_QP_EVAL/1/
 
152
 
 
153
 
140
154
      REAL*8 ACC(0:NSQUAREDSO)
141
155
      REAL*8 DP_RES(3,0:NSQUAREDSO,MAXSTABILITYLENGTH)
142
156
C     QP_RES STORES THE QUADRUPLE PRECISION RESULT OBTAINED FROM
149
163
      REAL*8 HELSAVED(3,NCOMB)
150
164
      INTEGER ITEMP
151
165
      LOGICAL LTEMP
152
 
      REAL*8 BORNBUFF(0:NSQSO_BORN)
 
166
      REAL*8 BORNBUFF(0:NSQSO_BORN),TMPR
153
167
      REAL*8 BUFFR(3,0:NSQUAREDSO),BUFFR_BIS(3,0:NSQUAREDSO),TEMP(0:3
154
 
     $ ,0:NSQUAREDSO),TEMP1(0:NSQUAREDSO),TEMP2
 
168
     $ ,0:NSQUAREDSO),TEMP1(0:NSQUAREDSO)
 
169
      REAL*8 TEMP2
155
170
      COMPLEX*16 COEFS(MAXLWFSIZE,0:VERTEXMAXCOEFS-1,MAXLWFSIZE)
156
171
      COMPLEX*16 CFTOT
157
172
      LOGICAL FOUNDHELFILTER,FOUNDLOOPFILTER
161
176
      DATA ((LOOPFILTERBUFF(J,I),J=1,NSQUAREDSO),I=1,NLOOPGROUPS)
162
177
     $ /NSQSOXNLG*.FALSE./
163
178
 
 
179
      LOGICAL AUTOMATIC_TIR_CACHE_CLEARING
 
180
      DATA AUTOMATIC_TIR_CACHE_CLEARING/.TRUE./
 
181
      COMMON/ML5_0_RUNTIME_OPTIONS/AUTOMATIC_TIR_CACHE_CLEARING
 
182
 
164
183
      INTEGER IDEN
165
184
      DATA IDEN/36/
166
185
      INTEGER HELAVGFACTOR
179
198
C     
180
199
C     FUNCTIONS
181
200
C     
 
201
      INTEGER ML5_0_TIRCACHE_INDEX
182
202
      INTEGER ML5_0_ML5SOINDEX_FOR_BORN_AMP
183
203
      INTEGER ML5_0_ML5SOINDEX_FOR_LOOP_AMP
184
204
      INTEGER ML5_0_ML5SQSOINDEX
192
212
      INCLUDE 'mp_coupl.inc'
193
213
      INCLUDE 'MadLoopParams.inc'
194
214
 
 
215
 
195
216
      LOGICAL CHOSEN_SO_CONFIGS(NSQUAREDSO)
196
217
      DATA CHOSEN_SO_CONFIGS/.TRUE.,.TRUE.,.TRUE./
197
218
      COMMON/ML5_0_CHOSEN_LOOP_SQSO/CHOSEN_SO_CONFIGS
198
219
 
 
220
      INTEGER N_DP_EVAL, N_QP_EVAL
 
221
      DATA N_DP_EVAL/1/
 
222
      DATA N_QP_EVAL/1/
 
223
      COMMON/ML5_0_N_EVALS/N_DP_EVAL,N_QP_EVAL
 
224
 
199
225
      LOGICAL CHECKPHASE
200
226
      DATA CHECKPHASE/.TRUE./
201
227
      LOGICAL HELDOUBLECHECKED
212
238
C     A FLAG TO DENOTE WHETHER THE CORRESPONDING LOOPLIBS ARE
213
239
C      AVAILABLE OR NOT
214
240
      LOGICAL LOOPLIBS_AVAILABLE(4)
215
 
      DATA LOOPLIBS_AVAILABLE /.TRUE.,.TRUE.,.TRUE.,.TRUE./
 
241
      DATA LOOPLIBS_AVAILABLE/.TRUE.,.TRUE.,.TRUE.,.TRUE./
216
242
      COMMON/ML5_0_LOOPLIBS_AV/ LOOPLIBS_AVAILABLE
217
243
C     A FLAG TO DENOTE WHETHER THE CORRESPONDING DIRECTION TESTS
218
244
C      AVAILABLE OR NOT IN THE LOOPLIBS
219
245
C     PJFry++ and Golem95 do not support direction test
220
246
      LOGICAL LOOPLIBS_DIRECTEST(4)
221
 
      DATA LOOPLIBS_DIRECTEST /.TRUE.,.FALSE.,.TRUE.,.FALSE./
 
247
      DATA LOOPLIBS_DIRECTEST /.TRUE.,.TRUE.,.TRUE.,.TRUE./
222
248
 
223
249
C     PS CAN POSSIBILY BE PASSED THROUGH IMPROVE_PS BUT IS NOT
224
250
C      MODIFIED FOR THE PURPOSE OF THE STABILITY TEST
315
341
      COMPLEX*16 LOOPCOEFS(0:LOOPMAXCOEFS-1,NSQUAREDSO,NLOOPGROUPS)
316
342
      COMMON/ML5_0_LCOEFS/LOOPCOEFS
317
343
 
 
344
 
 
345
      LOGICAL TIR_DONE(NLOOPGROUPS)
 
346
      COMMON/ML5_0_TIRCACHING/TIR_DONE
 
347
 
318
348
      COMPLEX*16 AMPL(3,NCTAMPS)
319
349
      COMMON/ML5_0_AMPL/AMPL
320
350
 
358
388
C     ----------
359
389
 
360
390
      IF(ML_INIT) THEN
 
391
        ML_INIT = .FALSE.
361
392
        CALL PRINT_MADLOOP_BANNER()
362
393
        TMP = 'auto'
363
394
        CALL SETMADLOOPPATH(TMP)
364
395
        CALL JOINPATH(MLPATH,PARAMFNAME,PARAMFN)
365
396
        CALL MADLOOPPARAMREADER(PARAMFN,.TRUE.)
366
 
        ML_INIT = .FALSE.
 
397
 
 
398
C       Make sure that NROTATIONS_QP and NROTATIONS_DP are set to zero
 
399
C        if AUTOMATIC_TIR_CACHE_CLEARING is disabled.
 
400
        IF(.NOT.AUTOMATIC_TIR_CACHE_CLEARING) THEN
 
401
          IF(NROTATIONS_DP.NE.0.OR.NROTATIONS_QP.NE.0) THEN
 
402
            WRITE(*,*) 'INFO: AUTOMATIC_TIR_CACHE_CLEARING is disable'
 
403
     $       //'d, so MadLoop automatically resets NROTATIONS_DP an'
 
404
     $       //'d NROTATIONS_QP to 0.'
 
405
            NROTATIONS_QP=0
 
406
            NROTATIONS_DP=0
 
407
          ENDIF
 
408
        ENDIF
 
409
      ENDIF
 
410
 
 
411
      QP_TOOLS_AVAILABLE=.FALSE.
 
412
      INDEX_QP_TOOLS(1:QP_NLOOPLIB+1)=0
 
413
C     SKIP THE ONES THAT NOT AVAILABLE
 
414
      J=1
 
415
      DO I=1,NLOOPLIB
 
416
        IF(MLREDUCTIONLIB(J).EQ.0)EXIT
 
417
        IF(.NOT.LOOPLIBS_AVAILABLE(MLREDUCTIONLIB(J)))THEN
 
418
          MLREDUCTIONLIB(J:NLOOPLIB-1)=MLREDUCTIONLIB(J+1:NLOOPLIB)
 
419
          MLREDUCTIONLIB(NLOOPLIB)=0
 
420
        ELSE
 
421
          J=J+1
 
422
        ENDIF
 
423
      ENDDO
 
424
      IF(MLREDUCTIONLIB(1).EQ.0)THEN
 
425
        STOP 'No available loop reduction lib is provided. Make sur'
 
426
     $   //'e MLReductionLib is correct.'
 
427
      ENDIF
 
428
      J=0
 
429
      DO I=1,NLOOPLIB
 
430
        IF(MLREDUCTIONLIB(I).EQ.1)THEN
 
431
          J=J+1
 
432
          IF(.NOT.QP_TOOLS_AVAILABLE)QP_TOOLS_AVAILABLE=.TRUE.
 
433
          INDEX_QP_TOOLS(J)=I
 
434
        ENDIF
 
435
      ENDDO
 
436
 
 
437
C     Setup the file paths
 
438
      CALL JOINPATH(MLPATH,PARAMFNAME,PARAMFN)
 
439
      CALL JOINPATH(MLPATH,PROC_PREFIX,TMP)
 
440
      CALL JOINPATH(TMP,HELCONFIGFNAME,HELCONFIGFN)
 
441
      CALL JOINPATH(TMP,LOOPFILTERFNAME,LOOPFILTERFN)
 
442
      CALL JOINPATH(TMP,COLORNUMFNAME,COLORNUMFN)
 
443
      CALL JOINPATH(TMP,COLORDENOMFNAME,COLORDENOMFN)
 
444
      CALL JOINPATH(TMP,HELFILTERFNAME,HELFILTERFN)
 
445
 
 
446
      CALL ML5_0_SET_N_EVALS(N_DP_EVAL,N_QP_EVAL)
 
447
 
 
448
      OPEN(1, FILE=COLORNUMFN, ERR=104, STATUS='OLD',          
 
449
     $  ACTION='READ')
 
450
      DO I=1,NCOLORROWS
 
451
        READ(1,*,END=105) (CF_N(I,J),J=1,NBORNAMPS)
 
452
      ENDDO
 
453
      GOTO 105
 
454
 104  CONTINUE
 
455
      STOP 'Color factors could not be initialized from file ML5_0_Col'
 
456
     $ //'orNumFactors.dat. File not found'
 
457
 105  CONTINUE
 
458
      CLOSE(1)
 
459
      OPEN(1, FILE=COLORDENOMFN, ERR=106, STATUS='OLD',          
 
460
     $  ACTION='READ')
 
461
      DO I=1,NCOLORROWS
 
462
        READ(1,*,END=107) (CF_D(I,J),J=1,NBORNAMPS)
 
463
      ENDDO
 
464
      GOTO 107
 
465
 106  CONTINUE
 
466
      STOP 'Color factors could not be initialized from file ML5_0_Col'
 
467
     $ //'orDenomFactors.dat. File not found'
 
468
 107  CONTINUE
 
469
      CLOSE(1)
 
470
      OPEN(1, FILE=HELCONFIGFN, ERR=108, STATUS='OLD',                
 
471
     $   ACTION='READ')
 
472
      DO H=1,NCOMB
 
473
        READ(1,*,END=109) (HELC(I,H),I=1,NEXTERNAL)
 
474
      ENDDO
 
475
      GOTO 109
 
476
 108  CONTINUE
 
477
      STOP 'Color helictiy configurations could not be initialize'
 
478
     $ //'d from file ML5_0_HelConfigs.dat. File not found'
 
479
 109  CONTINUE
 
480
      CLOSE(1)
 
481
 
 
482
C     SETUP OF THE COMMON STARTING EXTERNAL LOOP WAVEFUNCTION
 
483
C     IT IS ALSO PS POINT INDEPENDENT, SO IT CAN BE DONE HERE.
 
484
      DO I=0,3
 
485
        PL(I,0)=(0.0D0,0.0D0)
 
486
      ENDDO
 
487
      DO I=1,MAXLWFSIZE
 
488
        DO J=0,LOOPMAXCOEFS-1
 
489
          DO K=1,MAXLWFSIZE
 
490
            IF(I.EQ.K.AND.J.EQ.0) THEN
 
491
              WL(I,J,K,0)=(1.0D0,0.0D0)
 
492
            ELSE
 
493
              WL(I,J,K,0)=(0.0D0,0.0D0)
 
494
            ENDIF
 
495
          ENDDO
 
496
        ENDDO
 
497
      ENDDO
 
498
      IF(BOOTANDSTOP) THEN
 
499
        WRITE(*,*) 'Stopped by user request.'
 
500
        STOP
367
501
      ENDIF
368
502
 
369
503
      IF(NTRY.EQ.0) THEN
370
 
C       CALL MADLOOPPARAMREADER(paramFileName,.TRUE.)
371
 
        QP_TOOLS_AVAILABLE=.FALSE.
372
 
        INDEX_QP_TOOLS(1:QP_NLOOPLIB+1)=0
373
 
C       SKIP THE ONES THAT NOT AVAILABLE
374
 
        J=1
375
 
        DO I=1,NLOOPLIB
376
 
          IF(MLREDUCTIONLIB(J).EQ.0)EXIT
377
 
          IF(.NOT.LOOPLIBS_AVAILABLE(MLREDUCTIONLIB(J)))THEN
378
 
            MLREDUCTIONLIB(J:NLOOPLIB-1)=MLREDUCTIONLIB(J+1:NLOOPLIB)
379
 
            MLREDUCTIONLIB(NLOOPLIB)=0
380
 
          ELSE
381
 
            J=J+1
382
 
          ENDIF
383
 
        ENDDO
384
 
        IF(MLREDUCTIONLIB(1).EQ.0)THEN
385
 
          STOP 'No available loop reduction lib is provided. Make sur'
386
 
     $     //'e MLReductionLib is correct.'
387
 
        ENDIF
388
 
        J=0
389
 
        DO I=1,NLOOPLIB
390
 
          IF(MLREDUCTIONLIB(I).EQ.1)THEN
391
 
            J=J+1
392
 
            IF(.NOT.QP_TOOLS_AVAILABLE)QP_TOOLS_AVAILABLE=.TRUE.
393
 
            INDEX_QP_TOOLS(J)=I
394
 
          ENDIF
395
 
        ENDDO
396
 
 
397
 
C       Setup the file paths
398
 
        CALL JOINPATH(MLPATH,PARAMFNAME,PARAMFN)
399
 
        CALL JOINPATH(MLPATH,PROC_PREFIX,TMP)
400
 
        CALL JOINPATH(TMP,HELCONFIGFNAME,HELCONFIGFN)
401
 
        CALL JOINPATH(TMP,LOOPFILTERFNAME,LOOPFILTERFN)
402
 
        CALL JOINPATH(TMP,COLORNUMFNAME,COLORNUMFN)
403
 
        CALL JOINPATH(TMP,COLORDENOMFNAME,COLORDENOMFN)
404
 
        CALL JOINPATH(TMP,HELFILTERFNAME,HELFILTERFN)
405
 
 
406
 
        CALL ML5_0_SET_N_EVALS(N_DP_EVAL,N_QP_EVAL)
407
 
 
408
 
        HELDOUBLECHECKED=.NOT.DOUBLECHECKHELICITYFILTER
 
504
        HELDOUBLECHECKED=(.NOT.DOUBLECHECKHELICITYFILTER).OR.(HELICITYF
 
505
     $   ILTERLEVEL.EQ.0)
409
506
        OPEN(1, FILE=LOOPFILTERFN, ERR=100, STATUS='OLD',          
410
507
     $    ACTION='READ')
411
508
        DO J=1,NLOOPGROUPS
422
519
 101    CONTINUE
423
520
        CLOSE(1)
424
521
 
 
522
        IF (HELICITYFILTERLEVEL.EQ.0) THEN
 
523
          FOUNDHELFILTER=.TRUE.
 
524
          DO J=1,NCOMB
 
525
            GOODHEL(J)=1
 
526
          ENDDO
 
527
          GOTO 122
 
528
        ENDIF
425
529
        OPEN(1, FILE=HELFILTERFN, ERR=102, STATUS='OLD',          
426
530
     $    ACTION='READ')
427
531
        DO I=1,NCOMB
435
539
        ENDDO
436
540
 103    CONTINUE
437
541
        CLOSE(1)
438
 
 
439
 
        OPEN(1, FILE=COLORNUMFN, ERR=104, STATUS='OLD',          
440
 
     $    ACTION='READ')
441
 
        DO I=1,NCOLORROWS
442
 
          READ(1,*,END=105) (CF_N(I,J),J=1,NBORNAMPS)
443
 
        ENDDO
444
 
        GOTO 105
445
 
 104    CONTINUE
446
 
        STOP 'Color factors could not be initialized from fil'
447
 
     $   //'e ML5_0_ColorNumFactors.dat. File not found'
448
 
 105    CONTINUE
449
 
        CLOSE(1)
450
 
        OPEN(1, FILE=COLORDENOMFN, ERR=106, STATUS='OLD',          
451
 
     $    ACTION='READ')
452
 
        DO I=1,NCOLORROWS
453
 
          READ(1,*,END=107) (CF_D(I,J),J=1,NBORNAMPS)
454
 
        ENDDO
455
 
        GOTO 107
456
 
 106    CONTINUE
457
 
        STOP 'Color factors could not be initialized from fil'
458
 
     $   //'e ML5_0_ColorDenomFactors.dat. File not found'
459
 
 107    CONTINUE
460
 
        CLOSE(1)
461
 
        OPEN(1, FILE=HELCONFIGFN, ERR=108, STATUS='OLD',              
462
 
     $       ACTION='READ')
463
 
        DO H=1,NCOMB
464
 
          READ(1,*,END=109) (HELC(I,H),I=1,NEXTERNAL)
465
 
        ENDDO
466
 
        GOTO 109
467
 
 108    CONTINUE
468
 
        STOP 'Color helictiy configurations could not be initialize'
469
 
     $   //'d from file ML5_0_HelConfigs.dat. File not found'
470
 
 109    CONTINUE
471
 
        CLOSE(1)
472
 
 
473
 
C       SETUP OF THE COMMON STARTING EXTERNAL LOOP WAVEFUNCTION
474
 
C       IT IS ALSO PS POINT INDEPENDENT, SO IT CAN BE DONE HERE.
475
 
        DO I=0,3
476
 
          PL(I,0)=(0.0D0,0.0D0)
477
 
        ENDDO
478
 
        DO I=1,MAXLWFSIZE
479
 
          DO J=0,LOOPMAXCOEFS-1
480
 
            DO K=1,MAXLWFSIZE
481
 
              IF(I.EQ.K.AND.J.EQ.0) THEN
482
 
                WL(I,J,K,0)=(1.0D0,0.0D0)
483
 
              ELSE
484
 
                WL(I,J,K,0)=(0.0D0,0.0D0)
485
 
              ENDIF
486
 
            ENDDO
 
542
        IF (HELICITYFILTERLEVEL.EQ.1) THEN
 
543
C         We must make sure to remove the matching-helicity optimisatio
 
544
C         n, as requested by the user.
 
545
          DO J=1,NCOMB
 
546
            IF ((GOODHEL(J).GT.1).OR.(GOODHEL(J).LT.HELOFFSET)) THEN
 
547
              GOODHEL(J)=1
 
548
            ENDIF
487
549
          ENDDO
488
 
        ENDDO
489
 
        IF(BOOTANDSTOP) THEN
490
 
          WRITE(*,*) 'Stopped by user request.'
491
 
          STOP
492
550
        ENDIF
 
551
 122    CONTINUE
493
552
      ENDIF
494
553
 
495
 
 
496
554
C     First compute the borns, it will store them in ANS(0,I)
497
555
C     It is left untouched for the rest of MadLoop evaluation.
498
556
C     Notice that the squared split order index I does NOT
512
570
        ANS(0,I)=BORNBUFF(I)
513
571
      ENDDO
514
572
 
515
 
 
516
573
C     We set here the reference to the born summed over all split
517
574
C      orders
518
575
      REF=0.0D0
557
614
     $ ).AND.USELOOPFILTER).OR.(.NOT.FOUNDHELFILTER))
558
615
 
559
616
      IF (WRITEOUTFILTERS) THEN
560
 
        IF ((.NOT. CHECKPHASE).AND.(.NOT.FOUNDHELFILTER)) THEN
561
 
 
 
617
        IF ((HELICITYFILTERLEVEL.NE.0).AND.(.NOT. CHECKPHASE).AND.(.NOT
 
618
     $   .FOUNDHELFILTER)) THEN
562
619
          OPEN(1, FILE=HELFILTERFN, ERR=110, STATUS='NEW',ACTION='WRIT'
563
620
     $     //'E')
564
621
          DO I=1,NCOMB
627
684
        ENDDO
628
685
      ENDDO
629
686
 
 
687
      IF (AUTOMATIC_TIR_CACHE_CLEARING) THEN
 
688
        CALL ML5_0_CLEAR_TIR_CACHE()
 
689
      ENDIF
 
690
 
630
691
      IF (IMPROVEPSPOINT.GE.0) THEN
631
692
C       Make the input PS more precise (exact onshell and energy-moment
632
693
C       um conservation)
647
708
          AMPL(K,I)=(0.0D0,0.0D0)
648
709
        ENDDO
649
710
      ENDDO
650
 
C     USE THE FIRST LOOP REDUCTION LIBRARY AND THE FIRST QP LOOP
651
 
C      REDUCTION LIBRARY
 
711
 
 
712
C     Start by using the first available loop reduction library and qp
 
713
C      library.
652
714
      I_LIB=1
653
715
      I_QP_LIB=1
 
716
 
 
717
      GOTO 208
 
718
C     MadLoop jumps to this label during stability checks when it
 
719
C      recomputes a rotated PS point
654
720
 200  CONTINUE
 
721
C     For the computation of a rotated version of this PS point we
 
722
C      must reset the TIR cache since this changes the definition of
 
723
C      the loop denominators.
 
724
      CALL ML5_0_CLEAR_TIR_CACHE()
 
725
 208  CONTINUE
 
726
 
 
727
C     MadLoop jumps to this label during initialization when it goes
 
728
C      to the computation of the next helicity.
 
729
 205  CONTINUE
655
730
 
656
731
      IF (.NOT.MP_PS_SET.AND.(CTMODE.EQ.0.OR.CTMODE.GE.4)) THEN
657
732
        CALL ML5_0_SET_MP_PS(P_USER)
676
751
      DO I=1,NLOOPGROUPS
677
752
        DO J=1,3
678
753
          DO K=1,NSQUAREDSO
679
 
            LOOPRES(J,K,I)=0.0D0
 
754
            LOOPRES(J,K,I)=(0.0D0,0.0D0)
680
755
          ENDDO
681
756
        ENDDO
682
757
      ENDDO
713
788
          CT_REQ_SO_DONE=.FALSE.
714
789
          LOOP_REQ_SO_DONE=.FALSE.
715
790
 
 
791
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
 
792
     $     -1) THEN
 
793
            HEL_MULT=GOODHEL(H)
 
794
          ELSE
 
795
            HEL_MULT=1
 
796
          ENDIF
 
797
 
 
798
 
716
799
C         Helas calls for the born amplitudes and counterterms
717
800
C          associated to given loops
718
801
          CALL IXXXXX(P(0,1),MDL_MU,NHEL(1),+1*IC(1),W(1,1))
806
889
          CALL R2_GG_1_R2_GG_3_0(W(1,5),W(1,12),R2_GGQ,R2_GGB,AMPL(1
807
890
     $     ,51))
808
891
C         At this point, all CT amps needed for (QCD=6 QED=0), i.e. of
809
 
C          split order ID=0, are computed.
 
892
C          split order ID=1, are computed.
810
893
          IF(FILTER_SO.AND.SQSO_TARGET.EQ.1) GOTO 2000
811
894
C         Counter-term amplitude(s) for loop diagram number 22
812
895
          CALL FFV1_0(W(1,4),W(1,3),W(1,6),R2_DDA,AMPL(1,52))
946
1029
          CALL FFV2_6_0(W(1,1),W(1,2),W(1,12),R2_GUU2CPB_2EPS
947
1030
     $     ,R2_GUU2CMB_2EPS,AMPL(3,117))
948
1031
C         At this point, all CT amps needed for (QCD=4 QED=2), i.e. of
949
 
C          split order ID=1, are computed.
 
1032
C          split order ID=2, are computed.
950
1033
          IF(FILTER_SO.AND.SQSO_TARGET.EQ.2) GOTO 2000
951
1034
C         At this point, all CT amps needed for (QCD=2 QED=4), i.e. of
952
 
C          split order ID=2, are computed.
 
1035
C          split order ID=3, are computed.
953
1036
          IF(FILTER_SO.AND.SQSO_TARGET.EQ.3) GOTO 2000
954
1037
 2000     CONTINUE
955
1038
          CT_REQ_SO_DONE=.TRUE.
964
1047
 3000     CONTINUE
965
1048
          UVCT_REQ_SO_DONE=.TRUE.
966
1049
 
967
 
          IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.
968
 
     $     -1) THEN
969
 
            DUMMY=GOODHEL(H)
970
 
          ELSE
971
 
            DUMMY=1
972
 
          ENDIF
973
1050
          DO I=1,NCTAMPS
974
1051
            DO J=1,NBORNAMPS
975
1052
              CFTOT=DCMPLX(CF_N(I,J)/DBLE(ABS(CF_D(I,J))),0.0D0)
978
1055
     $         I),ML5_0_ML5SOINDEX_FOR_BORN_AMP(J))
979
1056
              IF (.NOT.FILTER_SO.OR.SQSO_TARGET.EQ.ITEMP) THEN
980
1057
                DO K=1,3
981
 
                  TEMP2 = 2.0D0*DUMMY*DBLE(CFTOT*AMPL(K,I)*DCONJG(AMP(J
982
 
     $             )))
 
1058
                  TEMP2 = 2.0D0*HEL_MULT*DBLE(CFTOT*AMPL(K,I)
 
1059
     $             *DCONJG(AMP(J)))
983
1060
                  ANS(K,ITEMP)=ANS(K,ITEMP)+TEMP2
984
1061
                  ANS(K,0)=ANS(K,0)+TEMP2
985
1062
                ENDDO
993
1070
          CALL VVV1L2P0_1(PL(0,1),W(1,12),GC_10,ZERO,ZERO,PL(0,2)
994
1071
     $     ,COEFS)
995
1072
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,1),4,COEFS,4,4,WL(1,0,1,2))
996
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,2),2,4,1,2,118,H)
 
1073
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,2),2,4,1,2,1,118,H)
997
1074
C         Coefficient construction for loop diagram with ID 9
998
1075
          CALL FFV1L3_1(PL(0,0),W(1,3),GC_11,MDL_MD,ZERO,PL(0,3),COEFS)
999
1076
          CALL ML5_0_UPDATE_WL_0_1(WL(1,0,1,0),4,COEFS,4,4,WL(1,0,1,3))
1001
1078
          CALL ML5_0_UPDATE_WL_1_0(WL(1,0,1,3),4,COEFS,4,4,WL(1,0,1,4))
1002
1079
          CALL VVV1L2P0_1(PL(0,4),W(1,5),GC_10,ZERO,ZERO,PL(0,5),COEFS)
1003
1080
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,4),4,COEFS,4,4,WL(1,0,1,5))
1004
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,5),2,4,2,1,119,H)
 
1081
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,5),2,4,2,1,1,119,H)
1005
1082
C         Coefficient construction for loop diagram with ID 10
1006
1083
          CALL FFV1L1P0_3(PL(0,0),W(1,3),GC_11,ZERO,ZERO,PL(0,6),COEFS)
1007
1084
          CALL ML5_0_UPDATE_WL_0_0(WL(1,0,1,0),4,COEFS,4,4,WL(1,0,1,6))
1009
1086
          CALL ML5_0_UPDATE_WL_0_1(WL(1,0,1,6),4,COEFS,4,4,WL(1,0,1,7))
1010
1087
          CALL FFV1L1_2(PL(0,7),W(1,5),GC_11,MDL_MD,ZERO,PL(0,8),COEFS)
1011
1088
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,7),4,COEFS,4,4,WL(1,0,1,8))
1012
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,8),2,4,3,1,120,H)
 
1089
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,8),2,4,3,1,1,120,H)
1013
1090
C         Coefficient construction for loop diagram with ID 11
1014
1091
          CALL FFV1L2P0_3(PL(0,0),W(1,1),GC_11,ZERO,ZERO,PL(0,9),COEFS)
1015
1092
          CALL ML5_0_UPDATE_WL_0_0(WL(1,0,1,0),4,COEFS,4,4,WL(1,0,1,9))
1021
1098
     $     ,COEFS)
1022
1099
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,10),4,COEFS,4,4,WL(1,0,1
1023
1100
     $     ,11))
1024
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,11),2,4,4,1,121,H)
 
1101
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,11),2,4,4,1,1,121,H)
1025
1102
C         Coefficient construction for loop diagram with ID 12
1026
1103
          CALL FFV1L3_2(PL(0,0),W(1,1),GC_11,MDL_MU,ZERO,PL(0,12)
1027
1104
     $     ,COEFS)
1035
1112
     $     ,COEFS)
1036
1113
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,13),4,COEFS,4,4,WL(1,0,1
1037
1114
     $     ,14))
1038
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,14),2,4,5,1,122,H)
 
1115
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,14),2,4,5,1,1,122,H)
1039
1116
C         Coefficient construction for loop diagram with ID 13
1040
1117
          CALL FFV1L3_2(PL(0,13),W(1,4),GC_11,MDL_MD,ZERO,PL(0,15)
1041
1118
     $     ,COEFS)
1045
1122
     $     ,COEFS)
1046
1123
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,15),4,COEFS,4,4,WL(1,0,1
1047
1124
     $     ,16))
1048
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,16),2,4,6,1,123,H)
 
1125
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,16),2,4,6,1,1,123,H)
1049
1126
C         Coefficient construction for loop diagram with ID 14
1050
1127
          CALL FFV1L3_1(PL(0,13),W(1,3),GC_11,MDL_MD,ZERO,PL(0,17)
1051
1128
     $     ,COEFS)
1055
1132
     $     ,COEFS)
1056
1133
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,17),4,COEFS,4,4,WL(1,0,1
1057
1134
     $     ,18))
1058
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,18),2,4,7,1,124,H)
 
1135
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,18),2,4,7,1,1,124,H)
1059
1136
C         Coefficient construction for loop diagram with ID 15
1060
1137
          CALL UUV1L1_2(PL(0,0),W(1,5),GC_10,ZERO,ZERO,PL(0,19),COEFS)
1061
1138
          CALL ML5_0_UPDATE_WL_0_1(WL(1,0,1,0),1,COEFS,1,1,WL(1,0,1
1064
1141
     $     ,COEFS)
1065
1142
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,19),1,COEFS,1,1,WL(1,0,1
1066
1143
     $     ,20))
1067
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,20),2,1,1,1,125,H)
 
1144
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,20),2,1,1,1,1,125,H)
1068
1145
C         Coefficient construction for loop diagram with ID 16
1069
1146
          CALL FFV1L2_1(PL(0,0),W(1,5),GC_11,MDL_MU,ZERO,PL(0,21)
1070
1147
     $     ,COEFS)
1074
1151
     $     ,COEFS)
1075
1152
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,21),4,COEFS,4,4,WL(1,0,1
1076
1153
     $     ,22))
1077
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,22),2,4,8,1,126,H)
 
1154
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,22),2,4,8,1,1,126,H)
1078
1155
C         Coefficient construction for loop diagram with ID 17
1079
1156
          CALL FFV1L2_1(PL(0,0),W(1,5),GC_11,MDL_MC,ZERO,PL(0,23)
1080
1157
     $     ,COEFS)
1084
1161
     $     ,COEFS)
1085
1162
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,23),4,COEFS,4,4,WL(1,0,1
1086
1163
     $     ,24))
1087
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,24),2,4,9,1,127,H)
 
1164
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,24),2,4,9,1,1,127,H)
1088
1165
C         Coefficient construction for loop diagram with ID 18
1089
1166
          CALL FFV1L2_1(PL(0,0),W(1,5),GC_11,MDL_MT,MDL_WT,PL(0,25)
1090
1167
     $     ,COEFS)
1094
1171
     $     ,COEFS)
1095
1172
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,25),4,COEFS,4,4,WL(1,0,1
1096
1173
     $     ,26))
1097
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,26),2,4,10,1,128,H)
 
1174
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,26),2,4,10,1,1,128,H)
1098
1175
C         Coefficient construction for loop diagram with ID 19
1099
1176
          CALL FFV1L2_1(PL(0,0),W(1,5),GC_11,MDL_MD,ZERO,PL(0,27)
1100
1177
     $     ,COEFS)
1104
1181
     $     ,COEFS)
1105
1182
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,27),4,COEFS,4,4,WL(1,0,1
1106
1183
     $     ,28))
1107
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,28),2,4,11,1,129,H)
 
1184
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,28),2,4,11,1,1,129,H)
1108
1185
C         Coefficient construction for loop diagram with ID 20
1109
1186
          CALL FFV1L2_1(PL(0,0),W(1,5),GC_11,MDL_MS,ZERO,PL(0,29)
1110
1187
     $     ,COEFS)
1114
1191
     $     ,COEFS)
1115
1192
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,29),4,COEFS,4,4,WL(1,0,1
1116
1193
     $     ,30))
1117
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,30),2,4,12,1,130,H)
 
1194
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,30),2,4,12,1,1,130,H)
1118
1195
C         Coefficient construction for loop diagram with ID 21
1119
1196
          CALL FFV1L2_1(PL(0,0),W(1,5),GC_11,MDL_MB,ZERO,PL(0,31)
1120
1197
     $     ,COEFS)
1124
1201
     $     ,COEFS)
1125
1202
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,31),4,COEFS,4,4,WL(1,0,1
1126
1203
     $     ,32))
1127
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,32),2,4,13,1,131,H)
 
1204
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,32),2,4,13,1,1,131,H)
1128
1205
C         At this point, all loop coefficients needed for (QCD=6
1129
 
C          QED=0), i.e. of split order ID=0, are computed.
 
1206
C          QED=0), i.e. of split order ID=1, are computed.
1130
1207
          IF(FILTER_SO.AND.SQSO_TARGET.EQ.1) GOTO 4000
1131
1208
C         Coefficient construction for loop diagram with ID 22
1132
1209
          CALL FFV1L1_2(PL(0,7),W(1,6),GC_1,MDL_MD,ZERO,PL(0,33),COEFS)
1133
1210
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,7),4,COEFS,4,4,WL(1,0,1
1134
1211
     $     ,33))
1135
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,33),2,4,3,1,132,H)
 
1212
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,33),2,4,3,1,1,132,H)
1136
1213
C         Coefficient construction for loop diagram with ID 23
1137
1214
          CALL FFV2_3L1_2(PL(0,7),W(1,7),GC_68,GC_76,MDL_MD,ZERO,PL(0
1138
1215
     $     ,34),COEFS)
1139
1216
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,7),4,COEFS,4,4,WL(1,0,1
1140
1217
     $     ,34))
1141
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,34),2,4,3,1,133,H)
 
1218
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,34),2,4,3,1,1,133,H)
1142
1219
C         Coefficient construction for loop diagram with ID 24
1143
1220
          CALL FFS2L1_2(PL(0,7),W(1,8),GC_104,MDL_MD,ZERO,PL(0,35)
1144
1221
     $     ,COEFS)
1145
1222
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,7),4,COEFS,4,4,WL(1,0,1
1146
1223
     $     ,35))
1147
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,35),2,4,3,1,134,H)
 
1224
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,35),2,4,3,1,1,134,H)
1148
1225
C         Coefficient construction for loop diagram with ID 25
1149
1226
          CALL FFS4L1_2(PL(0,7),W(1,9),GC_105,MDL_MD,ZERO,PL(0,36)
1150
1227
     $     ,COEFS)
1151
1228
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,7),4,COEFS,4,4,WL(1,0,1
1152
1229
     $     ,36))
1153
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,36),2,4,3,1,135,H)
 
1230
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,36),2,4,3,1,1,135,H)
1154
1231
C         Coefficient construction for loop diagram with ID 26
1155
1232
          CALL FFV1L1P0_3(PL(0,0),W(1,2),GC_11,ZERO,ZERO,PL(0,37)
1156
1233
     $     ,COEFS)
1164
1241
     $     ,COEFS)
1165
1242
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,38),4,COEFS,4,4,WL(1,0,1
1166
1243
     $     ,39))
1167
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,39),2,4,14,1,136,H)
 
1244
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,39),2,4,14,1,1,136,H)
1168
1245
C         Coefficient construction for loop diagram with ID 27
1169
1246
          CALL FFS1_3L1_2(PL(0,38),W(1,11),GC_31,GC_40,MDL_MU,ZERO
1170
1247
     $     ,PL(0,40),COEFS)
1171
1248
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,38),4,COEFS,4,4,WL(1,0,1
1172
1249
     $     ,40))
1173
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,40),2,4,14,1,137,H)
 
1250
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,40),2,4,14,1,1,137,H)
1174
1251
C         Coefficient construction for loop diagram with ID 28
1175
1252
          CALL FFV1L3_1(PL(0,9),W(1,3),GC_11,MDL_MD,ZERO,PL(0,41)
1176
1253
     $     ,COEFS)
1180
1257
     $     ,COEFS)
1181
1258
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,41),4,COEFS,4,4,WL(1,0,1
1182
1259
     $     ,42))
1183
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,42),2,4,15,1,138,H)
 
1260
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,42),2,4,15,1,1,138,H)
1184
1261
C         Coefficient construction for loop diagram with ID 29
1185
1262
          CALL FFS1_3L2_1(PL(0,41),W(1,14),GC_13,GC_22,MDL_MU,ZERO
1186
1263
     $     ,PL(0,43),COEFS)
1187
1264
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,41),4,COEFS,4,4,WL(1,0,1
1188
1265
     $     ,43))
1189
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,43),2,4,15,1,139,H)
 
1266
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,43),2,4,15,1,1,139,H)
1190
1267
C         Coefficient construction for loop diagram with ID 30
1191
1268
          CALL FFV2L2_3(PL(0,10),W(1,4),GC_59,MDL_MW,MDL_WW,PL(0,44)
1192
1269
     $     ,COEFS)
1196
1273
     $     ,COEFS)
1197
1274
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,44),4,COEFS,4,4,WL(1,0,1
1198
1275
     $     ,45))
1199
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,45),4,4,16,1,140,H)
 
1276
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,45),4,4,16,1,1,140,H)
1200
1277
C         Coefficient construction for loop diagram with ID 31
1201
1278
          CALL FFS1_3L2_3(PL(0,10),W(1,4),GC_31,GC_40,MDL_MW,MDL_WW
1202
1279
     $     ,PL(0,46),COEFS)
1206
1283
     $     ,47),COEFS)
1207
1284
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,46),4,COEFS,1,4,WL(1,0,1
1208
1285
     $     ,47))
1209
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,47),2,4,16,1,141,H)
 
1286
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,47),2,4,16,1,1,141,H)
1210
1287
C         Coefficient construction for loop diagram with ID 32
1211
1288
          CALL FFV1L2_1(PL(0,10),W(1,15),GC_2,MDL_MU,ZERO,PL(0,48)
1212
1289
     $     ,COEFS)
1213
1290
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,10),4,COEFS,4,4,WL(1,0,1
1214
1291
     $     ,48))
1215
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,48),2,4,4,1,142,H)
 
1292
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,48),2,4,4,1,1,142,H)
1216
1293
C         Coefficient construction for loop diagram with ID 33
1217
1294
          CALL FFV2_5L2_1(PL(0,10),W(1,16),GC_69,GC_76,MDL_MU,ZERO
1218
1295
     $     ,PL(0,49),COEFS)
1219
1296
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,10),4,COEFS,4,4,WL(1,0,1
1220
1297
     $     ,49))
1221
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,49),2,4,4,1,143,H)
 
1298
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,49),2,4,4,1,1,143,H)
1222
1299
C         Coefficient construction for loop diagram with ID 34
1223
1300
          CALL FFS2L2_1(PL(0,10),W(1,17),GC_123,MDL_MU,ZERO,PL(0,50)
1224
1301
     $     ,COEFS)
1225
1302
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,10),4,COEFS,4,4,WL(1,0,1
1226
1303
     $     ,50))
1227
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,50),2,4,4,1,144,H)
 
1304
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,50),2,4,4,1,1,144,H)
1228
1305
C         Coefficient construction for loop diagram with ID 35
1229
1306
          CALL FFS4L2_1(PL(0,10),W(1,18),GC_122,MDL_MU,ZERO,PL(0,51)
1230
1307
     $     ,COEFS)
1231
1308
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,10),4,COEFS,4,4,WL(1,0,1
1232
1309
     $     ,51))
1233
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,51),2,4,4,1,145,H)
 
1310
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,51),2,4,4,1,1,145,H)
1234
1311
C         Coefficient construction for loop diagram with ID 36
1235
1312
          CALL FFV1L1P0_3(PL(0,12),W(1,2),GC_2,ZERO,ZERO,PL(0,52)
1236
1313
     $     ,COEFS)
1244
1321
     $     ,COEFS)
1245
1322
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,53),4,COEFS,4,4,WL(1,0,1
1246
1323
     $     ,54))
1247
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,54),2,4,6,1,146,H)
 
1324
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,54),2,4,6,1,1,146,H)
1248
1325
C         Coefficient construction for loop diagram with ID 37
1249
1326
          CALL FFV2_5L1_3(PL(0,12),W(1,2),GC_69,GC_76,MDL_MZ,MDL_WZ
1250
1327
     $     ,PL(0,55),COEFS)
1258
1335
     $     ,COEFS)
1259
1336
          CALL ML5_0_UPDATE_WL_4_0(WL(1,0,1,56),4,COEFS,4,4,WL(1,0,1
1260
1337
     $     ,57))
1261
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,57),4,4,17,1,147,H)
 
1338
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,57),4,4,17,1,1,147,H)
1262
1339
C         Coefficient construction for loop diagram with ID 38
1263
1340
          CALL FFS2L1_3(PL(0,12),W(1,2),GC_123,MDL_MZ,MDL_WZ,PL(0,58)
1264
1341
     $     ,COEFS)
1272
1349
     $     ,COEFS)
1273
1350
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,59),4,COEFS,4,4,WL(1,0,1
1274
1351
     $     ,60))
1275
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,60),2,4,17,1,148,H)
 
1352
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,60),2,4,17,1,1,148,H)
1276
1353
C         Coefficient construction for loop diagram with ID 39
1277
1354
          CALL FFS4L1_3(PL(0,12),W(1,2),GC_122,MDL_MH,MDL_WH,PL(0,61)
1278
1355
     $     ,COEFS)
1286
1363
     $     ,COEFS)
1287
1364
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,62),4,COEFS,4,4,WL(1,0,1
1288
1365
     $     ,63))
1289
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,63),2,4,18,1,149,H)
 
1366
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,63),2,4,18,1,1,149,H)
1290
1367
C         Coefficient construction for loop diagram with ID 40
1291
1368
          CALL FFV1L3_1(PL(0,52),W(1,3),GC_1,MDL_MD,ZERO,PL(0,64)
1292
1369
     $     ,COEFS)
1296
1373
     $     ,COEFS)
1297
1374
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,64),4,COEFS,4,4,WL(1,0,1
1298
1375
     $     ,65))
1299
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,65),2,4,7,1,150,H)
 
1376
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,65),2,4,7,1,1,150,H)
1300
1377
C         Coefficient construction for loop diagram with ID 41
1301
1378
          CALL FFV2_3L3_1(PL(0,55),W(1,3),GC_68,GC_76,MDL_MD,ZERO,PL(0
1302
1379
     $     ,66),COEFS)
1306
1383
     $     ,COEFS)
1307
1384
          CALL ML5_0_UPDATE_WL_4_0(WL(1,0,1,66),4,COEFS,4,4,WL(1,0,1
1308
1385
     $     ,67))
1309
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,67),4,4,19,1,151,H)
 
1386
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,67),4,4,19,1,1,151,H)
1310
1387
C         Coefficient construction for loop diagram with ID 42
1311
1388
          CALL FFS2L3_1(PL(0,58),W(1,3),GC_104,MDL_MD,ZERO,PL(0,68)
1312
1389
     $     ,COEFS)
1316
1393
     $     ,COEFS)
1317
1394
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,68),4,COEFS,4,4,WL(1,0,1
1318
1395
     $     ,69))
1319
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,69),2,4,19,1,152,H)
 
1396
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,69),2,4,19,1,1,152,H)
1320
1397
C         Coefficient construction for loop diagram with ID 43
1321
1398
          CALL FFS4L3_1(PL(0,61),W(1,3),GC_105,MDL_MD,ZERO,PL(0,70)
1322
1399
     $     ,COEFS)
1326
1403
     $     ,COEFS)
1327
1404
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,70),4,COEFS,4,4,WL(1,0,1
1328
1405
     $     ,71))
1329
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,71),2,4,20,1,153,H)
 
1406
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,71),2,4,20,1,1,153,H)
1330
1407
C         Coefficient construction for loop diagram with ID 44
1331
1408
          CALL FFV2L1_3(PL(0,12),W(1,3),GC_124,MDL_MW,MDL_WW,PL(0,72)
1332
1409
     $     ,COEFS)
1340
1417
     $     ,COEFS)
1341
1418
          CALL ML5_0_UPDATE_WL_4_0(WL(1,0,1,73),4,COEFS,4,4,WL(1,0,1
1342
1419
     $     ,74))
1343
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,74),4,4,21,1,154,H)
 
1420
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,74),4,4,21,1,1,154,H)
1344
1421
C         Coefficient construction for loop diagram with ID 45
1345
1422
          CALL FFS1_3L1_3(PL(0,12),W(1,3),GC_13,GC_22,MDL_MW,MDL_WW
1346
1423
     $     ,PL(0,75),COEFS)
1354
1431
     $     ,COEFS)
1355
1432
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,76),4,COEFS,4,4,WL(1,0,1
1356
1433
     $     ,77))
1357
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,77),2,4,21,1,155,H)
 
1434
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,77),2,4,21,1,1,155,H)
1358
1435
C         Coefficient construction for loop diagram with ID 46
1359
1436
          CALL FFV1L3_2(PL(0,0),W(1,1),GC_2,MDL_MU,ZERO,PL(0,78),COEFS)
1360
1437
          CALL ML5_0_UPDATE_WL_0_1(WL(1,0,1,0),4,COEFS,4,4,WL(1,0,1
1371
1448
     $     ,COEFS)
1372
1449
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,80),4,COEFS,4,4,WL(1,0,1
1373
1450
     $     ,81))
1374
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,81),2,4,7,1,156,H)
 
1451
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,81),2,4,7,1,1,156,H)
1375
1452
C         Coefficient construction for loop diagram with ID 47
1376
1453
          CALL FFV2_5L3_2(PL(0,0),W(1,1),GC_69,GC_76,MDL_MU,ZERO,PL(0
1377
1454
     $     ,82),COEFS)
1389
1466
     $     ,PL(0,85),COEFS)
1390
1467
          CALL ML5_0_UPDATE_WL_2_2(WL(1,0,1,84),4,COEFS,4,4,WL(1,0,1
1391
1468
     $     ,85))
1392
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,85),4,4,22,1,157,H)
 
1469
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,85),4,4,22,1,1,157,H)
1393
1470
C         Coefficient construction for loop diagram with ID 48
1394
1471
          CALL FFS2L3_2(PL(0,0),W(1,1),GC_123,MDL_MU,ZERO,PL(0,86)
1395
1472
     $     ,COEFS)
1407
1484
     $     ,COEFS)
1408
1485
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,88),1,COEFS,4,1,WL(1,0,1
1409
1486
     $     ,89))
1410
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,89),2,1,22,1,158,H)
 
1487
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,89),2,1,22,1,1,158,H)
1411
1488
C         Coefficient construction for loop diagram with ID 49
1412
1489
          CALL FFS4L3_2(PL(0,0),W(1,1),GC_122,MDL_MU,ZERO,PL(0,90)
1413
1490
     $     ,COEFS)
1425
1502
     $     ,COEFS)
1426
1503
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,92),1,COEFS,4,1,WL(1,0,1
1427
1504
     $     ,93))
1428
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,93),2,1,23,1,159,H)
 
1505
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,93),2,1,23,1,1,159,H)
1429
1506
C         Coefficient construction for loop diagram with ID 50
1430
1507
          CALL FFV2L3_2(PL(0,0),W(1,1),GC_124,MDL_MD,ZERO,PL(0,94)
1431
1508
     $     ,COEFS)
1443
1520
     $     ,COEFS)
1444
1521
          CALL ML5_0_UPDATE_WL_2_2(WL(1,0,1,96),4,COEFS,4,4,WL(1,0,1
1445
1522
     $     ,97))
1446
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,97),4,4,24,1,160,H)
 
1523
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,97),4,4,24,1,1,160,H)
1447
1524
C         Coefficient construction for loop diagram with ID 51
1448
1525
          CALL FFS1_3L3_2(PL(0,0),W(1,1),GC_13,GC_22,MDL_MD,ZERO,PL(0
1449
1526
     $     ,98),COEFS)
1461
1538
     $     ,PL(0,101),COEFS)
1462
1539
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,100),1,COEFS,4,1,WL(1,0,1
1463
1540
     $     ,101))
1464
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,101),2,1,24,1,161,H)
 
1541
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,101),2,1,24,1,1,161,H)
1465
1542
C         Coefficient construction for loop diagram with ID 52
1466
1543
          CALL FFV1L3_2(PL(0,79),W(1,4),GC_11,MDL_MD,ZERO,PL(0,102)
1467
1544
     $     ,COEFS)
1471
1548
     $     ,COEFS)
1472
1549
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,102),4,COEFS,4,4,WL(1,0,1
1473
1550
     $     ,103))
1474
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,103),2,4,6,1,162,H)
 
1551
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,103),2,4,6,1,1,162,H)
1475
1552
C         Coefficient construction for loop diagram with ID 53
1476
1553
          CALL FFV1L3_2(PL(0,83),W(1,4),GC_11,MDL_MD,ZERO,PL(0,104)
1477
1554
     $     ,COEFS)
1481
1558
     $     ,PL(0,105),COEFS)
1482
1559
          CALL ML5_0_UPDATE_WL_2_2(WL(1,0,1,104),4,COEFS,4,4,WL(1,0,1
1483
1560
     $     ,105))
1484
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,105),4,4,25,1,163,H)
 
1561
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,105),4,4,25,1,1,163,H)
1485
1562
C         Coefficient construction for loop diagram with ID 54
1486
1563
          CALL FFV1L3_2(PL(0,87),W(1,4),GC_11,MDL_MD,ZERO,PL(0,106)
1487
1564
     $     ,COEFS)
1491
1568
     $     ,107),COEFS)
1492
1569
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,106),1,COEFS,4,1,WL(1,0,1
1493
1570
     $     ,107))
1494
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,107),2,1,25,1,164,H)
 
1571
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,107),2,1,25,1,1,164,H)
1495
1572
C         Coefficient construction for loop diagram with ID 55
1496
1573
          CALL FFV1L3_2(PL(0,91),W(1,4),GC_11,MDL_MD,ZERO,PL(0,108)
1497
1574
     $     ,COEFS)
1501
1578
     $     ,109),COEFS)
1502
1579
          CALL ML5_0_UPDATE_WL_2_0(WL(1,0,1,108),1,COEFS,4,1,WL(1,0,1
1503
1580
     $     ,109))
1504
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,109),2,1,26,1,165,H)
 
1581
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,109),2,1,26,1,1,165,H)
1505
1582
C         Coefficient construction for loop diagram with ID 56
1506
1583
          CALL FFV2L2_3(PL(0,0),W(1,1),GC_124,MDL_MW,MDL_WW,PL(0,110)
1507
1584
     $     ,COEFS)
1519
1596
     $     ,COEFS)
1520
1597
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,112),4,COEFS,4,4,WL(1,0,1
1521
1598
     $     ,113))
1522
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,113),4,4,27,1,166,H)
 
1599
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,113),4,4,27,1,1,166,H)
1523
1600
C         Coefficient construction for loop diagram with ID 57
1524
1601
          CALL FFS1_3L2_3(PL(0,0),W(1,1),GC_13,GC_22,MDL_MW,MDL_WW
1525
1602
     $     ,PL(0,114),COEFS)
1537
1614
     $     ,COEFS)
1538
1615
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,116),4,COEFS,4,4,WL(1,0,1
1539
1616
     $     ,117))
1540
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,117),2,4,27,1,167,H)
 
1617
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,117),2,4,27,1,1,167,H)
1541
1618
C         Coefficient construction for loop diagram with ID 58
1542
1619
          CALL FFV2L1_3(PL(0,0),W(1,3),GC_124,MDL_MW,MDL_WW,PL(0,118)
1543
1620
     $     ,COEFS)
1551
1628
     $     ,COEFS)
1552
1629
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,119),4,COEFS,4,4,WL(1,0,1
1553
1630
     $     ,120))
1554
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,120),4,4,28,1,168,H)
 
1631
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,120),4,4,28,1,1,168,H)
1555
1632
C         Coefficient construction for loop diagram with ID 59
1556
1633
          CALL FFS1_3L1_3(PL(0,0),W(1,3),GC_13,GC_22,MDL_MW,MDL_WW
1557
1634
     $     ,PL(0,121),COEFS)
1565
1642
     $     ,COEFS)
1566
1643
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,122),4,COEFS,4,4,WL(1,0,1
1567
1644
     $     ,123))
1568
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,123),2,4,28,1,169,H)
 
1645
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,123),2,4,28,1,1,169,H)
1569
1646
C         Coefficient construction for loop diagram with ID 60
1570
1647
          CALL FFV1L2P0_3(PL(0,0),W(1,1),GC_2,ZERO,ZERO,PL(0,124)
1571
1648
     $     ,COEFS)
1579
1656
     $     ,COEFS)
1580
1657
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,125),4,COEFS,4,4,WL(1,0,1
1581
1658
     $     ,126))
1582
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,126),2,4,4,1,170,H)
 
1659
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,126),2,4,4,1,1,170,H)
1583
1660
C         Coefficient construction for loop diagram with ID 61
1584
1661
          CALL FFV2_5L2_3(PL(0,0),W(1,1),GC_69,GC_76,MDL_MZ,MDL_WZ
1585
1662
     $     ,PL(0,127),COEFS)
1593
1670
     $     ,COEFS)
1594
1671
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,128),4,COEFS,4,4,WL(1,0,1
1595
1672
     $     ,129))
1596
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,129),4,4,29,1,171,H)
 
1673
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,129),4,4,29,1,1,171,H)
1597
1674
C         Coefficient construction for loop diagram with ID 62
1598
1675
          CALL FFS2L2_3(PL(0,0),W(1,1),GC_123,MDL_MZ,MDL_WZ,PL(0,130)
1599
1676
     $     ,COEFS)
1607
1684
     $     ,COEFS)
1608
1685
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,131),4,COEFS,4,4,WL(1,0,1
1609
1686
     $     ,132))
1610
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,132),2,4,29,1,172,H)
 
1687
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,132),2,4,29,1,1,172,H)
1611
1688
C         Coefficient construction for loop diagram with ID 63
1612
1689
          CALL FFS4L2_3(PL(0,0),W(1,1),GC_122,MDL_MH,MDL_WH,PL(0,133)
1613
1690
     $     ,COEFS)
1621
1698
     $     ,COEFS)
1622
1699
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,134),4,COEFS,4,4,WL(1,0,1
1623
1700
     $     ,135))
1624
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,135),2,4,30,1,173,H)
 
1701
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,135),2,4,30,1,1,173,H)
1625
1702
C         Coefficient construction for loop diagram with ID 64
1626
1703
          CALL FFV2L1_3(PL(0,0),W(1,3),GC_127,MDL_MW,MDL_WW,PL(0,136)
1627
1704
     $     ,COEFS)
1635
1712
     $     ,COEFS)
1636
1713
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,137),4,COEFS,4,4,WL(1,0,1
1637
1714
     $     ,138))
1638
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,138),4,4,31,1,174,H)
 
1715
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,138),4,4,31,1,1,174,H)
1639
1716
C         Coefficient construction for loop diagram with ID 65
1640
1717
          CALL FFS1_3L1_3(PL(0,0),W(1,3),GC_14,GC_23,MDL_MW,MDL_WW
1641
1718
     $     ,PL(0,139),COEFS)
1649
1726
     $     ,COEFS)
1650
1727
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,140),4,COEFS,4,4,WL(1,0,1
1651
1728
     $     ,141))
1652
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,141),2,4,31,1,175,H)
 
1729
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,141),2,4,31,1,1,175,H)
1653
1730
C         Coefficient construction for loop diagram with ID 66
1654
1731
          CALL FFV2L1_3(PL(0,0),W(1,3),GC_130,MDL_MW,MDL_WW,PL(0,142)
1655
1732
     $     ,COEFS)
1663
1740
     $     ,COEFS)
1664
1741
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,143),4,COEFS,4,4,WL(1,0,1
1665
1742
     $     ,144))
1666
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,144),4,4,32,1,176,H)
 
1743
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,144),4,4,32,1,1,176,H)
1667
1744
C         Coefficient construction for loop diagram with ID 67
1668
1745
          CALL FFS1_3L1_3(PL(0,0),W(1,3),GC_15,GC_24,MDL_MW,MDL_WW
1669
1746
     $     ,PL(0,145),COEFS)
1677
1754
     $     ,COEFS)
1678
1755
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,146),4,COEFS,4,4,WL(1,0,1
1679
1756
     $     ,147))
1680
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,147),2,4,32,1,177,H)
 
1757
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,147),2,4,32,1,1,177,H)
1681
1758
C         Coefficient construction for loop diagram with ID 68
1682
1759
          CALL FFV1L1P0_3(PL(0,0),W(1,3),GC_1,ZERO,ZERO,PL(0,148)
1683
1760
     $     ,COEFS)
1691
1768
     $     ,COEFS)
1692
1769
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,149),4,COEFS,4,4,WL(1,0,1
1693
1770
     $     ,150))
1694
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,150),2,4,3,1,178,H)
 
1771
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,150),2,4,3,1,1,178,H)
1695
1772
C         Coefficient construction for loop diagram with ID 69
1696
1773
          CALL FFV2_3L1_3(PL(0,0),W(1,3),GC_68,GC_76,MDL_MZ,MDL_WZ
1697
1774
     $     ,PL(0,151),COEFS)
1705
1782
     $     ,COEFS)
1706
1783
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,152),4,COEFS,4,4,WL(1,0,1
1707
1784
     $     ,153))
1708
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,153),4,4,33,1,179,H)
 
1785
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,153),4,4,33,1,1,179,H)
1709
1786
C         Coefficient construction for loop diagram with ID 70
1710
1787
          CALL FFS2L1_3(PL(0,0),W(1,3),GC_104,MDL_MZ,MDL_WZ,PL(0,154)
1711
1788
     $     ,COEFS)
1719
1796
     $     ,COEFS)
1720
1797
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,155),4,COEFS,4,4,WL(1,0,1
1721
1798
     $     ,156))
1722
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,156),2,4,33,1,180,H)
 
1799
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,156),2,4,33,1,1,180,H)
1723
1800
C         Coefficient construction for loop diagram with ID 71
1724
1801
          CALL FFS4L1_3(PL(0,0),W(1,3),GC_105,MDL_MH,MDL_WH,PL(0,157)
1725
1802
     $     ,COEFS)
1733
1810
     $     ,COEFS)
1734
1811
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,158),4,COEFS,4,4,WL(1,0,1
1735
1812
     $     ,159))
1736
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,159),2,4,34,1,181,H)
 
1813
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,159),2,4,34,1,1,181,H)
1737
1814
C         Coefficient construction for loop diagram with ID 72
1738
1815
          CALL FFV1L2_1(PL(0,111),W(1,12),GC_11,MDL_MD,ZERO,PL(0,160)
1739
1816
     $     ,COEFS)
1740
1817
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,111),4,COEFS,4,4,WL(1,0,1
1741
1818
     $     ,160))
1742
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,160),4,4,35,1,182,H)
 
1819
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,160),4,4,35,1,1,182,H)
1743
1820
C         Coefficient construction for loop diagram with ID 73
1744
1821
          CALL FFV1L2_1(PL(0,115),W(1,12),GC_11,MDL_MD,ZERO,PL(0,161)
1745
1822
     $     ,COEFS)
1746
1823
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,115),4,COEFS,4,4,WL(1,0,1
1747
1824
     $     ,161))
1748
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,161),2,4,35,1,183,H)
 
1825
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,161),2,4,35,1,1,183,H)
1749
1826
C         Coefficient construction for loop diagram with ID 74
1750
1827
          CALL FFV2L2_3(PL(0,0),W(1,1),GC_125,MDL_MW,MDL_WW,PL(0,162)
1751
1828
     $     ,COEFS)
1759
1836
     $     ,COEFS)
1760
1837
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,163),4,COEFS,4,4,WL(1,0,1
1761
1838
     $     ,164))
1762
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,164),4,4,36,1,184,H)
 
1839
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,164),4,4,36,1,1,184,H)
1763
1840
C         Coefficient construction for loop diagram with ID 75
1764
1841
          CALL FFS1_3L2_3(PL(0,0),W(1,1),GC_16,GC_25,MDL_MW,MDL_WW
1765
1842
     $     ,PL(0,165),COEFS)
1773
1850
     $     ,COEFS)
1774
1851
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,166),4,COEFS,4,4,WL(1,0,1
1775
1852
     $     ,167))
1776
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,167),2,4,36,1,185,H)
 
1853
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,167),2,4,36,1,1,185,H)
1777
1854
C         Coefficient construction for loop diagram with ID 76
1778
1855
          CALL FFV2L2_3(PL(0,0),W(1,1),GC_126,MDL_MW,MDL_WW,PL(0,168)
1779
1856
     $     ,COEFS)
1787
1864
     $     ,COEFS)
1788
1865
          CALL ML5_0_UPDATE_WL_3_1(WL(1,0,1,169),4,COEFS,4,4,WL(1,0,1
1789
1866
     $     ,170))
1790
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,170),4,4,37,1,186,H)
 
1867
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,170),4,4,37,1,1,186,H)
1791
1868
C         Coefficient construction for loop diagram with ID 77
1792
1869
          CALL FFS1_3L2_3(PL(0,0),W(1,1),GC_19,GC_28,MDL_MW,MDL_WW
1793
1870
     $     ,PL(0,171),COEFS)
1801
1878
     $     ,COEFS)
1802
1879
          CALL ML5_0_UPDATE_WL_1_1(WL(1,0,1,172),4,COEFS,4,4,WL(1,0,1
1803
1880
     $     ,173))
1804
 
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,173),2,4,37,1,187,H)
 
1881
          CALL ML5_0_CREATE_LOOP_COEFS(WL(1,0,1,173),2,4,37,1,1,187,H)
1805
1882
C         At this point, all loop coefficients needed for (QCD=4
1806
 
C          QED=2), i.e. of split order ID=1, are computed.
 
1883
C          QED=2), i.e. of split order ID=2, are computed.
1807
1884
          IF(FILTER_SO.AND.SQSO_TARGET.EQ.2) GOTO 4000
1808
1885
C         At this point, all loop coefficients needed for (QCD=2
1809
 
C          QED=4), i.e. of split order ID=2, are computed.
 
1886
C          QED=4), i.e. of split order ID=3, are computed.
1810
1887
          IF(FILTER_SO.AND.SQSO_TARGET.EQ.3) GOTO 4000
1811
1888
 4000     CONTINUE
1812
1889
          LOOP_REQ_SO_DONE=.TRUE.
1813
1890
 
 
1891
 
 
1892
 
1814
1893
        ENDIF
1815
1894
      ENDDO
1816
1895
 
1823
1902
        ENDDO
1824
1903
      ENDDO
1825
1904
 
 
1905
 
 
1906
C     MadLoop jumps to this label during stability checks when it
 
1907
C      recomputes the same PS point with a different CTMode
1826
1908
 300  CONTINUE
 
1909
 
1827
1910
C     Free cache when using IREGI
1828
 
      IF(IREGIRECY.AND.MLREDUCTIONLIB(I_LIB).EQ.3)CALL IREGI_FREE_PS
 
1911
      IF(IREGIRECY.AND.MLREDUCTIONLIB(I_LIB).EQ.3) THEN
 
1912
        CALL IREGI_FREE_PS()
 
1913
      ENDIF
 
1914
 
 
1915
C     Even if the user did ask to turn off the automatic TIR cache
 
1916
C      clearing, we must do it now if the CTModeIndex rolls over the
 
1917
C      size of the TIR cache employed.
 
1918
C     Notice that we must do that only when processing a new CT mode
 
1919
C      as part of the stability test and not when computing a new
 
1920
C      helicity as part of the filtering process.
 
1921
C     This we check that we are not in the initialization phase.
 
1922
C     If we are not in CTModeRun=-1, then we never need to clear the
 
1923
C      cache since the TIR will always be used for a unique computation
 
1924
C      (not stab test).
 
1925
C     Also, it is clear that if we are running OPP when reaching thi'
 
1926
C     //'s line, then we shouldn't clear the TIR cache as it might
 
1927
C      still be useful later.
 
1928
C     Finally, notice that the conditional statement below should
 
1929
C      never be true except you have TIR library supporting quadruple
 
1930
C      precision or when TIR_CACHE_SIZE<2.
 
1931
      IF((.NOT.CHECKPHASE.AND.(HELDOUBLECHECKED)).AND.CTMODERUN.EQ.
 
1932
     $ -1.AND.MLREDUCTIONLIB(I_LIB).NE.1.AND.(ML5_0_TIRCACHE_INDEX(CTMO
 
1933
     $ DE).EQ.(TIR_CACHE_SIZE+1))) THEN
 
1934
        CALL ML5_0_CLEAR_TIR_CACHE()
 
1935
      ENDIF
 
1936
 
1829
1937
 
1830
1938
      DO I=0,NSQUAREDSO
1831
1939
        DO J=1,3
1833
1941
        ENDDO
1834
1942
      ENDDO
1835
1943
 
 
1944
 
1836
1945
      IF(SKIPLOOPEVAL) THEN
1837
1946
        GOTO 1226
1838
1947
      ENDIF
1875
1984
C       CutTools call for loop numbers 14
1876
1985
        CALL ML5_0_LOOP_2(5,12,DCMPLX(MDL_MB),DCMPLX(MDL_MB),2,I_SO,13)
1877
1986
C       At this point, all reductions needed for (QCD=6 QED=0), i.e.
1878
 
C        of split order ID=0, are computed.
 
1987
C        of split order ID=1, are computed.
1879
1988
        IF(FILTER_SO.AND.SQSO_TARGET.EQ.1) GOTO 5000
1880
1989
C       CutTools call for loop numbers 19,20
1881
1990
        CALL ML5_0_LOOP_3(2,4,10,DCMPLX(ZERO),DCMPLX(MDL_MD),DCMPLX(MDL
1950
2059
        CALL ML5_0_LOOP_3(1,2,12,DCMPLX(MDL_MW),DCMPLX(MDL_MB)
1951
2060
     $   ,DCMPLX(MDL_MB),4,I_SO,37)
1952
2061
C       At this point, all reductions needed for (QCD=4 QED=2), i.e.
1953
 
C        of split order ID=1, are computed.
 
2062
C        of split order ID=2, are computed.
1954
2063
        IF(FILTER_SO.AND.SQSO_TARGET.EQ.2) GOTO 5000
1955
2064
C       At this point, all reductions needed for (QCD=2 QED=4), i.e.
1956
 
C        of split order ID=2, are computed.
 
2065
C        of split order ID=3, are computed.
1957
2066
        IF(FILTER_SO.AND.SQSO_TARGET.EQ.3) GOTO 5000
1958
2067
        GOTO 5001
1959
2068
 5000   CONTINUE
1995
2104
        HELSAVED(2,HELPICKED)=ANS(2,0)
1996
2105
        HELSAVED(3,HELPICKED)=ANS(3,0)
1997
2106
 
1998
 
        IF (CHECKPHASE) THEN
 
2107
        IF (CHECKPHASE.AND.NTRY.NE.0) THEN
1999
2108
C         SET THE HELICITY FILTER
2000
2109
          IF(.NOT.FOUNDHELFILTER) THEN
2001
2110
            HEL_INCONSISTENT=.FALSE.
2004
2113
              IF(NTRY.EQ.1) THEN
2005
2114
                GOODHEL(HELPICKED)=-HELOFFSET
2006
2115
              ELSEIF(GOODHEL(HELPICKED).NE.-HELOFFSET) THEN
2007
 
                WRITE(*,*) '##W02A WARNING Inconsistent helicity '
2008
 
     $           ,HELPICKED
 
2116
                WRITE(*,*) '##W02A WARNING Inconsistent zero helicit'
 
2117
     $           //'y ',HELPICKED
2009
2118
                IF(HELINITSTARTOVER) THEN
2010
2119
                  WRITE(*,*) '##I01 INFO Initialization starting ove'
2011
2120
     $             //'r because of inconsistency in the helicit'
2015
2124
                  HEL_INCONSISTENT=.TRUE.
2016
2125
                ENDIF
2017
2126
              ENDIF
2018
 
            ELSE
 
2127
            ELSEIF(HELICITYFILTERLEVEL.GT.1) THEN
2019
2128
              DO H=1,HELPICKED-1
2020
2129
                IF(GOODHEL(H).GT.-HELOFFSET) THEN
2021
2130
C                 Be looser for helicity check, bring a factor 100
2032
2141
C                     Make sure we have paired this hel config to the
2033
2142
C                      same one last PS point
2034
2143
                    ELSEIF(GOODHEL(HELPICKED).NE.(-H-HELOFFSET)) THEN
2035
 
                      WRITE(*,*) '##W02B WARNING Inconsistent helicit'
2036
 
     $                 //'y ',HELPICKED
 
2144
                      WRITE(*,*) '##W02B WARNING Inconsistent matchin'
 
2145
     $                 //'g helicity ',HELPICKED
2037
2146
                      IF(HELINITSTARTOVER) THEN
2038
2147
                        WRITE(*,*) '##I01 INFO Initialization startin'
2039
2148
     $                   //'g over because of inconsistency in th'
2156
2265
        IF(HELPICKED.NE.NCOMB) THEN
2157
2266
          HELPICKED=HELPICKED+1
2158
2267
          MP_DONE=.FALSE.
2159
 
          GOTO 200
 
2268
          GOTO 205
2160
2269
        ELSE
2161
2270
C         Useful printout
2162
2271
C         do I=1,NCOMB
2179
2288
            ENDIF
2180
2289
          ENDIF
2181
2290
        ENDIF
2182
 
 
2183
2291
      ENDIF
2184
2292
 
2185
2293
      DO K=1,3
2191
2299
        ENDDO
2192
2300
      ENDDO
2193
2301
 
 
2302
 
2194
2303
      IF(.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.(CTMODERUN.EQ.
2195
2304
     $ -1)) THEN
2196
2305
        STAB_INDEX=STAB_INDEX+1
2224
2333
            CTMODE=BASIC_CT_MODE+1
2225
2334
            GOTO 300
2226
2335
          ELSE
2227
 
C           NO DIRECTION TEST LIBRARIES: e.g. PJFry++ and Golem95
 
2336
C           If some TIR library would not support the loop direction
 
2337
C            test (they all do for now), then we would just copy the
 
2338
C            answer from mode 1 and carry on.
2228
2339
            STAB_INDEX=STAB_INDEX+1
2229
2340
            IF(DOING_QP_EVALS)THEN
2230
2341
              DO I=0,NSQUAREDSO
2588
2699
     $       -1)) THEN
2589
2700
              GOTO 1231
2590
2701
            ENDIF
2591
 
C           Be loser for helicity comparison, so bring a factor 100
2592
 
          ELSEIF(.NOT.ML5_0_ISZERO((RESA(J)/RESB(J))-DBLE(WGT_TO_TRY(I
2593
 
     $     )),REF*100.0D0,-1,-1)) THEN
 
2702
C           Be looser for helicity comparison, so bring a factor 100
 
2703
          ELSEIF(.NOT.ML5_0_ISZERO(ABS((RESA(J)/RESB(J))-DBLE(WGT_TO_TR
 
2704
     $     Y(I))),1.0D0,-1,-1)) THEN
2594
2705
            GOTO 1231
2595
2706
          ENDIF
2596
2707
        ENDDO
2787
2898
      DATA (SQPLITORDERS(  1,I),I=  1,  2) /    6,    0/
2788
2899
      DATA (SQPLITORDERS(  2,I),I=  1,  2) /    4,    2/
2789
2900
      DATA (SQPLITORDERS(  3,I),I=  1,  2) /    2,    4/
 
2901
      COMMON/ML5_0_ML5SQPLITORDERS/SQPLITORDERS
2790
2902
C     
2791
2903
C     BEGIN CODE
2792
2904
C     
2915
3027
C     
2916
3028
C     CONSTANTS
2917
3029
C     
2918
 
 
2919
3030
      INTEGER    NSO, NSQUAREDSO, NAMPSO
2920
3031
      PARAMETER (NSO=2, NSQUAREDSO=3, NAMPSO=4)
2921
3032
C     
2931
3042
      DATA (AMPSPLITORDERS(  2,I),I=  1,  2) /    0,    2/
2932
3043
      DATA (AMPSPLITORDERS(  3,I),I=  1,  2) /    4,    0/
2933
3044
      DATA (AMPSPLITORDERS(  4,I),I=  1,  2) /    2,    2/
 
3045
      COMMON/ML5_0_ML5AMPSPLITORDERS/AMPSPLITORDERS
2934
3046
C     
2935
3047
C     FUNCTION
2936
3048
C     
2945
3057
      ML5_0_ML5SQSOINDEX=ML5_0_ML5SOINDEX_FOR_SQUARED_ORDERS(SQORDERS)
2946
3058
      END
2947
3059
 
 
3060
C     This is the inverse subroutine of ML5SOINDEX_FOR_SQUARED_ORDERS.
 
3061
C      Not directly useful, but provided nonetheless.
 
3062
      SUBROUTINE ML5_0_ML5GET_SQUARED_ORDERS_FOR_SOINDEX(SOINDEX
 
3063
     $ ,ORDERS)
 
3064
C     
 
3065
C     This functions returns the orders identified by the squared
 
3066
C      split order index in argument. Order values correspond to
 
3067
C      following list of couplings (and in this order):
 
3068
C     ['QCD', 'QED']
 
3069
C     
 
3070
C     CONSTANTS
 
3071
C     
 
3072
      INTEGER    NSO, NSQSO
 
3073
      PARAMETER (NSO=2, NSQSO=3)
 
3074
C     
 
3075
C     ARGUMENTS
 
3076
C     
 
3077
      INTEGER SOINDEX, ORDERS(NSO)
 
3078
C     
 
3079
C     LOCAL VARIABLES
 
3080
C     
 
3081
      INTEGER I
 
3082
      INTEGER SQPLITORDERS(NSQSO,NSO)
 
3083
      COMMON/ML5_0_ML5SQPLITORDERS/SQPLITORDERS
 
3084
C     
 
3085
C     BEGIN CODE
 
3086
C     
 
3087
      IF (SOINDEX.GT.0.AND.SOINDEX.LE.NSQSO) THEN
 
3088
        DO I=1,NSO
 
3089
          ORDERS(I) =  SQPLITORDERS(SOINDEX,I)
 
3090
        ENDDO
 
3091
        RETURN
 
3092
      ENDIF
 
3093
 
 
3094
      WRITE(*,*) 'ERROR:: Stopping function ML5_0_ML5GET_SQUARED_ORDER'
 
3095
     $ //'S_FOR_SOINDEX'
 
3096
      WRITE(*,*) 'Could not find squared orders index ',SOINDEX
 
3097
      STOP
 
3098
 
 
3099
      END SUBROUTINE
 
3100
 
 
3101
C     This is the inverse subroutine of getting amplitude SO orders.
 
3102
C      Not directly useful, but provided nonetheless.
 
3103
      SUBROUTINE ML5_0_ML5GET_ORDERS_FOR_AMPSOINDEX(SOINDEX,ORDERS)
 
3104
C     
 
3105
C     This functions returns the orders identified by the split order
 
3106
C      index in argument. Order values correspond to following list of
 
3107
C      couplings (and in this order):
 
3108
C     ['QCD', 'QED']
 
3109
C     
 
3110
C     CONSTANTS
 
3111
C     
 
3112
      INTEGER    NSO, NAMPSO
 
3113
      PARAMETER (NSO=2, NAMPSO=4)
 
3114
C     
 
3115
C     ARGUMENTS
 
3116
C     
 
3117
      INTEGER SOINDEX, ORDERS(NSO)
 
3118
C     
 
3119
C     LOCAL VARIABLES
 
3120
C     
 
3121
      INTEGER I
 
3122
      INTEGER AMPSPLITORDERS(NAMPSO,NSO)
 
3123
      COMMON/ML5_0_ML5AMPSPLITORDERS/AMPSPLITORDERS
 
3124
C     
 
3125
C     BEGIN CODE
 
3126
C     
 
3127
      IF (SOINDEX.GT.0.AND.SOINDEX.LE.NAMPSO) THEN
 
3128
        DO I=1,NSO
 
3129
          ORDERS(I) =  AMPSPLITORDERS(SOINDEX,I)
 
3130
        ENDDO
 
3131
        RETURN
 
3132
      ENDIF
 
3133
 
 
3134
      WRITE(*,*) 'ERROR:: Stopping function ML5_0_ML5GET_ORDERS_FOR_AM'
 
3135
     $ //'PSOINDEX'
 
3136
      WRITE(*,*) 'Could not find amplitude split orders index ',SOINDEX
 
3137
      STOP
 
3138
 
 
3139
      END SUBROUTINE
 
3140
 
 
3141
 
 
3142
C     This function is not directly useful, but included for completene
 
3143
C     ss
 
3144
      INTEGER FUNCTION ML5_0_ML5SOINDEX_FOR_AMPORDERS(ORDERS)
 
3145
C     
 
3146
C     This functions returns the integer index identifying the
 
3147
C      amplitude split orders passed in argument which correspond to
 
3148
C      the values of the following list of couplings (and in this
 
3149
C      order):
 
3150
C     ['QCD', 'QED']
 
3151
C     
 
3152
C     CONSTANTS
 
3153
C     
 
3154
      INTEGER    NSO, NAMPSO
 
3155
      PARAMETER (NSO=2, NAMPSO=4)
 
3156
C     
 
3157
C     ARGUMENTS
 
3158
C     
 
3159
      INTEGER ORDERS(NSO)
 
3160
C     
 
3161
C     LOCAL VARIABLES
 
3162
C     
 
3163
      INTEGER I,J
 
3164
      INTEGER AMPSPLITORDERS(NAMPSO,NSO)
 
3165
      COMMON/ML5_0_ML5AMPSPLITORDERS/AMPSPLITORDERS
 
3166
C     
 
3167
C     BEGIN CODE
 
3168
C     
 
3169
      DO I=1,NAMPSO
 
3170
        DO J=1,NSO
 
3171
          IF (ORDERS(J).NE.AMPSPLITORDERS(I,J)) GOTO 1009
 
3172
        ENDDO
 
3173
        ML5_0_ML5SOINDEX_FOR_AMPORDERS = I
 
3174
        RETURN
 
3175
 1009   CONTINUE
 
3176
      ENDDO
 
3177
 
 
3178
      WRITE(*,*) 'ERROR:: Stopping function ML5_0_ML5SOINDEX_FOR_AMPOR'
 
3179
     $ //'DERS'
 
3180
      WRITE(*,*) 'Could not find squared orders ',(ORDERS(I),I=1,NSO)
 
3181
      STOP
 
3182
 
 
3183
      END
 
3184
 
2948
3185
C     --=========================================--
2949
3186
C     Definition of additional access routines
2950
3187
C     --=========================================--
2964
3201
 
2965
3202
      ALWAYS_TEST_STABILITY = ONOFF
2966
3203
 
2967
 
      END
 
3204
      END SUBROUTINE
 
3205
 
 
3206
      SUBROUTINE ML5_0_SET_AUTOMATIC_TIR_CACHE_CLEARING(ONOFF)
 
3207
C     
 
3208
C     This function can be called by the MadLoop user so as to
 
3209
C      manually chose when
 
3210
C     to reset the TIR cache.
 
3211
C     
 
3212
      IMPLICIT NONE
 
3213
 
 
3214
      INCLUDE 'MadLoopParams.inc'
 
3215
 
 
3216
      LOGICAL ONOFF
 
3217
 
 
3218
      LOGICAL AUTOMATIC_TIR_CACHE_CLEARING
 
3219
      DATA AUTOMATIC_TIR_CACHE_CLEARING/.TRUE./
 
3220
      COMMON/ML5_0_RUNTIME_OPTIONS/AUTOMATIC_TIR_CACHE_CLEARING
 
3221
 
 
3222
      INTEGER N_DP_EVAL, N_QP_EVAL
 
3223
      COMMON/ML5_0_N_EVALS/N_DP_EVAL,N_QP_EVAL
 
3224
 
 
3225
 
 
3226
      AUTOMATIC_TIR_CACHE_CLEARING = ONOFF
 
3227
 
 
3228
      IF (NROTATIONS_DP.NE.0.OR.NROTATIONS_QP.NE.0) THEN
 
3229
        WRITE(*,*) 'Warning: One cannot remove the TIR cache automati'
 
3230
     $   //'c clearing while at the same time keeping Lorent'
 
3231
     $   //'z rotations for stability tests.'
 
3232
        WRITE(*,*) 'MadLoop will therefore automatically set NRotation'
 
3233
     $   //'s_DP and NRotations_QP to 0.'
 
3234
        NROTATIONS_DP = 0
 
3235
        NROTATIONS_QP = 0
 
3236
        CALL ML5_0_SET_N_EVALS(N_DP_EVAL,N_QP_EVAL)
 
3237
      ENDIF
 
3238
      END SUBROUTINE
2968
3239
 
2969
3240
      SUBROUTINE ML5_0_SET_COUPLINGORDERS_TARGET(SOTARGET)
2970
3241
      IMPLICIT NONE
3185
3456
 
3186
3457
      END
3187
3458
 
 
3459
C     The subroutine below perform clean-up duties for MadLoop like
 
3460
C      de-allocating
 
3461
C     arrays
 
3462
      SUBROUTINE ML5_0_EXIT_MADLOOP()
 
3463
      CONTINUE
 
3464
      END
 
3465
 
 
3466