2 \section{Patchy and PAM Organization\label{PATCHY}}
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|.
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:
14 \verb|ISACDE|: contains all common blocks, etc. These are divided
15 into decks based on their usage.
17 \verb|ISADATA|: contains block data ALDATA. This must always be
18 loaded when using ISAJET.
20 \verb|ISAJET|: contains the code for generating events. Each
21 subroutine is in a separate deck with the same name.
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|.
27 \verb|ISASUSY|: contains code to calculate all the decay widths
28 and branching fractions in the minimal supersymmetric model.
30 \verb|ISATAPE|: contains the code for reading and writing tapes,
31 again with each subroutine on a separate deck.
33 \verb|ISARUN|: contains a main program and a simple interactive
34 interface. It is selected by \verb|IF=INTERACT|.
36 \verb|ISAZEB|: contains Zebra format output routines, an
37 alternative to the ISATAPE routines.
39 \verb|ISZRUN|: contains the analog of ISAPLT for the Zebra
42 \verb|ISAPLT|: contains a simple calorimeter simulation and the
43 skeleton of a histogramming job using HBOOK.
45 \verb|ISATEXT|: contains the instructions for using ISAJET, i.e.
46 the text of this document. It also includes the documentation for
49 \verb|ISZTEXT|: contains the instructions for the Zebra output
50 routines and a description of the Zebra banks.
52 \verb|ISADECAY|: contains the input decay table.
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.
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
64 \verb|*ISADECAY|: USE selects ISADECAY and all corrections to it.
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|.
70 \verb|*ISAPLT|: USE selects ISACDE, ISAPLT, and all corrections
73 \verb|*ISASUSY|: USE selects CDESUSY, ISASUSY, and ISASSRUN to
74 create a program to calculate all the MSSM decay modes.
76 \verb|*ISATEXT|: USE selects ISACDE, ISATEXT, and all corrections
79 \verb|*ISAZEB|: USE selects ISAJET with a Zebra output format.
81 \verb|*ISZRUN|: USE selects the Zebra analysis package.
83 Patches are provided to select the machine dependent features for
84 specific computers or operating systems:
86 \verb|ANSI|: ANSI standard Fortran (no time or date functions)
88 \verb|APOLLO|: APOLLO -- only tested by CERN
90 \verb|CDC|: CDC 7600 and 60-bit CYBER (obsolete)
92 \verb|CRAY|: CRAY with UNICOS
94 \verb|DECS|: DEC Station with Ultrix
96 \verb|ETA|: ETA 10 running Unix System V (obsolete)
98 \verb|HPUX|: HP/9000 7xx running Unix System V
100 \verb|IBM|: IBM 370 and 30xx running VM/CMS
102 \verb|IBMRT|: IBM RS/6000 running AIX 3.x or 4.x
104 \verb|LINUX|: PC running Linux with f2c/gcc or g77 compiler
106 \verb|SGI|: Silicon Graphics running IRIX
108 \verb|SUN|: Sun Sparcstation running SUNOS or Solaris
110 \verb|VAX|: DEC VAX or Alpha running VMS
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.)
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.
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
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.
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.
151 &PATCH,DECS. DEC STATION (ULTRIX)
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.
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
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.
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
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
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.
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.
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
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
240 Similarly, a patch PDFLIB enables the interface to the PDFLIB parton
241 distribution compilation by H. Plothow-Besch:
245 The only internal links with PDFLIB are calls to the routines PDFSET,
246 PFTOPDG, and DXPDF, and the common blocks W50510 and W50517,
248 #if defined(CERNLIB_PDFLIB)
249 #include "w50510.inc"
252 #if defined(CERNLIB_PDFLIB)
253 #include "w50517.inc"
257 which are used to specify the level of output messages and the logical
258 unit number for them.
260 In general it should be sufficient to run YPATCHY with the
261 following cradle (replace \verb|&| with \verb|+| everywhere):
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.
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.