]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/order.F
Message commented out
[u/mrichter/AliRoot.git] / ISAJET / code / order.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE ORDER(ID,MODEIN,MODOUT,MEOUT)
3C
4C Search for mode MODEIN of particle ID in standard /DKYTAB/.
5C If found, return MODOUT = standard order and MEOUT=MELEM.
6C Otherwise return MODOUT = MODEIN and MEOUT=0.
7C If ID<0, use antiparticles instead.
8C
9#if defined(CERNLIB_IMPNONE)
10 IMPLICIT NONE
11#endif
12C
13#include "isajet/itapes.inc"
14#include "isajet/dkytab.inc"
15#include "isajet/force.inc"
16C
17 INTEGER ID,MODEIN(5),MODOUT(5),MODTST(5)
18 INTEGER IFL1,IFL2,IFL3,JSPIN,INDEX,LOOK0,IUSE(5),ISAME,I,J,
19 $NADD,NADDI,K,K1,K2,IDANTI,MEOUT
20C
21C Find standard starting point
22C
23 CALL FLAVOR(ID,IFL1,IFL2,IFL3,JSPIN,INDEX)
24 IF(LOOK(INDEX).GT.0) THEN
25 LOOK0=LOOK(INDEX)
26 ELSEIF(LOOK(INDEX).LT.0) THEN
27 LOOK0=LOOKST(-LOOK(INDEX))
28 ELSE
29 ISAME=0
30 GO TO 300
31 ENDIF
32C
33C Find NADD
34C
35 DO 100 I=1,5
36100 IF(MODEIN(I).NE.0) NADD=I
37C
38C If ID<0, compare antiparticles
39C
40 IF(ID.GE.0) THEN
41 DO 110 K=1,NADD
42110 MODTST(K)=MODEIN(K)
43 ELSE
44 DO 120 K=1,NADD
45120 MODTST(K)=IDANTI(MODEIN(K))
46 ENDIF
47C
48C Scan all modes starting at LOOK0. Check for correct NADD.
49C Then check that particles match in arbitrary order.
50C
51 IF(LOOK0.LE.0) GO TO 300
52 DO 200 I=LOOK0,MXDKY
53 DO 210 K=1,5
54210 IF(MODE(K,I).NE.0) NADDI=K
55 IF(NADDI.EQ.NADD) THEN
56 DO 220 K=1,5
57220 IUSE(K)=0
58C
59 DO 230 K1=1,NADD
60 DO 240 K2=1,NADD
61 IF(MODTST(K1).EQ.MODE(K2,I).AND.IUSE(K2).EQ.0) THEN
62 IUSE(K2)=K1
63 GO TO 230
64 ENDIF
65240 CONTINUE
66 GO TO 201
67230 CONTINUE
68C
69 ISAME=I
70 GO TO 300
71 ENDIF
72201 IF(CBR(I).GE.1.) THEN
73 ISAME=0
74 GO TO 300
75 ENDIF
76200 CONTINUE
77 STOP 99
78C
79C Return matching mode or original mode.
80C
81300 IF(ISAME.EQ.0) THEN
82 WRITE(ITLIS,3001)
833001 FORMAT(' ***** WARNING: NONSTANDARD MODE')
84 DO 310 K=1,5
85310 MODOUT(K)=MODEIN(K)
86 MEOUT=0
87 ELSEIF(ID.GT.0) THEN
88 DO 320 K=1,5
89320 MODOUT(K)=MODE(K,ISAME)
90 MEOUT=MELEM(ISAME)
91 ELSE
92 DO 330 K=1,5
93330 MODOUT(K)=IDANTI(MODE(K,ISAME))
94 MEOUT=MELEM(ISAME)
95 ENDIF
96C
97 RETURN
98 END