1
SUBROUTINE INITIALISE(PATH)
8
C the include file with the values of the parameters and masses
15
SUBROUTINE GET_ME(P, ALPHAS, SCALE2, NHEL , ANS,RETURNCODE)
23
C integer nexternal C number particles (incoming+outgoing) in the
25
INCLUDE 'nexternal.inc'
27
C CHARACTER(512) MADLOOPRESOURCEPATH
31
C the include file with the values of the parameters and masses
35
REAL*8 PMASS(NEXTERNAL)
38
INCLUDE 'nsquaredSO.inc'
43
C four momenta. Energy is the zeroth component.
44
REAL*8 P(0:3,NEXTERNAL)
45
INTEGER MATELEM_ARRAY_DIM
46
REAL*8 , ALLOCATABLE :: MATELEM(:,:)
48
INTEGER NSQUAREDSO_LOOP
49
REAL*8 , ALLOCATABLE :: PREC_FOUND(:)
53
DOUBLE PRECISION ALPHAS, SCALE2
54
CF2PY INTENT(OUT) :: ANS
55
CF2PY INTENT(OUT) :: RETURNCODE
56
CF2PY INTENT(IN) :: NHEL
57
CF2PY INTENT(IN) :: P(0:3,NEXTERNAL)
58
CF2PY INTENT(IN) :: ALPHAS
59
CF2PY INTENT(IN) :: SCALE2
65
C This is from ML code for the list of split orders selected by
66
C the process definition
69
CHARACTER*20 CHOSEN_LOOP_SO_INDICES(NSQUAREDSO)
70
LOGICAL CHOSEN_LOOP_SO_CONFIGS(NSQUAREDSO)
71
COMMON/ML5_0_CHOSEN_LOOP_SQSO/CHOSEN_LOOP_SO_CONFIGS
75
CALL ML5_0_FORCE_STABILITY_CHECK(.TRUE.)
76
CALL ML5_0_GET_ANSWER_DIMENSION(MATELEM_ARRAY_DIM)
77
ALLOCATE(MATELEM(0:3,0:MATELEM_ARRAY_DIM))
78
CALL ML5_0_GET_NSQSO_LOOP(NSQUAREDSO_LOOP)
79
ALLOCATE(PREC_FOUND(0:NSQUAREDSO_LOOP))
82
C Start by initializing what is the squared split orders indices
86
IF (CHOSEN_LOOP_SO_CONFIGS(I)) THEN
87
NLOOPCHOSEN=NLOOPCHOSEN+1
88
WRITE(CHOSEN_LOOP_SO_INDICES(NLOOPCHOSEN),'(I3,A2)') I,'L)'
92
C Update the couplings with the new ALPHAS
93
CALL UPDATE_AS_PARAM2(SCALE2, ALPHAS)
96
C Now we can call the matrix element
99
CALL ML5_0_SLOOPMATRIX_THRES(P,MATELEM,-1.0D0, PREC_FOUND,
102
CALL ML5_0_SLOOPMATRIXHEL_THRES(P,NHEL, MATELEM,-1.0D0,
103
$ PREC_FOUND, RETURNCODE)
106
C loop induce -> only finite part