]>
Commit | Line | Data |
---|---|---|
0795afa3 | 1 | #include "isajet/pilot.h" |
2 | SUBROUTINE ISAJET(JTDKY,JTEVT,JTCOM,JTLIS) | |
3 | C | |
4 | C Main subroutine for ISAJET, a Monte Carlo event generator | |
5 | C for P P , AP P , and E+ E- interactions at high energy. | |
6 | C | |
7 | C Frank E. Paige and Serban D. Protopopescu | |
8 | C Brookhaven National Laboratory | |
9 | C Upton, New York, USA | |
10 | C | |
11 | C JTDKY = +/- unit number for decay table file. | |
12 | C If it is negative, decay table is not printed. | |
13 | C JTEVT = +/- unit number for output event file. | |
14 | C If it is negative, only stable particles are | |
15 | C written on it. | |
16 | C JTCOM = unit number for command file. | |
17 | C JTLIS = unit number for listing. | |
18 | C | |
19 | C Instead of calling this subroutine the user may wish to | |
20 | C control the program himself using: | |
21 | C ISAINI overall initialization | |
22 | C ISABEG run initialization | |
23 | C ISAEVT generation of one event | |
24 | C ISAEND run termination | |
25 | C ISAWBG initial record writing | |
26 | C ISAWEV event record writing | |
27 | C ISAWND end record writing | |
28 | C | |
29 | #if defined(CERNLIB_IMPNONE) | |
30 | IMPLICIT NONE | |
31 | #endif | |
32 | #include "isajet/itapes.inc" | |
33 | #include "isajet/idrun.inc" | |
34 | #include "isajet/primar.inc" | |
35 | #include "isajet/isloop.inc" | |
36 | C | |
37 | INTEGER JTDKY,JTEVT,JTCOM,JTLIS,IFL,ILOOP | |
38 | LOGICAL OK,DONE | |
39 | SAVE ILOOP | |
40 | C | |
41 | C Initialize ISAJET | |
42 | C | |
43 | CALL ISAINI(JTDKY,JTEVT,JTCOM,JTLIS) | |
44 | C | |
45 | C Read instructions; terminate for STOP command or error. | |
46 | C | |
47 | 1 IFL=0 | |
48 | CALL ISABEG(IFL) | |
49 | IF(IFL.NE.0) RETURN | |
50 | C Write begin-run record | |
51 | CALL ISAWBG | |
52 | C | |
53 | C Event loop | |
54 | C | |
55 | ILOOP=0 | |
56 | 101 CONTINUE | |
57 | ILOOP=ILOOP+1 | |
58 | C Generate one event - discard if .NOT.OK | |
59 | CALL ISAEVT(ILOOP,OK,DONE) | |
60 | C Write event record | |
61 | IF(OK) CALL ISAWEV | |
62 | IF(.NOT.DONE) GO TO 101 | |
63 | C | |
64 | C Calculate cross section and luminosity | |
65 | C | |
66 | CALL ISAEND | |
67 | C Write end-of-run record | |
68 | CALL ISAWND | |
69 | GO TO 1 | |
70 | C | |
71 | C Entry point for error recovery. | |
72 | C CALL RSTART will continue generation on next event. | |
73 | C | |
74 | ENTRY RSTART | |
75 | IF(IEVT.EQ.0) RETURN | |
76 | IF(IEVT.GE.NEVENT*NEVOLV*NFRGMN) GO TO 1 | |
77 | GO TO 101 | |
78 | END |