]>
Commit | Line | Data |
---|---|---|
0795afa3 | 1 | \newpage |
2 | \section{Patchy and PAM Organization\label{PATCHY}} | |
3 | ||
4 | Patchy is a code management system developed at CERN and used to | |
5 | maintain the CERN Library. It is used to provide versions of ISAJET for | |
6 | a wide variety of computers. Instructions for using PATCHY are | |
7 | available from \verb|http://wwwinfo.cern.ch/asdoc/Welcome.html|. | |
8 | ||
9 | A master source file in Patchy is called a ``PAM.'' The ISAJET | |
10 | PAM contains all the source code and documentation plus Patchy | |
11 | commands to include common blocks and to select the desired version. It | |
12 | is divided into the following patches: | |
13 | ||
14 | \verb|ISACDE|: contains all common blocks, etc. These are divided | |
15 | into decks based on their usage. | |
16 | ||
17 | \verb|ISADATA|: contains block data ALDATA. This must always be | |
18 | loaded when using ISAJET. | |
19 | ||
20 | \verb|ISAJET|: contains the code for generating events. Each | |
21 | subroutine is in a separate deck with the same name. | |
22 | ||
23 | \verb|ISASSRUN|: contains the main program for ISASUSY, which | |
24 | prompts for input parameters and prints out all the decay modes. It is | |
25 | selected by \verb|*ISASUSY|. | |
26 | ||
27 | \verb|ISASUSY|: contains code to calculate all the decay widths | |
28 | and branching fractions in the minimal supersymmetric model. | |
29 | ||
30 | \verb|ISATAPE|: contains the code for reading and writing tapes, | |
31 | again with each subroutine on a separate deck. | |
32 | ||
33 | \verb|ISARUN|: contains a main program and a simple interactive | |
34 | interface. It is selected by \verb|IF=INTERACT|. | |
35 | ||
36 | \verb|ISAZEB|: contains Zebra format output routines, an | |
37 | alternative to the ISATAPE routines. | |
38 | ||
39 | \verb|ISZRUN|: contains the analog of ISAPLT for the Zebra | |
40 | format. | |
41 | ||
42 | \verb|ISAPLT|: contains a simple calorimeter simulation and the | |
43 | skeleton of a histogramming job using HBOOK. | |
44 | ||
45 | \verb|ISATEXT|: contains the instructions for using ISAJET, i.e. | |
46 | the text of this document. It also includes the documentation for | |
47 | ISASUSY. | |
48 | ||
49 | \verb|ISZTEXT|: contains the instructions for the Zebra output | |
50 | routines and a description of the Zebra banks. | |
51 | ||
52 | \verb|ISADECAY|: contains the input decay table. | |
53 | ||
54 | The code is actually maintained using RCS on a Silicon Graphics | |
55 | computer at BNL. Patchy is used primarily to handle common blocks and | |
56 | machine dependent code. | |
57 | ||
58 | The input to YPATCHY must contain both \verb|+USE| cards, which | |
59 | define the wanted program version, and \verb|+EXE| cards, which | |
60 | determine which patches or decks are written to the ASM file. To | |
61 | facilitate this selection, the ISAJET PAM contains the following pilot | |
62 | patches: | |
63 | ||
64 | \verb|*ISADECAY|: USE selects ISADECAY and all corrections to it. | |
65 | ||
66 | \verb|*ISAJET|: USE selects ISACDE, ISADATA, ISAJET, ISATAPE, | |
67 | ISARUN and all corrections to them. Note that ISARUN is not actually | |
68 | selected without \verb|+USE,INTERACT|. | |
69 | ||
70 | \verb|*ISAPLT|: USE selects ISACDE, ISAPLT, and all corrections | |
71 | to them. | |
72 | ||
73 | \verb|*ISASUSY|: USE selects CDESUSY, ISASUSY, and ISASSRUN to | |
74 | create a program to calculate all the MSSM decay modes. | |
75 | ||
76 | \verb|*ISATEXT|: USE selects ISACDE, ISATEXT, and all corrections | |
77 | to them. | |
78 | ||
79 | \verb|*ISAZEB|: USE selects ISAJET with a Zebra output format. | |
80 | ||
81 | \verb|*ISZRUN|: USE selects the Zebra analysis package. | |
82 | ||
83 | Patches are provided to select the machine dependent features for | |
84 | specific computers or operating systems: | |
85 | ||
86 | \verb|ANSI|: ANSI standard Fortran (no time or date functions) | |
87 | ||
88 | \verb|APOLLO|: APOLLO -- only tested by CERN | |
89 | ||
90 | \verb|CDC|: CDC 7600 and 60-bit CYBER (obsolete) | |
91 | ||
92 | \verb|CRAY|: CRAY with UNICOS | |
93 | ||
94 | \verb|DECS|: DEC Station with Ultrix | |
95 | ||
96 | \verb|ETA|: ETA 10 running Unix System V (obsolete) | |
97 | ||
98 | \verb|HPUX|: HP/9000 7xx running Unix System V | |
99 | ||
100 | \verb|IBM|: IBM 370 and 30xx running VM/CMS | |
101 | ||
102 | \verb|IBMRT|: IBM RS/6000 running AIX 3.x or 4.x | |
103 | ||
104 | \verb|LINUX|: PC running Linux with f2c/gcc or g77 compiler | |
105 | ||
106 | \verb|SGI|: Silicon Graphics running IRIX | |
107 | ||
108 | \verb|SUN|: Sun Sparcstation running SUNOS or Solaris | |
109 | ||
110 | \verb|VAX|: DEC VAX or Alpha running VMS | |
111 | ||
112 | \noindent These patches in turn select a variety of patches and IF | |
113 | flags, allowing one to select more specific features, as indicated | |
114 | below. (Replace \verb|&| by \verb|+| everywhere.) | |
115 | \begin{verbatim} | |
116 | &PATCH,ANSI. GENERIC ANSI FORTRAN. | |
117 | &USE,DOUBLE. DOUBLE PRECISION. | |
118 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
119 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
120 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
121 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
122 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
123 | &EOD | |
124 | ||
125 | &PATCH,APOLLO. | |
126 | &DECK,BLANKDEK. | |
127 | &USE,DOUBLE. DOUBLE PRECISION. | |
128 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
129 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
130 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
131 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
132 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
133 | &USE,IMPNONE. IMPLICIT NONE | |
134 | &EOD. | |
135 | ||
136 | &PATCH,CDC. CDC 7600 OR CYBER 175. | |
137 | &USE,SINGLE. SINGLE PRECISION. | |
138 | &USE,LEVEL2. LEVEL 2 STORAGE. | |
139 | &USE,CDCPACK. PACK 2 WORDS PER WORD FOR INPUT/OUTPUT. | |
140 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
141 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
142 | &EOD | |
143 | ||
144 | &PATCH,CRAY. CRAY XMP OR 2. | |
145 | &USE,SINGLE. SINGLE PRECISION. | |
146 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
147 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
148 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
149 | &EOD | |
150 | ||
151 | &PATCH,DECS. DEC STATION (ULTRIX) | |
152 | &USE,SUN. | |
153 | &EOD | |
154 | ||
155 | &PATCH,ETA. ETA-10. | |
156 | &USE,SINGLE. SINGLE PRECISION. | |
157 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
158 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
159 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
160 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
161 | &EOD | |
162 | ||
163 | &PATCH,HPUX. HP/9000 7XX RUNNING UNIX. | |
164 | &USE,DOUBLE. DOUBLE PRECISION. | |
165 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
166 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
167 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
168 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
169 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
170 | &USE,IMPNONE. IMPLICIT NONE | |
171 | &EOD | |
172 | ||
173 | &PATCH,IBM. IBM 370 OR 30XX. | |
174 | &USE,DOUBLE. DOUBLE PRECISION. | |
175 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
176 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
177 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
178 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
179 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
180 | &EOD | |
181 | ||
182 | &PATCH,IBMRT. IBM RS/6000 WITH AIX 3.1 | |
183 | &USE,DOUBLE. DOUBLE PRECISION. | |
184 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
185 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
186 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
187 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
188 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
189 | &USE,IMPNONE. IMPLICIT NONE | |
190 | &EOD | |
191 | ||
192 | &PATCH,LINUX. IBM PC WITH LINUX 1.X | |
193 | &USE,DOUBLE. DOUBLE PRECISION. | |
194 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
195 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
196 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
197 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
198 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
199 | &USE,IMPNONE. IMPLICIT NONE | |
200 | &EOD | |
201 | ||
202 | &PATCH,SGI. | |
203 | SILICON GRAPHICS 4D/XX. | |
204 | &USE,DOUBLE. DOUBLE PRECISION. | |
205 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
206 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
207 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
208 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
209 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
210 | &EOD | |
211 | ||
212 | &PATCH,SUN. SUN (SPARC) | |
213 | &USE,DOUBLE. DOUBLE PRECISION. | |
214 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
215 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
216 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
217 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
218 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
219 | &EOD | |
220 | ||
221 | &PATCH,VAX. DEC VAX 11/780 OR 8600. | |
222 | &USE,DOUBLE. DOUBLE PRECISION. | |
223 | &USE,STDIO. STANDARD FORTRAN 77 TAPE INPUT/OUTPUT. | |
224 | &USE,MOVEFTN. FORTRAN REPLACEMENT FOR MOVLEV. | |
225 | &USE,RANFFTN,IF=-CERN. FORTRAN RANF. | |
226 | &USE,RANFCALL. STANDARD RANSET AND RANGET CALLS. | |
227 | &USE,NOCERN,IF=-CERN. NO CERN LIBRARY. | |
228 | &USE,IMPNONE. IMPLICIT NONE | |
229 | &EOD | |
230 | \end{verbatim} | |
231 | ||
232 | An empty patch INTERACT selects a main program and an interactive | |
233 | interface which will prompt the user for parameters and do some error | |
234 | checking. A patch CERN allows ISAJET to take the random number generator | |
235 | RANF and several other routines from the CERN Library; to use this | |
236 | include the Patchy command | |
237 | \begin{verbatim} | |
238 | &USE,CERN. | |
239 | \end{verbatim} | |
240 | Similarly, a patch PDFLIB enables the interface to the PDFLIB parton | |
241 | distribution compilation by H. Plothow-Besch: | |
242 | \begin{verbatim} | |
243 | &USE,PDFLIB | |
244 | \end{verbatim} | |
245 | The only internal links with PDFLIB are calls to the routines PDFSET, | |
246 | PFTOPDG, and DXPDF, and the common blocks W50510 and W50517, | |
247 | \begin{verbatim} | |
248 | #if defined(CERNLIB_PDFLIB) | |
249 | #include "w50510.inc" | |
250 | * Ignoring t=pass | |
251 | #endif | |
252 | #if defined(CERNLIB_PDFLIB) | |
253 | #include "w50517.inc" | |
254 | * Ignoring t=pass | |
255 | #endif | |
256 | \end{verbatim} | |
257 | which are used to specify the level of output messages and the logical | |
258 | unit number for them. | |
259 | ||
260 | In general it should be sufficient to run YPATCHY with the | |
261 | following cradle (replace \verb|&| with \verb|+| everywhere): | |
262 | \begin{verbatim} | |
263 | &USE,(*ISAJET,*ISATEXT,*ISADECAY,*ISAPLT). CHOOSE ONE. | |
264 | &USE,ANSI,DECS,HPUX,IBM,IBMRT,SGI,SUN,.... CHOOSE ONE. | |
265 | &[USE,INTERACT]. FOR INTERACTIVE MODE. | |
266 | &[USE,CERN.] FOR CERN LIBRARY. | |
267 | &[USE,HBOOK3.] HBOOK 3 FOR ISAPLT. | |
268 | &EXE. | |
269 | &PAM. | |
270 | &QUIT. | |
271 | \end{verbatim} | |
272 | ||
273 | The input to YPATCHY can also contain changes by the user. It is | |
274 | suggested that these not be made permanent parts of the PAM to avoid | |
275 | possible conflicts with later corrections. |