~maddevelopers/mg5amcnlo/2.5.4_run_py8_at_evtgen

« back to all changes in this revision

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

  • Committer: olivier Mattelaer
  • Date: 2016-05-12 11:00:18 UTC
  • mfrom: (262.1.150 2.3.4)
  • Revision ID: olivier.mattelaer@uclouvain.be-20160512110018-sevb79f0wm4g8mpp
pass to 2.4.0

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