~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/IOExportFKSTest/test_ppw_fksall/%SubProcesses%P0_dxu_wp%V0_dxu_wp%loop_matrix.f

mwrge with 2.7.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
      INTEGER NSQUAREDSOP1
79
79
      PARAMETER (NSQUAREDSOP1=NSQUAREDSO+1)
80
80
C     The total number of loop reduction libraries
81
 
C     At present, there are only CutTools,PJFry++,IREGI,Golem95,Samurai
82
 
C     , Ninja and COLLIER
 
81
C     At present, there are only
 
82
C      CutTools,PJFry++,IREGI,Golem95,Samurai, Ninja and COLLIER
83
83
      INTEGER NLOOPLIB
84
84
      PARAMETER (NLOOPLIB=7)
85
85
C     Only CutTools or possibly Ninja (if installed with qp support)
404
404
C      reading the parameters
405
405
      LOGICAL FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION,
406
406
     $  FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
407
 
      LOGICAL COLLIER_UV_POLE_COMPUTATION_CHOICE, COLLIER_IR_POLE_COMPU
408
 
     $TATION_CHOICE
 
407
      LOGICAL COLLIER_UV_POLE_COMPUTATION_CHOICE,
 
408
     $  COLLIER_IR_POLE_COMPUTATION_CHOICE
409
409
      DATA  FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION
410
410
     $ ,FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION/.FALSE.,.FALSE./
411
 
      COMMON/COLLIERPOLESFORCEDCHOICE/FORCED_CHOICE_OF_COLLIER_UV_POLE_
412
 
     $COMPUTATION, FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
413
 
     $ ,COLLIER_UV_POLE_COMPUTATION_CHOICE,COLLIER_IR_POLE_COMPUTATION_
414
 
     $CHOICE
 
411
      COMMON/COLLIERPOLESFORCEDCHOICE
 
412
     $ /FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION,
 
413
     $  FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
 
414
     $ ,COLLIER_UV_POLE_COMPUTATION_CHOICE
 
415
     $ ,COLLIER_IR_POLE_COMPUTATION_CHOICE
415
416
 
416
417
C     This variable controls the general initialization which is
417
418
C      *common* between all MadLoop SubProcesses.
880
881
     $ +P(2,2))**2-(P(3,1)+P(3,2))**2))
881
882
 
882
883
      CTCALL_REQ_SO_DONE=.FALSE.
883
 
      FILTER_SO = (.NOT.CHECKPHASE).AND.HELDOUBLECHECKED.AND.(SQSO_TARG
884
 
     $ET.NE.-1)
 
884
      FILTER_SO = (.NOT.CHECKPHASE)
 
885
     $ .AND.HELDOUBLECHECKED.AND.(SQSO_TARGET.NE.-1)
885
886
 
886
887
      DO I=1,NLOOPGROUPS
887
888
        DO J=0,LOOPMAXCOEFS-1
920
921
      ENDIF
921
922
 
922
923
      DO H=1,NCOMB
923
 
        IF ((HELPICKED.EQ.H).OR.((HELPICKED.EQ.-1).AND.(CHECKPHASE.OR.(
924
 
     $.NOT.HELDOUBLECHECKED).OR.(GOODHEL(H).GT.-HELOFFSET.AND.GOODHEL(H)
925
 
     $   .NE.0)))) THEN
 
924
        IF ((HELPICKED.EQ.H).OR.((HELPICKED.EQ.-1)
 
925
     $   .AND.(CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.(GOODHEL(H)
 
926
     $   .GT.-HELOFFSET.AND.GOODHEL(H).NE.0)))) THEN
926
927
 
927
928
C         Handle the possible requirement of specific polarizations
928
 
          IF ((.NOT.CHECKPHASE).AND.HELDOUBLECHECKED.AND.POLARIZATIONS(
929
 
     $0,0).EQ.0.AND.(.NOT.IS_HEL_SELECTED(H))) THEN
 
929
          IF ((.NOT.CHECKPHASE)
 
930
     $     .AND.HELDOUBLECHECKED.AND.POLARIZATIONS(0,0)
 
931
     $     .EQ.0.AND.(.NOT.IS_HEL_SELECTED(H))) THEN
930
932
            CYCLE
931
933
          ENDIF
932
934
 
