~maddevelopers/mg5amcnlo/2.6.3_rwgt

« back to all changes in this revision

Viewing changes to tests/input_files/IOTestsComparison/TestCmdMatchBox/MatchBoxOutput/%TEST%SubProcesses%P1_uux_uux%f2py_wrapper.f

  • Committer: olivier-mattelaer
  • Date: 2017-08-16 21:28:30 UTC
  • mfrom: (272.1.60 2.5.6)
  • Revision ID: olivier-mattelaer-20170816212830-sfl8jfv8pmpm5l2j
pass to 2.6.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
CF2PY INTENT(IN) :: P(0:3,NEXTERNAL)
58
58
CF2PY INTENT(IN) :: ALPHAS
59
59
CF2PY INTENT(IN) :: SCALE2
60
 
 
61
 
 
 
60
C     
 
61
C     LOCAL BUFFERING OF ANSWER to avoid re-computing
 
62
C     
 
63
      INTEGER BUFFER_SIZE
 
64
      PARAMETER (BUFFER_SIZE=5)
 
65
      DOUBLE PRECISION OLD_ALPHAS(BUFFER_SIZE)
 
66
      DOUBLE PRECISION OLD_SCALE2(BUFFER_SIZE)
 
67
      INTEGER OLD_NHEL(BUFFER_SIZE)
 
68
      DOUBLE PRECISION OLD_P(0:3,NEXTERNAL,BUFFER_SIZE)
 
69
      DOUBLE PRECISION OLD_ME(BUFFER_SIZE)
 
70
      INTEGER OLD_RETURN(BUFFER_SIZE)
 
71
      INTEGER BUFFER_POSITION
 
72
 
 
73
      DATA BUFFER_POSITION /1/
 
74
      SAVE OLD_ALPHAS, OLD_SCALE2, OLD_NHEL, OLD_P, BUFFER_POSITION
 
75
      SAVE OLD_ME, OLD_RETURN
62
76
C     
63
77
C     GLOBAL VARIABLES
64
78
C     
70
84
      LOGICAL CHOSEN_LOOP_SO_CONFIGS(NSQUAREDSO)
71
85
      COMMON/MG5_1_CHOSEN_LOOP_SQSO/CHOSEN_LOOP_SO_CONFIGS
72
86
C     
 
87
C     CHECK BUFFERING
 
88
C     
 
89
      DO I=1, BUFFER_SIZE
 
90
        IF(SCALE2.EQ.OLD_SCALE2(I))THEN
 
91
          IF(ALPHAS.EQ.OLD_ALPHAS(I).AND.NHEL.EQ.OLD_NHEL(I))THEN
 
92
            IF(ALL(P.EQ.OLD_P(:,:,I)))THEN
 
93
              ANS = OLD_ME(I)
 
94
              RETURNCODE = OLD_RETURN(I)
 
95
              RETURN
 
96
            ENDIF
 
97
          ENDIF
 
98
        ENDIF
 
99
      ENDDO
 
100
C     
73
101
C     BEGIN CODE
74
102
C     
75
103
      CALL MG5_1_FORCE_STABILITY_CHECK(.TRUE.)
106
134
C     loop induce -> only finite part 
107
135
      ANS =  MATELEM(1,0)
108
136
 
 
137
C     
 
138
C     Store result for the buffering
 
139
C     
 
140
      OLD_ME(BUFFER_POSITION) = ANS
 
141
      OLD_RETURN(BUFFER_POSITION) = RETURNCODE
 
142
      BUFFER_POSITION = MOD(BUFFER_POSITION, BUFFER_SIZE) +1
 
143
 
109
144
      END
110
145
 
111
146