DevelopmentPage/MultiParton: matrix2.f

File matrix2.f, 21.7 KB (added by Fabio Maltoni, 14 years ago)

This is an example of a different format for matrix.f that wil allow compilation even for high multiplicities

Line 
1 SUBROUTINE SMATRIX(P1,ANS)
2C
3C Generated by MadGraph II
4C MadGraph StandAlone Version
5C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
6C AND HELICITIES
7C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL)
8C
9C FOR PROCESS : g g -> g g g
10C
11C Crossing 1 is g g -> g g g
12 IMPLICIT NONE
13C
14C CONSTANTS
15C
16 include "nexternal.inc"
17 INTEGER NCOMB, NCROSS
18 PARAMETER ( NCOMB= 32, NCROSS= 1)
19 INTEGER THEL
20 PARAMETER (THEL=NCOMB*NCROSS)
21C
22C ARGUMENTS
23C
24 REAL*8 P1(0:3,NEXTERNAL),ANS(NCROSS)
25C
26C LOCAL VARIABLES
27C
28 INTEGER NHEL(NEXTERNAL,NCOMB),NTRY
29 REAL*8 T, P(0:3,NEXTERNAL)
30 REAL*8 MATRIX
31 INTEGER IHEL,IDEN(NCROSS),IC(NEXTERNAL,NCROSS)
32 INTEGER IPROC,JC(NEXTERNAL), I
33 LOGICAL GOODHEL(NCOMB,NCROSS)
34 DATA NTRY/0/
35 DATA GOODHEL/THEL*.FALSE./
36 DATA (NHEL(IHEL, 1),IHEL=1, 5) /-1,-1,-1,-1,-1/
37 DATA (NHEL(IHEL, 2),IHEL=1, 5) /-1,-1,-1,-1, 1/
38 DATA (NHEL(IHEL, 3),IHEL=1, 5) /-1,-1,-1, 1,-1/
39 DATA (NHEL(IHEL, 4),IHEL=1, 5) /-1,-1,-1, 1, 1/
40 DATA (NHEL(IHEL, 5),IHEL=1, 5) /-1,-1, 1,-1,-1/
41 DATA (NHEL(IHEL, 6),IHEL=1, 5) /-1,-1, 1,-1, 1/
42 DATA (NHEL(IHEL, 7),IHEL=1, 5) /-1,-1, 1, 1,-1/
43 DATA (NHEL(IHEL, 8),IHEL=1, 5) /-1,-1, 1, 1, 1/
44 DATA (NHEL(IHEL, 9),IHEL=1, 5) /-1, 1,-1,-1,-1/
45 DATA (NHEL(IHEL, 10),IHEL=1, 5) /-1, 1,-1,-1, 1/
46 DATA (NHEL(IHEL, 11),IHEL=1, 5) /-1, 1,-1, 1,-1/
47 DATA (NHEL(IHEL, 12),IHEL=1, 5) /-1, 1,-1, 1, 1/
48 DATA (NHEL(IHEL, 13),IHEL=1, 5) /-1, 1, 1,-1,-1/
49 DATA (NHEL(IHEL, 14),IHEL=1, 5) /-1, 1, 1,-1, 1/
50 DATA (NHEL(IHEL, 15),IHEL=1, 5) /-1, 1, 1, 1,-1/
51 DATA (NHEL(IHEL, 16),IHEL=1, 5) /-1, 1, 1, 1, 1/
52 DATA (NHEL(IHEL, 17),IHEL=1, 5) / 1,-1,-1,-1,-1/
53 DATA (NHEL(IHEL, 18),IHEL=1, 5) / 1,-1,-1,-1, 1/
54 DATA (NHEL(IHEL, 19),IHEL=1, 5) / 1,-1,-1, 1,-1/
55 DATA (NHEL(IHEL, 20),IHEL=1, 5) / 1,-1,-1, 1, 1/
56 DATA (NHEL(IHEL, 21),IHEL=1, 5) / 1,-1, 1,-1,-1/
57 DATA (NHEL(IHEL, 22),IHEL=1, 5) / 1,-1, 1,-1, 1/
58 DATA (NHEL(IHEL, 23),IHEL=1, 5) / 1,-1, 1, 1,-1/
59 DATA (NHEL(IHEL, 24),IHEL=1, 5) / 1,-1, 1, 1, 1/
60 DATA (NHEL(IHEL, 25),IHEL=1, 5) / 1, 1,-1,-1,-1/
61 DATA (NHEL(IHEL, 26),IHEL=1, 5) / 1, 1,-1,-1, 1/
62 DATA (NHEL(IHEL, 27),IHEL=1, 5) / 1, 1,-1, 1,-1/
63 DATA (NHEL(IHEL, 28),IHEL=1, 5) / 1, 1,-1, 1, 1/
64 DATA (NHEL(IHEL, 29),IHEL=1, 5) / 1, 1, 1,-1,-1/
65 DATA (NHEL(IHEL, 30),IHEL=1, 5) / 1, 1, 1,-1, 1/
66 DATA (NHEL(IHEL, 31),IHEL=1, 5) / 1, 1, 1, 1,-1/
67 DATA (NHEL(IHEL, 32),IHEL=1, 5) / 1, 1, 1, 1, 1/
68 DATA ( IC(IHEL, 1),IHEL=1, 5) / 1, 2, 3, 4, 5/
69 DATA (IDEN(IHEL),IHEL= 1, 1) /1536/
70C ----------
71C BEGIN CODE
72C ----------
73 NTRY=NTRY+1
74 DO IPROC=1,NCROSS
75 CALL SWITCHMOM(P1,P,IC(1,IPROC),JC,NEXTERNAL)
76 DO IHEL=1,NEXTERNAL
77 JC(IHEL) = +1
78 ENDDO
79 ANS(IPROC) = 0D0
80 DO IHEL=1,NCOMB
81 IF (GOODHEL(IHEL,IPROC) .OR. NTRY .LT. 2) THEN
82 T=MATRIX(P ,NHEL(1,IHEL),JC(1))
83 ANS(IPROC)=ANS(IPROC)+T
84 IF (T .NE. 0D0 .AND. .NOT. GOODHEL(IHEL,IPROC)) THEN
85 GOODHEL(IHEL,IPROC)=.TRUE.
86 ENDIF
87 ENDIF
88 ENDDO
89 ANS(IPROC)=ANS(IPROC)/DBLE(IDEN(IPROC))
90 ENDDO
91 END
92
93
94 REAL*8 FUNCTION MATRIX(P,NHEL,IC)
95C
96C Generated by MadGraph II
97C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
98C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL)
99C
100C FOR PROCESS : g g -> g g g
101C
102 IMPLICIT NONE
103C
104C CONSTANTS
105C
106 INTEGER NGRAPHS, NEIGEN
107 PARAMETER (NGRAPHS= 45,NEIGEN= 24)
108 include "nexternal.inc"
109 INTEGER NWAVEFUNCS , NCOLOR
110 PARAMETER (NWAVEFUNCS= 41, NCOLOR= 24)
111 REAL*8 ZERO
112 PARAMETER (ZERO=0D0)
113C
114C ARGUMENTS
115C
116 REAL*8 P(0:3,NEXTERNAL)
117 INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL)
118C
119C LOCAL VARIABLES
120C
121 INTEGER I,J
122 COMPLEX*16 ZTEMP
123 REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
124 COMPLEX*16 AMP(NGRAPHS), JAMP(NCOLOR),COL_AMP
125 EXTERNAL COL_AMP
126 COMPLEX*16 W(18,NWAVEFUNCS)
127C
128C GLOBAL VARIABLES
129C
130 include "coupl.inc"
131C
132C COLOR DATA
133C
134 DATA Denom(1 )/ 108/
135 DATA (CF(i,1 ),i=1 ,6 ) / 455, -58, 14, 68, -58, -4/
136 DATA (CF(i,1 ),i=7 ,12 ) / 68, -40, 68, 68, 14, -4/
137 DATA (CF(i,1 ),i=13 ,18 ) / -58, -58, -4, 14, 14, 68/
138 DATA (CF(i,1 ),i=19 ,24 ) / -58, -4, -4, 14, 5, 5/
139C F[1, 5, 2, 3, 4]
140 DATA Denom(2 )/ 108/
141 DATA (CF(i,2 ),i=1 ,6 ) / -58, 455, 68, 14, -4, -58/
142 DATA (CF(i,2 ),i=7 ,12 ) / -40, 68, 14, -4, -58, 68/
143 DATA (CF(i,2 ),i=13 ,18 ) / 14, -4, -58, 68, -58, -4/
144 DATA (CF(i,2 ),i=19 ,24 ) / 14, 68, 5, 5, -4, 14/
145C F[1, 5, 3, 2, 4]
146 DATA Denom(3 )/ 108/
147 DATA (CF(i,3 ),i=1 ,6 ) / 14, 68, 455, -58, 68, -40/
148 DATA (CF(i,3 ),i=7 ,12 ) / -58, -4, 68, 5, -4, 14/
149 DATA (CF(i,3 ),i=13 ,18 ) / 5, -58, -4, 14, 14, 68/
150 DATA (CF(i,3 ),i=19 ,24 ) / -58, -4, 14, -4, -58, 68/
151C F[1, 5, 4, 2, 3]
152 DATA Denom(4 )/ 108/
153 DATA (CF(i,4 ),i=1 ,6 ) / 68, 14, -58, 455, -40, 68/
154 DATA (CF(i,4 ),i=7 ,12 ) / -4, -58, 14, 14, 5, 5/
155 DATA (CF(i,4 ),i=13 ,18 ) / -4, -4, -58, 68, -58, -4/
156 DATA (CF(i,4 ),i=19 ,24 ) / 14, 68, -58, 68, 14, -4/
157C F[1, 5, 4, 3, 2]
158 DATA Denom(5 )/ 108/
159 DATA (CF(i,5 ),i=1 ,6 ) / -58, -4, 68, -40, 455, -58/
160 DATA (CF(i,5 ),i=7 ,12 ) / 14, 68, -4, -4, 5, 5/
161 DATA (CF(i,5 ),i=13 ,18 ) / 14, 14, 68, -58, 68, 14/
162 DATA (CF(i,5 ),i=19 ,24 ) / -4, -58, 68, -58, -4, 14/
163C F[1, 2, 3, 4, 5]
164 DATA Denom(6 )/ 108/
165 DATA (CF(i,6 ),i=1 ,6 ) / -4, -58, -40, 68, -58, 455/
166 DATA (CF(i,6 ),i=7 ,12 ) / 68, 14, -58, 5, 14, -4/
167 DATA (CF(i,6 ),i=13 ,18 ) / 5, 68, 14, -4, -4, -58/
168 DATA (CF(i,6 ),i=19 ,24 ) / 68, 14, -4, 14, 68, -58/
169C F[1, 3, 2, 4, 5]
170 DATA Denom(7 )/ 108/
171 DATA (CF(i,7 ),i=1 ,6 ) / 68, -40, -58, -4, 14, 68/
172 DATA (CF(i,7 ),i=7 ,12 ) / 455, -58, -4, 14, 68, -58/
173 DATA (CF(i,7 ),i=13 ,18 ) / -4, 14, 68, -58, 68, 14/
174 DATA (CF(i,7 ),i=19 ,24 ) / -4, -58, 5, 5, 14, -4/
175C F[1, 4, 2, 3, 5]
176 DATA Denom(8 )/ 108/
177 DATA (CF(i,8 ),i=1 ,6 ) / -40, 68, -4, -58, 68, 14/
178 DATA (CF(i,8 ),i=7 ,12 ) / -58, 455, -58, -58, -4, 14/
179 DATA (CF(i,8 ),i=13 ,18 ) / 68, 68, 14, -4, -4, -58/
180 DATA (CF(i,8 ),i=19 ,24 ) / 68, 14, 14, -4, 5, 5/
181C F[1, 4, 3, 2, 5]
182 DATA Denom(9 )/ 108/
183 DATA (CF(i,9 ),i=1 ,6 ) / 68, 14, 68, 14, -4, -58/
184 DATA (CF(i,9 ),i=7 ,12 ) / -4, -58, 455, -4, -58, 68/
185 DATA (CF(i,9 ),i=13 ,18 ) / 14, -40, 68, -58, 5, 14/
186 DATA (CF(i,9 ),i=19 ,24 ) / -4, 5, -58, 68, 14, -4/
187C F[1, 3, 2, 5, 4]
188 DATA Denom(10 )/ 108/
189 DATA (CF(i,10 ),i=1 ,6 ) / 68, -4, 5, 14, -4, 5/
190 DATA (CF(i,10 ),i=7 ,12 ) / 14, -58, -4, 455, -58, 68/
191 DATA (CF(i,10 ),i=13 ,18 ) / -40, 14, -58, 68, 68, -4/
192 DATA (CF(i,10 ),i=19 ,24 ) / 14, -58, 68, -58, 14, -4/
193C F[1, 4, 3, 5, 2]
194 DATA Denom(11 )/ 108/
195 DATA (CF(i,11 ),i=1 ,6 ) / 14, -58, -4, 5, 5, 14/
196 DATA (CF(i,11 ),i=7 ,12 ) / 68, -4, -58, -58, 455, -40/
197 DATA (CF(i,11 ),i=13 ,18 ) / 68, 68, -4, 14, -4, 68/
198 DATA (CF(i,11 ),i=19 ,24 ) / -58, 14, -4, 14, -58, 68/
199C F[1, 3, 5, 2, 4]
200 DATA Denom(12 )/ 108/
201 DATA (CF(i,12 ),i=1 ,6 ) / -4, 68, 14, 5, 5, -4/
202 DATA (CF(i,12 ),i=7 ,12 ) / -58, 14, 68, 68, -40, 455/
203 DATA (CF(i,12 ),i=13 ,18 ) / -58, -58, 14, -4, 14, -58/
204 DATA (CF(i,12 ),i=19 ,24 ) / 68, -4, 14, -4, 68, -58/
205C F[1, 4, 2, 5, 3]
206 DATA Denom(13 )/ 108/
207 DATA (CF(i,13 ),i=1 ,6 ) / -58, 14, 5, -4, 14, 5/
208 DATA (CF(i,13 ),i=7 ,12 ) / -4, 68, 14, -40, 68, -58/
209 DATA (CF(i,13 ),i=13 ,18 ) / 455, -4, 68, -58, -58, 14/
210 DATA (CF(i,13 ),i=19 ,24 ) / -4, 68, -58, 68, -4, 14/
211C F[1, 2, 5, 3, 4]
212 DATA Denom(14 )/ 108/
213 DATA (CF(i,14 ),i=1 ,6 ) / -58, -4, -58, -4, 14, 68/
214 DATA (CF(i,14 ),i=7 ,12 ) / 14, 68, -40, 14, 68, -58/
215 DATA (CF(i,14 ),i=13 ,18 ) / -4, 455, -58, 68, 5, -4/
216 DATA (CF(i,14 ),i=19 ,24 ) / 14, 5, 68, -58, -4, 14/
217C F[1, 4, 5, 2, 3]
218 DATA Denom(15 )/ 108/
219 DATA (CF(i,15 ),i=1 ,6 ) / -4, -58, -4, -58, 68, 14/
220 DATA (CF(i,15 ),i=7 ,12 ) / 68, 14, 68, -58, -4, 14/
221 DATA (CF(i,15 ),i=13 ,18 ) / 68, -58, 455, -40, 14, 5/
222 DATA (CF(i,15 ),i=19 ,24 ) / 5, -4, -4, 14, 68, -58/
223C F[1, 4, 5, 3, 2]
224 DATA Denom(16 )/ 108/
225 DATA (CF(i,16 ),i=1 ,6 ) / 14, 68, 14, 68, -58, -4/
226 DATA (CF(i,16 ),i=7 ,12 ) / -58, -4, -58, 68, 14, -4/
227 DATA (CF(i,16 ),i=13 ,18 ) / -58, 68, -40, 455, -4, 5/
228 DATA (CF(i,16 ),i=19 ,24 ) / 5, 14, 14, -4, -58, 68/
229C F[1, 2, 3, 5, 4]
230 DATA Denom(17 )/ 108/
231 DATA (CF(i,17 ),i=1 ,6 ) / 14, -58, 14, -58, 68, -4/
232 DATA (CF(i,17 ),i=7 ,12 ) / 68, -4, 5, 68, -4, 14/
233 DATA (CF(i,17 ),i=13 ,18 ) / -58, 5, 14, -4, 455, -58/
234 DATA (CF(i,17 ),i=19 ,24 ) / 68, -40, -4, 14, -58, 68/
235C F[1, 5, 3, 4, 2]
236 DATA Denom(18 )/ 108/
237 DATA (CF(i,18 ),i=1 ,6 ) / 68, -4, 68, -4, 14, -58/
238 DATA (CF(i,18 ),i=7 ,12 ) / 14, -58, 14, -4, 68, -58/
239 DATA (CF(i,18 ),i=13 ,18 ) / 14, -4, 5, 5, -58, 455/
240 DATA (CF(i,18 ),i=19 ,24 ) / -40, 68, 68, -58, 14, -4/
241C F[1, 3, 4, 2, 5]
242 DATA Denom(19 )/ 108/
243 DATA (CF(i,19 ),i=1 ,6 ) / -58, 14, -58, 14, -4, 68/
244 DATA (CF(i,19 ),i=7 ,12 ) / -4, 68, -4, 14, -58, 68/
245 DATA (CF(i,19 ),i=13 ,18 ) / -4, 14, 5, 5, 68, -40/
246 DATA (CF(i,19 ),i=19 ,24 ) / 455, -58, -58, 68, -4, 14/
247C F[1, 5, 2, 4, 3]
248 DATA Denom(20 )/ 108/
249 DATA (CF(i,20 ),i=1 ,6 ) / -4, 68, -4, 68, -58, 14/
250 DATA (CF(i,20 ),i=7 ,12 ) / -58, 14, 5, -58, 14, -4/
251 DATA (CF(i,20 ),i=13 ,18 ) / 68, 5, -4, 14, -40, 68/
252 DATA (CF(i,20 ),i=19 ,24 ) / -58, 455, 14, -4, 68, -58/
253C F[1, 2, 4, 3, 5]
254 DATA Denom(21 )/ 108/
255 DATA (CF(i,21 ),i=1 ,6 ) / -4, 5, 14, -58, 68, -4/
256 DATA (CF(i,21 ),i=7 ,12 ) / 5, 14, -58, 68, -4, 14/
257 DATA (CF(i,21 ),i=13 ,18 ) / -58, 68, -4, 14, -4, 68/
258 DATA (CF(i,21 ),i=19 ,24 ) / -58, 14, 455, -40, 68, -58/
259C F[1, 2, 5, 4, 3]
260 DATA Denom(22 )/ 108/
261 DATA (CF(i,22 ),i=1 ,6 ) / 14, 5, -4, 68, -58, 14/
262 DATA (CF(i,22 ),i=7 ,12 ) / 5, -4, 68, -58, 14, -4/
263 DATA (CF(i,22 ),i=13 ,18 ) / 68, -58, 14, -4, 14, -58/
264 DATA (CF(i,22 ),i=19 ,24 ) / 68, -4, -40, 455, -58, 68/
265C F[1, 3, 4, 5, 2]
266 DATA Denom(23 )/ 108/
267 DATA (CF(i,23 ),i=1 ,6 ) / 5, -4, -58, 14, -4, 68/
268 DATA (CF(i,23 ),i=7 ,12 ) / 14, 5, 14, 14, -58, 68/
269 DATA (CF(i,23 ),i=13 ,18 ) / -4, -4, 68, -58, -58, 14/
270 DATA (CF(i,23 ),i=19 ,24 ) / -4, 68, 68, -58, 455, -40/
271C F[1, 3, 5, 4, 2]
272 DATA Denom(24 )/ 108/
273 DATA (CF(i,24 ),i=1 ,6 ) / 5, 14, 68, -4, 14, -58/
274 DATA (CF(i,24 ),i=7 ,12 ) / -4, 5, -4, -4, 68, -58/
275 DATA (CF(i,24 ),i=13 ,18 ) / 14, 14, -58, 68, 68, -4/
276 DATA (CF(i,24 ),i=19 ,24 ) / 14, -58, -58, 68, -40, 455/
277
278
279 do i=1,ncolor
280 JAMP(I)=COL_AMP(P,NHEL,IC,I)
281 enddo
282
283 MATRIX = 0.D0
284 DO I = 1, NCOLOR
285 ZTEMP = (0.D0,0.D0)
286 DO J = 1, NCOLOR
287 ZTEMP = ZTEMP + CF(J,I)*JAMP(J)
288 ENDDO
289 MATRIX =MATRIX+ZTEMP*DCONJG(JAMP(I))/DENOM(I)
290 ENDDO
291C CALL GAUGECHECK(JAMP,ZTEMP,EIGEN_VEC,EIGEN_VAL,NCOLOR,NEIGEN)
292 END
293
294
295 COMPLEX*16 FUNCTION COL_AMP(P,NHEL,IC,IND)
296C
297C Generated by MadGraph II
298C RETURNS THE COLOR ORDERED AMPLITUDE
299C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL)
300C
301C FOR PROCESS : g g -> g g g
302C
303 IMPLICIT NONE
304C
305C CONSTANTS
306C
307 INTEGER NGRAPHS, NEIGEN
308 PARAMETER (NGRAPHS= 45,NEIGEN= 24)
309 include "nexternal.inc"
310 INTEGER NWAVEFUNCS , NCOLOR
311 PARAMETER (NWAVEFUNCS= 41, NCOLOR= 24)
312 REAL*8 ZERO
313 PARAMETER (ZERO=0D0)
314C
315C ARGUMENTS
316C
317 REAL*8 P(0:3,NEXTERNAL)
318 INTEGER NHEL(NEXTERNAL), IC(NEXTERNAL),IND
319C
320C LOCAL VARIABLES
321C
322 COMPLEX*16 AMP(NGRAPHS)
323 COMPLEX*16 W(18,NWAVEFUNCS)
324 INTEGER PERM(NEXTERNAL,NCOLOR),I
325C
326C GLOBAL VARIABLES
327C
328 include "coupl.inc"
329
330 DATA (PERM(I,1),I=1,NEXTERNAL)/1, 5, 2, 3, 4/
331 DATA (PERM(I,2),I=1,NEXTERNAL)/1, 5, 3, 2, 4/
332 DATA (PERM(I,3),I=1,NEXTERNAL)/1, 5, 4, 2, 3/
333 DATA (PERM(I,4),I=1,NEXTERNAL)/1, 5, 4, 3, 2/
334 DATA (PERM(I,5),I=1,NEXTERNAL)/1, 2, 3, 4, 5/
335 DATA (PERM(I,6),I=1,NEXTERNAL)/1, 3, 2, 4, 5/
336 DATA (PERM(I,7),I=1,NEXTERNAL)/1, 4, 2, 3, 5/
337 DATA (PERM(I,8),I=1,NEXTERNAL)/1, 4, 3, 2, 5/
338 DATA (PERM(I,9),I=1,NEXTERNAL)/1, 3, 2, 5, 4/
339 DATA (PERM(I,10),I=1,NEXTERNAL)/1, 4, 3, 5, 2/
340 DATA (PERM(I,11),I=1,NEXTERNAL)/1, 3, 5, 2, 4/
341 DATA (PERM(I,12),I=1,NEXTERNAL)/1, 4, 2, 5, 3/
342 DATA (PERM(I,13),I=1,NEXTERNAL)/1, 2, 5, 3, 4/
343 DATA (PERM(I,14),I=1,NEXTERNAL)/1, 4, 5, 2, 3/
344 DATA (PERM(I,15),I=1,NEXTERNAL)/1, 4, 5, 3, 2/
345 DATA (PERM(I,16),I=1,NEXTERNAL)/1, 2, 3, 5, 4/
346 DATA (PERM(I,17),I=1,NEXTERNAL)/1, 5, 3, 4, 2/
347 DATA (PERM(I,18),I=1,NEXTERNAL)/1, 3, 4, 2, 5/
348 DATA (PERM(I,19),I=1,NEXTERNAL)/1, 5, 2, 4, 3/
349 DATA (PERM(I,20),I=1,NEXTERNAL)/1, 2, 4, 3, 5/
350 DATA (PERM(I,21),I=1,NEXTERNAL)/1, 2, 5, 4, 3/
351 DATA (PERM(I,22),I=1,NEXTERNAL)/1, 3, 4, 5, 2/
352 DATA (PERM(I,23),I=1,NEXTERNAL)/1, 3, 5, 4, 2/
353 DATA (PERM(I,24),I=1,NEXTERNAL)/1, 2, 4, 5, 3/
354
355C ----------
356C BEGIN CODE
357C ----------
358 write (*,*) ind, (perm(i,IND),i=1,nexternal)
359 CALL VXXXXX(P(0,PERM(1,IND) ),ZERO ,NHEL(PERM(1,IND) ),-1*IC(PERM(1,IND) ),W(1,1 ))
360 CALL VXXXXX(P(0,PERM(2,IND) ),ZERO ,NHEL(PERM(2,IND) ),-1*IC(PERM(2,IND) ),W(1,2 ))
361 CALL VXXXXX(P(0,PERM(3,IND) ),ZERO ,NHEL(PERM(3,IND) ),+1*IC(PERM(3,IND) ),W(1,3 ))
362 CALL VXXXXX(P(0,PERM(4,IND) ),ZERO ,NHEL(PERM(4,IND) ),+1*IC(PERM(4,IND) ),W(1,4 ))
363 CALL VXXXXX(P(0,PERM(5,IND) ),ZERO ,NHEL(PERM(5,IND) ),+1*IC(PERM(5,IND) ),W(1,5 ))
364
365 CALL JVVXXX(W(1,3 ),W(1,2 ),G ,ZERO ,ZERO ,W(1,6 ))
366 CALL JVVXXX(W(1,4 ),W(1,6 ),G ,ZERO ,ZERO ,W(1,7 ))
367 CALL VVVXXX(W(1,5 ),W(1,1 ),W(1,7 ),G ,AMP(1 ))
368 CALL JVVXXX(W(1,6 ),W(1,1 ),G ,ZERO ,ZERO ,W(1,11 ))
369 CALL JVVXXX(W(1,5 ),W(1,1 ),G ,ZERO ,ZERO ,W(1,16 ))
370 CALL VVVXXX(W(1,5 ),W(1,4 ),W(1,11 ),G ,AMP(4 ))
371 CALL GGGGXX(W(1,6 ),W(1,4 ),W(1,1 ),W(1,5 ),G ,AMP(9 ))
372 CALL GGGGXX(W(1,1 ),W(1,6 ),W(1,4 ),W(1,5 ),G ,AMP(10 ))
373 CALL JVVXXX(W(1,4 ),W(1,3 ),G ,ZERO ,ZERO ,W(1,23 ))
374 CALL VVVXXX(W(1,16 ),W(1,2 ),W(1,23 ),G ,AMP(23 ))
375 CALL JVVXXX(W(1,1 ),W(1,2 ),G ,ZERO ,ZERO ,W(1,24 ))
376 CALL JVVXXX(W(1,24 ),W(1,3 ),G ,ZERO ,ZERO ,W(1,26 ))
377 CALL VVVXXX(W(1,5 ),W(1,4 ),W(1,26 ),G ,AMP(26 ))
378 CALL JGGGXX(W(1,1 ),W(1,2 ),W(1,5 ),G ,W(1,27 ))
379 CALL VVVXXX(W(1,4 ),W(1,3 ),W(1,27 ),G ,AMP(27 ))
380 CALL JGGGXX(W(1,5 ),W(1,1 ),W(1,2 ),G ,W(1,28 ))
381 CALL VVVXXX(W(1,4 ),W(1,3 ),W(1,28 ),G ,AMP(28 ))
382 CALL GGGGXX(W(1,4 ),W(1,3 ),W(1,24 ),W(1,5 ),G ,AMP(30 ))
383 CALL GGGGXX(W(1,3 ),W(1,24 ),W(1,4 ),W(1,5 ),G ,AMP(32 ))
384 CALL VVVXXX(W(1,5 ),W(1,24 ),W(1,23 ),G ,AMP(33 ))
385 CALL JGGGXX(W(1,3 ),W(1,4 ),W(1,2 ),G ,W(1,31 ))
386 CALL VVVXXX(W(1,5 ),W(1,1 ),W(1,31 ),G ,AMP(35 ))
387 CALL JGGGXX(W(1,2 ),W(1,3 ),W(1,4 ),G ,W(1,32 ))
388 CALL VVVXXX(W(1,5 ),W(1,1 ),W(1,32 ),G ,AMP(36 ))
389 CALL JGGGXX(W(1,1 ),W(1,2 ),W(1,3 ),G ,W(1,39 ))
390 CALL VVVXXX(W(1,5 ),W(1,4 ),W(1,39 ),G ,AMP(43 ))
391 CALL JGGGXX(W(1,2 ),W(1,3 ),W(1,1 ),G ,W(1,41 ))
392 CALL VVVXXX(W(1,5 ),W(1,4 ),W(1,41 ),G ,AMP(45 ))
393
394 COL_AMP = 2*( +AMP( 1)-AMP( 4)-AMP( 9)+AMP( 10)
395 & -AMP( 23)-AMP( 26)-AMP( 27)+AMP( 28)-AMP( 30)
396 & +AMP( 32)-AMP( 33)+AMP( 35)-AMP( 36)+AMP( 43)
397 & -AMP( 45))
398
399 RETURN
400 END
401
402
403 subroutine switchmom(p1,p,ic,jc,nexternal)
404 implicit none
405 integer nexternal
406 integer jc(nexternal),ic(nexternal)
407 real*8 p1(0:3,nexternal),p(0:3,nexternal)
408 integer i,j
409 do i=1,nexternal
410 do j=0,3
411 p(j,ic(i))=p1(j,i)
412 enddo
413 enddo
414 do i=1,nexternal
415 jc(i)=1
416 enddo
417 jc(ic(1))=-1
418 jc(ic(2))=-1
419 end