1164
1166
C             Of course if it is one, then we do not need to do
1165
1167
C              anything (because with HELINITSTARTOVER=.FALSE. we only
1166
1168
C              support exactly identical Hels.)
1167
 
              IF(GOODHEL(HELPICKED).GT.-HELOFFSET.AND.GOODHEL(HELPICKED)
1168
 
     $         .NE.1) THEN
 
1169
              IF(GOODHEL(HELPICKED).GT.
 
1170
     $         -HELOFFSET.AND.GOODHEL(HELPICKED).NE.1) THEN
1169
1171
                NEWHELREF=-1
1170
1172
                DO H=1,NCOMB
1171
1173
                  IF (GOODHEL(H).EQ.(-HELOFFSET-HELPICKED)) THEN
1359
1361
 
1360
1362
        CTMODE=BASIC_CT_MODE
1361
1363
 
1362
 
        IF(.NOT.EVAL_DONE(3).AND. ((DOING_QP_EVALS.AND.NROTATIONS_QP.GE
1363
 
     $.1).OR.((.NOT.DOING_QP_EVALS).AND.NROTATIONS_DP.GE.1)) ) THEN
 
1364
        IF(.NOT.EVAL_DONE(3).AND.
 
1365
     $    ((DOING_QP_EVALS.AND.NROTATIONS_QP.GE.1)
 
1366
     $   .OR.((.NOT.DOING_QP_EVALS).AND.NROTATIONS_DP.GE.1)) ) THEN
1364
1367
          EVAL_DONE(3)=.TRUE.
1365
1368
          CALL ROTATE_PS(PS,P,1)
1366
1369
          IF (DOING_QP_EVALS) CALL MP_ROTATE_PS(MP_PS,MP_P,1)
1367
1370
          GOTO 200
1368
1371
        ENDIF
1369
1372
 
1370
 
        IF(.NOT.EVAL_DONE(4).AND. ((DOING_QP_EVALS.AND.NROTATIONS_QP.GE
1371
 
     $.2).OR.((.NOT.DOING_QP_EVALS).AND.NROTATIONS_DP.GE.2)) ) THEN
 
1373
        IF(.NOT.EVAL_DONE(4).AND.
 
1374
     $    ((DOING_QP_EVALS.AND.NROTATIONS_QP.GE.2)
 
1375
     $   .OR.((.NOT.DOING_QP_EVALS).AND.NROTATIONS_DP.GE.2)) ) THEN
1372
1376
          EVAL_DONE(4)=.TRUE.
1373
1377
          CALL ROTATE_PS(PS,P,2)
1374
1378
          IF (DOING_QP_EVALS) CALL MP_ROTATE_PS(MP_PS,MP_P,2)
1924
1928
C       When using COLLIER with the internal stability test, the first
1925
1929
C        evaluation is typically more reliable so we do not want to
1926
1930
C        use the average but rather the first evaluation.
1927
 
        IF (MLREDUCTIONLIB(I_LIB).EQ.7.AND.COLLIERUSEINTERNALSTABILITYT
1928
 
     $EST) THEN
 
1931
        IF (MLREDUCTIONLIB(I_LIB)
 
1932
     $   .EQ.7.AND.COLLIERUSEINTERNALSTABILITYTEST) THEN
1929
1933
          DO I=1,3
1930
1934
            ESTIMATE(I,K) = FULLLIST(I,K,1)
1931
1935
          ENDDO
2070
2074
 1009   CONTINUE
2071
2075
      ENDDO
2072
2076
 
2073
 
      WRITE(*,*) 'ERROR:: Stopping function ML5SOINDEX_FOR_SQUARED_ORDE'
2074
 
     $ //'RS'
 
2077
      WRITE(*,*) 'ERROR:: Stopping function'
 
2078
     $ //' ML5SOINDEX_FOR_SQUARED_ORDERS'
2075
2079
      WRITE(*,*) 'Could not find squared orders ',(ORDERS(I),I=1,NSO)
2076
2080
      STOP
2077
2081
 
2170
2174
C     BEGIN CODE
2171
2175
C     
2172
2176
      DO I=1,NSO
2173
 
        SQORDERS(I)=AMPSPLITORDERS(ORDERINDEXA,I)+AMPSPLITORDERS(ORDERI
2174
 
     $NDEXB,I)
 
