~maddevelopers/mg5amcnlo/2.5.3

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/ddx_ttx/f2py_wrapper.f

  • Committer: olivier-mattelaer
  • Date: 2017-03-08 12:31:17 UTC
  • Revision ID: olivier-mattelaer-20170308123117-h0zkqjyh9sihsc61
empty version to have an effective freeze of the code

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
      SUBROUTINE INITIALISE(PATH)
2
 
 
3
 
      CHARACTER(128) PATH
4
 
CF2PY intent(in)::path
5
 
 
6
 
C     INCLUDE FILES
7
 
C     
8
 
C     the include file with the values of the parameters and masses   
9
 
C     
10
 
      INCLUDE 'coupl.inc'
11
 
      CALL SETPARA(PATH)
12
 
      RETURN
13
 
      END
14
 
 
15
 
      SUBROUTINE GET_ME(P, ALPHAS, SCALE2, NHEL , ANS,RETURNCODE)
16
 
      IMPLICIT NONE
17
 
C     
18
 
C     CONSTANTS  
19
 
C     
20
 
      REAL*8 ZERO
21
 
      PARAMETER (ZERO=0D0)
22
 
 
23
 
C     integer nexternal C number particles (incoming+outgoing) in the
24
 
C     me 
25
 
      INCLUDE 'nexternal.inc'
26
 
 
27
 
C     CHARACTER(512) MADLOOPRESOURCEPATH
28
 
C     
29
 
C     INCLUDE FILES
30
 
C     
31
 
C     the include file with the values of the parameters and masses   
32
 
C     
33
 
      INCLUDE 'coupl.inc'
34
 
C     particle masses
35
 
      REAL*8 PMASS(NEXTERNAL)
36
 
C     integer    n_max_cg
37
 
      INCLUDE 'ngraphs.inc'
38
 
      INCLUDE 'nsquaredSO.inc'
39
 
 
40
 
C     LOCAL
41
 
C     
42
 
      INTEGER I
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(:,:)
47
 
      INTEGER RETURNCODE
48
 
      INTEGER NSQUAREDSO_LOOP
49
 
      REAL*8 , ALLOCATABLE :: PREC_FOUND(:)
50
 
 
51
 
      DOUBLE PRECISION ANS
52
 
      INTEGER NHEL
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
60
 
 
61
 
 
62
 
C     
63
 
C     GLOBAL VARIABLES
64
 
C     
65
 
C     This is from ML code for the list of split orders selected by
66
 
C     the process definition
67
 
C     
68
 
      INTEGER NLOOPCHOSEN
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
72
 
C     
73
 
C     BEGIN CODE
74
 
C     
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))
80
 
      INCLUDE 'pmass.inc'
81
 
 
82
 
C     Start by initializing what is the squared split orders indices
83
 
C     chosen
84
 
      NLOOPCHOSEN=0
85
 
      DO I=1,NSQUAREDSO
86
 
        IF (CHOSEN_LOOP_SO_CONFIGS(I)) THEN
87
 
          NLOOPCHOSEN=NLOOPCHOSEN+1
88
 
          WRITE(CHOSEN_LOOP_SO_INDICES(NLOOPCHOSEN),'(I3,A2)') I,'L)'
89
 
        ENDIF
90
 
      ENDDO
91
 
 
92
 
C     Update the couplings with the new ALPHAS
93
 
      CALL UPDATE_AS_PARAM2(SCALE2, ALPHAS)
94
 
 
95
 
C     
96
 
C     Now we can call the matrix element
97
 
C     
98
 
      IF (NHEL.EQ.0) THEN
99
 
        CALL ML5_0_SLOOPMATRIX_THRES(P,MATELEM,-1.0D0, PREC_FOUND,
100
 
     $    RETURNCODE)
101
 
      ELSE
102
 
        CALL ML5_0_SLOOPMATRIXHEL_THRES(P,NHEL, MATELEM,-1.0D0,
103
 
     $    PREC_FOUND, RETURNCODE)
104
 
      ENDIF
105
 
 
106
 
C     loop induce -> only finite part 
107
 
      ANS =  MATELEM(1,0)
108
 
 
109
 
      END
110
 
 
111
 
 
112
 
 
113
 
 
114
 
 
115
 
 
116
 
 
117