2177
        SQORDERS(I)=AMPSPLITORDERS(ORDERINDEXA,I)
 
2178
     $   +AMPSPLITORDERS(ORDERINDEXB,I)
2175
2179
      ENDDO
2176
2180
      ML5SQSOINDEX=ML5SOINDEX_FOR_SQUARED_ORDERS(SQORDERS)
2177
2181
      END
2209
2213
        RETURN
2210
2214
      ENDIF
2211
2215
 
2212
 
      WRITE(*,*) 'ERROR:: Stopping function ML5GET_SQUARED_ORDERS_FOR_S'
2213
 
     $ //'OINDEX'
 
2216
      WRITE(*,*) 'ERROR:: Stopping function'
 
2217
     $ //' ML5GET_SQUARED_ORDERS_FOR_SOINDEX'
2214
2218
      WRITE(*,*) 'Could not find squared orders index ',SOINDEX
2215
2219
      STOP
2216
2220
 
2249
2253
        RETURN
2250
2254
      ENDIF
2251
2255
 
2252
 
      WRITE(*,*) 'ERROR:: Stopping function ML5GET_ORDERS_FOR_AMPSOINDE'
2253
 
     $ //'X'
 
2256
      WRITE(*,*) 'ERROR:: Stopping function'
 
2257
     $ //' ML5GET_ORDERS_FOR_AMPSOINDEX'
2254
2258
      WRITE(*,*) 'Could not find amplitude split orders index ',SOINDEX
2255
2259
      STOP
2256
2260
 
2315
2319
 
2316
2320
      LOGICAL FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION,
2317
2321
     $  FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
2318
 
      LOGICAL COLLIER_UV_POLE_COMPUTATION_CHOICE, COLLIER_IR_POLE_COMPU
2319
 
     $TATION_CHOICE
2320
 
      COMMON/COLLIERPOLESFORCEDCHOICE/FORCED_CHOICE_OF_COLLIER_UV_POLE_
2321
 
     $COMPUTATION, FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
2322
 
     $ ,COLLIER_UV_POLE_COMPUTATION_CHOICE,COLLIER_IR_POLE_COMPUTATION_
2323
 
     $CHOICE
 
2322
      LOGICAL COLLIER_UV_POLE_COMPUTATION_CHOICE,
 
2323
     $  COLLIER_IR_POLE_COMPUTATION_CHOICE
 
2324
      COMMON/COLLIERPOLESFORCEDCHOICE
 
2325
     $ /FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION,
 
2326
     $  FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
 
2327
     $ ,COLLIER_UV_POLE_COMPUTATION_CHOICE
 
2328
     $ ,COLLIER_IR_POLE_COMPUTATION_CHOICE
2324
2329
 
2325
2330
      COLLIERCOMPUTEUVPOLES                        = ONOFF
2326
2331
C     This is just so that if we read the param again, we don't
2342
2347
 
2343
2348
      LOGICAL FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION,
2344
2349
     $  FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
2345
 
      LOGICAL COLLIER_UV_POLE_COMPUTATION_CHOICE, COLLIER_IR_POLE_COMPU
2346
 
     $TATION_CHOICE
2347
 
      COMMON/COLLIERPOLESFORCEDCHOICE/FORCED_CHOICE_OF_COLLIER_UV_POLE_
2348
 
     $COMPUTATION, FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
2349
 
     $ ,COLLIER_UV_POLE_COMPUTATION_CHOICE,COLLIER_IR_POLE_COMPUTATION_
2350
 
     $CHOICE
 
2350
      LOGICAL COLLIER_UV_POLE_COMPUTATION_CHOICE,
 
2351
     $  COLLIER_IR_POLE_COMPUTATION_CHOICE
 
2352
      COMMON/COLLIERPOLESFORCEDCHOICE
 
2353
     $ /FORCED_CHOICE_OF_COLLIER_UV_POLE_COMPUTATION,
 
2354
     $  FORCED_CHOICE_OF_COLLIER_IR_POLE_COMPUTATION
 
2355
     $ ,COLLIER_UV_POLE_COMPUTATION_CHOICE
 
2356
     $ ,COLLIER_IR_POLE_COMPUTATION_CHOICE
2351
2357
 
2352
2358
      COLLIERCOMPUTEIRPOLES         = ONOFF
2353
2359
C     This is just so that if we read the param again, we don't