]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/cdf/g321x.c
Initialize fSepctrum = 0 in ctors
[u/mrichter/AliRoot.git] / GEANT321 / cdf / g321x.c
1 /*
2  * $Id$
3  *
4  * $Log$
5  * Revision 1.1.1.1  1995/10/24 10:19:37  cernlib
6  * Geant
7  *
8  */
9 /*CMZ :          24/08/95  15.30.04  by  S.Ravndal*/
10 #if !defined(CERNLIB_KUIP95A)
11  
12 /*-- Author :*/
13 /*
14  * This file has been generated by the KUIP compiler.  Do NOT change it!
15  *
16  * KUIP header: 950303      Generation date: Thu Aug 24 15:18:48 1995
17  *
18  * Input file: geant321x.doc
19  */
20  
21 #if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
22 #  if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
23 #    define IBM370
24 #  endif
25 #  if defined(CRAY) || defined(IBM370) || defined(vms)
26 #    define F77_UCASE
27 #  else
28 #    if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
29 #      define F77_LCASE
30 #    else
31 #      define F77_USCORE
32 #    endif
33 #  endif
34 #endif
35  
36 typedef int     IntFunc();
37 typedef char*   CharFunc();
38 typedef char** pCharFunc();
39 typedef void    SUBROUTINE();
40 #ifdef IBM370
41 #  pragma linkage(SUBROUTINE,FORTRAN)
42 #endif
43  
44 extern void klnkmenu();
45 extern void klnkbrcl();
46 extern void klnkkmcl();
47 extern void klnkicon();
48 extern void klnkbutt();
49  
50 typedef unsigned long KmPixmap; /* Pixmap from <X11/X.h>                   */
51  typedef void *KmWidget;         /* Widget from <X11/Intrinsic.h>           */
52  typedef void *KmCalldata;       /* XmAnyCallbackStruct from <Motif/Xm.h>   */
53                                  /*                                         */
54  typedef enum {                  /*                                         */
55    BRACT_OPEN = 0,               /*                                         */
56    BRACT_ROOT = 1,               /*                                         */
57    BRACT_CONT = 2,               /*                                         */
58    BRACT_GRAF = 3                /*                                         */
59  } BrActTag;                     /*                                         */
60                                  /*                                         */
61  typedef enum {                  /*                                         */
62    BrActUpdate    = 0x01,        /* browser window has to be updated ('!')  */
63    BrActSeparator = 0x02,        /* put separator in menu ('/')             */
64    BrActToggle    = 0x04,        /* register as toggle button               */
65    BrActToggleOn  = 0x08,        /* toggle state is on                      */
66    BrActSensitive = 0x10         /* button is sensitive                     */
67  } BrActFlag;                    /*                                         */
68                                  /*                                         */
69  
70 typedef struct _BrAction {      /*                                         */
71   struct _BrAction *next;       /* link to next action binding             */
72   BrActFlag   flags;            /*                                         */
73   char       *text;             /* text line in menu                       */
74   char       *user_text;        /* user text overriding CDF text (malloced)*/
75   char       *accel;            /* accelerator                             */
76   char       *exec;             /* action commands                         */
77   SUBROUTINE *call_F;           /* action routine                          */
78   IntFunc    *call_C;           /* action function                         */
79   BrActTag    tag;              /* for which window the action is defined  */
80   struct _BrClass *class;       /* pointer to BrClass in case of open menu */
81  } BrAction;                     /*                                         */
82                                  /*                                         */
83  typedef struct _BrClass {       /*                                         */
84    struct _BrClass *next;        /* link to next browsable class            */
85    char       *name;             /* unique identifier name                  */
86    char       *title;            /* title for popup menu (maybe NULL)       */
87    SUBROUTINE *scan_km_F;        /* user function scanning the directory    */
88    pCharFunc  *scan_km_C;        /* user function scanning the directory    */
89    SUBROUTINE *scan_br_F;        /* user function scanning for browsables   */
90    pCharFunc  *scan_br_C;        /* user function scanning for browsables   */
91    BrAction   *root;             /* list of actions in root window          */
92    BrAction   *open;             /* list of actions in open menu            */
93  } BrClass;                      /*                                         */
94                                  /*                                         */
95  
96 typedef struct _KmIcon {        /*                                         */
97   struct _KmIcon *next;         /* link to next icon                       */
98   char       *name;             /* unique identifier name                  */
99   int         width;            /* width of the pixmap                     */
100   int         height;           /* height of the pixmap                    */
101   char       *bitmap;           /* bitmap data                             */
102   KmPixmap    pix;              /* filled in Motif part                    */
103   KmPixmap    hi_pix;           /* high lighted pixmap                     */
104  } KmIcon;                       /*                                         */
105                                  /*                                         */
106  typedef struct _KmClass {       /*                                         */
107    struct _KmClass *next;        /* link to next object class               */
108    int         is_dir;           /* flag if class has is a directory        */
109    char       *name;             /* unique identifier name                  */
110    char       *title;            /* title for popup menu (maybe NULL)       */
111    char       *big_icon;         /* name of the big icon                    */
112    KmIcon     *bicon;            /* pointer to the big icon structure       */
113    char       *sm_icon;          /* name of the small icon                  */
114    KmIcon     *sicon;            /* pointer to the small icon structure     */
115    SUBROUTINE *user_icon_F;      /* user function to return icon bitmap     */
116    IntFunc    *user_icon_C;      /* user function to return icon bitmap     */
117    BrAction   *cont;             /* list of actions in content window       */
118    BrAction   *graf;             /* list of actions in graphics window      */
119    int         obj_count;        /* number of objects in content window     */
120  } KmClass;                      /*                                         */
121                                  /*                                         */
122  
123 typedef enum {                  /*                                         */
124   KmButtSensitive       = 0x00, /* sensitive button                        */
125   KmButtNonSensitive    = 0x01, /* non-sensitive button ('NS')             */
126   KmButtToggleSensitive = 0x02, /* toggle-sensitive button ('TS')          */
127   KmButtSensitivityMask = 0x03, /* mask for sensitivity type               */
128   KmButtSeparator       = 0x04, /* put separator in menu ('/')             */
129   KmButtBrowser         = 0x08  /* button is in main browser ('BR')        */
130  } KmButtFlag;                   /*                                         */
131                                  /*                                         */
132  typedef struct _KmButton {      /*                                         */
133    struct _KmButton *next;       /* button label or menu item               */
134    char       *menu;             /* menu name or NULL for buttons           */
135    char       *label;            /* button label or menu item               */
136    SUBROUTINE *call_F;           /* callback routine (FORTRAN)              */
137    IntFunc    *call_C;           /* callback routine (C)                    */
138    char       *action;           /* name of callback routine                */
139    char       *mnemo;            /* button mnemonic                         */
140    char       *accel;            /* button accelerator                      */
141    char       *accel_text;       /* button accelerator text                 */
142    KmButtFlag  flags;            /* sensitivity type etc.                   */
143    KmWidget    widget;           /* Motif widget ID                         */
144  } KmButton;                     /*                                         */
145                                  /*                                         */
146  
147 extern struct {                        /*
148     */   /* indirect calls to avoid linking HIGZ
149     */   IntFunc    *graf_info_C;      /* pass display, open and close
150  (ixmotif)  */   SUBROUTINE *graf_size_F;      /* resize window (IGRSIZ)
151             */   SUBROUTINE *graf_pick_F;      /* identifying graphics objects
152  (IGOBJ)    */   SUBROUTINE *graf_attr_F;      /* set attributes (IGSET)
153             */   SUBROUTINE *graf_close_F;     /* close workstation (ICLWK)
154             */   /* optional routines for Motif customization
155             */   pCharFunc  *user_FallBk_C;    /* get application fallbacks
156             */   IntFunc    *user_TopWid_C;    /* pass toplevel widget
157  identifiers        */ } klnkaddr;                     /*
158                     */
159  
160 typedef enum {                  /*                                         */
161   KmFLAG_FORGET = 0x01,         /* last value is not kept for Motif panels */
162   KmFLAG_MINUS  = 0x02,         /* -VALUE is not an abbrev for CHOPT=VALUE */
163   KmFLAG_QUOTE  = 0x04,         /* do not remove quotes                    */
164   KmFLAG_VARARG = 0x08,         /* append additional args to this param.   */
165   KmFLAG_CONST  = 0x10,         /* do not allow to assign a value          */
166   KmFLAG_HIDDEN = 0x20,         /* do not show in menus                    */
167   KmFLAG_SEPARATE = 0x40        /* treat arguments as separate tokens      */
168  } KmParFlag;                    /*                                         */
169                                  /*                                         */
170  typedef enum {                  /*                                         */
171    KmTYPE_CHAR   = 'C',          /* character string                        */
172    KmTYPE_FILE   = 'F',          /* file name                               */
173    KmTYPE_INT    = 'I',          /* integer                                 */
174    KmTYPE_OPTION = 'O',          /* option                                  */
175    KmTYPE_REAL   = 'R'           /* real                                    */
176  } KmParType;                    /*                                         */
177                                  /*                                         */
178  
179 typedef struct {                /* file name                               */
180   char         *filter_default; /* filter wildcard                         */
181   char         *filter_current; /* current filter                          */
182  } KmParFile;                    /*                                         */
183                                  /*                                         */
184  typedef struct {                /*                                         */
185    char         *range_lower;    /* lower value of range                    */
186    char         *range_upper;    /* upper value of range                    */
187    char         *slider_lower;   /* lower limit for slider                  */
188    char         *slider_upper;   /* upper limit for slider                  */
189    int           decimals;       /* number of decimals used for slider      */
190  } KmParInt;                     /*                                         */
191                                  /*                                         */
192  typedef struct {                /* option                                  */
193    char        **text;           /* explanations (parallel to range_value)  */
194    int          *mutex;          /* mutex group to which text belongs       */
195    int          *radio;          /* radio group to which text belongs       */
196  } KmParOption;                  /*                                         */
197                                  /*                                         */
198  
199 typedef KmParInt KmParReal;     /* real and int have the same fields       */
200                                 /*                                         */
201  typedef struct {                /*                                         */
202    char         *name;           /* parameter name                          */
203    int           abbrev;         /* minimum length that name is recognized  */
204    char         *prompt;         /* prompt string                           */
205    char         *dfault;         /* default value                           */
206    char         *last;           /* last value for Motif panel (malloced)   */
207    int           width;          /* width of input field                    */
208    int           range_count;    /* number of items in range_value          */
209    char        **range_value;    /* list of allowed values                  */
210    int           select_count;   /* number of items in select_count         */
211    char        **select_value;   /* list of values for selection box        */
212    KmParFlag     flags;          /* special flags                           */
213    KmParType     type;           /* parameter type                          */
214    void        *ptype;           /* structure pointer selected by type      */
215  } KmParameter;                  /*                                         */
216                                  /*                                         */
217  
218 typedef struct _KmCommand {     /*                                         */
219   struct _KmCommand *next;      /* link to next command                    */
220   char         *path;           /* command path                            */
221   char         *name;           /* command name                            */
222   int           hidden;         /* flag if command is invisible            */
223   int           level;          /* depth of submenus                       */
224   int           total;          /* total number of parameters              */
225   int           mandatory;      /* number of mandatory parameters          */
226   KmParameter **par;            /* list of total parameter descriptions    */
227   int           list_par;       /* index+1 of parameter taking a list      */
228   int           xcount;         /* count number of action calls            */
229   SUBROUTINE   *action_F;       /* action routine                          */
230   IntFunc      *action_C;       /* action routine                          */
231   SUBROUTINE   *user_help_F;    /* user help routine                       */
232   pCharFunc    *user_help_C;    /* user help routine                       */
233   int          nguidance;       /* number of lines in guidance text        */
234   char        **guidance;       /* help text                               */
235   int          nkeyword;        /* number of lines for keywords            */
236   char        **keyword;        /* list of keywords                        */
237   int          nhlink;          /* number of lines for links               */
238   char        **hlink;          /* list of links                           */
239   int           argc;           /* number of arguments entered             */
240   char        **argv;           /* argc argument values                    */
241   char         *argline;        /* argument line as entered                */
242   int          *argoffs;        /* argc offsets into argline for KUGETE    */
243  } KmCommand;                    /*                                         */
244                                  /*                                         */
245  
246 typedef struct _KmMenu {        /*                                         */
247   struct _KmMenu *next;         /* link to next menu                       */
248   struct _KmMenu *down;         /* link to submenu                         */
249   char         *path;           /* path of parent menu                     */
250   char         *name;           /* menu name                               */
251   int           level;          /* depth of submenus                       */
252   KmCommand    *cmds;           /* link to first command                   */
253   int          nguidance;       /* number of lines in guidance text        */
254   char        **guidance;       /* help text                               */
255   int          nkeyword;        /* number of lines for keywords            */
256   char        **keyword;        /* list of keywords                        */
257   int          nhlink;          /* number of lines for links               */
258   char        **hlink;          /* list of links                           */
259  } KmMenu;                       /*                                         */
260                                  /*                                         */
261  extern void klnkbrcl();         /*                                         */
262  extern void klnkicon();         /*                                         */
263  extern void klnkkmcl();         /*                                         */
264  extern void klnkmenu();         /*                                         */
265                                  /*                                         */
266  
267 #ifdef F77_LCASE
268 #  define gkdraw_ gkdraw
269 #  define gxdraw_ gxdraw
270 #  define gxpick_ gxpick
271 #endif
272  
273 #ifdef F77_UCASE
274 #  define gkdraw_ GKDRAW
275 #  define gxdraw_ GXDRAW
276 #  define gxpick_ GXPICK
277 #endif
278  
279 #ifdef IBM370
280 #  pragma linkage(GKDRAW,FORTRAN)
281 #  pragma linkage(GXDRAW,FORTRAN)
282 #  pragma linkage(GXPICK,FORTRAN)
283 #endif
284  
285 extern void gkdraw_();
286 extern void gxdraw_();
287 extern void gxpick_();
288  
289 void gkdraw_()
290 {
291  
292 static KmParReal   _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
293  (char*)0, (char*)0, 0 };
294 static KmParameter _GEANT_CVOL_VALCUT_XCUT = { "XCUT", 4,
295  "x coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
296  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_XCUT_type };
297 static KmParReal   _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
298  (char*)0, (char*)0, 0 };
299 static KmParameter _GEANT_CVOL_VALCUT_YCUT = { "YCUT", 4,
300  "y coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
301  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_YCUT_type };
302 static KmParReal   _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
303  (char*)0, (char*)0, 0 };
304 static KmParameter _GEANT_CVOL_VALCUT_ZCUT = { "ZCUT", 4,
305  "z coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
306  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_ZCUT_type };
307 static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
308  &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
309  };
310 static char *_GEANT_CVOL_VALCUT_guidance[] = {
311  "It allows the cutting in the ray-tracing. All the volumes are cutted",
312  "from XCUT to +BIG along the x axis, from YCUT to +BIG along the y axis",
313  "and from ZCUT to +BIG along the z axis." };
314 static KmCommand _GEANT_CVOL_VALCUT = {  (KmCommand*)0, "/GEANT/CVOL/VALCUT",
315  "VALCUT", 0, 2, 3, 3, _GEANT_CVOL_VALCUT_parameters, 0, 0, gxdraw_,
316  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_CVOL_VALCUT_guidance,
317  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
318  
319 static KmParameter _GEANT_CVOL_SPHE_CNVV = { "CNVV", 4,
320  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
321  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
322 static KmParReal   _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
323  (char*)0, (char*)0, 0 };
324 static KmParameter _GEANT_CVOL_SPHE_RMAX = { "RMAX", 4,
325  " External radius of sphere             ", "0.1", (char*)0, 12, 0, (char**)0,
326  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_SPHE_RMAX_type };
327 static KmParReal   _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
328  (char*)0, (char*)0, 0 };
329 static KmParameter _GEANT_CVOL_SPHE_XMED = { "XMED", 4,
330  " Center X coordinate                   ", "-10000.", (char*)0, 12, 0,
331  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
332  &_GEANT_CVOL_SPHE_XMED_type };
333 static KmParReal   _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
334  (char*)0, (char*)0, 0 };
335 static KmParameter _GEANT_CVOL_SPHE_YMED = { "YMED", 4,
336  " Center Y coordinate                   ", "-10000.", (char*)0, 12, 0,
337  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
338  &_GEANT_CVOL_SPHE_YMED_type };
339 static KmParReal   _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
340  (char*)0, (char*)0, 0 };
341 static KmParameter _GEANT_CVOL_SPHE_ZMED = { "ZMED", 4,
342  " Center Z coordinate                   ", "-10000.", (char*)0, 12, 0,
343  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
344  &_GEANT_CVOL_SPHE_ZMED_type };
345 static KmParameter *_GEANT_CVOL_SPHE_parameters[] = { &_GEANT_CVOL_SPHE_CNVV,
346  &_GEANT_CVOL_SPHE_RMAX, &_GEANT_CVOL_SPHE_XMED, &_GEANT_CVOL_SPHE_YMED,
347  &_GEANT_CVOL_SPHE_ZMED };
348 static char *_GEANT_CVOL_SPHE_guidance[] = {
349  "This command performs a boolean subtraction between the volume",
350  "CNVV and a sphere; the sphere has the given parameters and is placed in",
351  "the MARS according to the given coordinates of its center.",
352  "See also CVOL. The following commands clip by a sphere,",
353  "positioned according to the given parameters, the volume specified",
354  "by NAME (a valid string for the NAME of the volume",
355  "can be found using the DTREE command).", "EXAMPLE -", " dopt hide on",
356  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
357  " sphe * 500 0 0 500", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
358 static KmCommand _GEANT_CVOL_SPHE = { &_GEANT_CVOL_VALCUT, "/GEANT/CVOL/SPHE",
359  "SPHE", 0, 2, 5, 1, _GEANT_CVOL_SPHE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
360  (SUBROUTINE*)0, (pCharFunc*)0, 15, _GEANT_CVOL_SPHE_guidance, 0, (char**)0,
361  0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
362  
363 static KmParameter _GEANT_CVOL_CONE_CNVV = { "CNVV", 4,
364  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
365  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
366 static KmParReal   _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
367  (char*)0, (char*)0, 0 };
368 static KmParameter _GEANT_CVOL_CONE_RMAX1 = { "RMAX1", 5,
369  " Min external radius                   ", "0.1", (char*)0, 12, 0, (char**)0,
370  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX1_type };
371 static KmParReal   _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
372  (char*)0, (char*)0, 0 };
373 static KmParameter _GEANT_CVOL_CONE_RMAX2 = { "RMAX2", 5,
374  " Max external radius                   ", "0.1", (char*)0, 12, 0, (char**)0,
375  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX2_type };
376 static KmParReal   _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
377  (char*)0, (char*)0, 0 };
378 static KmParameter _GEANT_CVOL_CONE_ZDEM = { "ZDEM", 4,
379  " Half length of cone axis              ", "0.1", (char*)0, 12, 0, (char**)0,
380  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_ZDEM_type };
381 static KmParReal   _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
382  (char*)0, (char*)0, 0 };
383 static KmParameter _GEANT_CVOL_CONE_XMED = { "XMED", 4,
384  " Center X coordinate                   ", "-10000.", (char*)0, 12, 0,
385  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
386  &_GEANT_CVOL_CONE_XMED_type };
387 static KmParReal   _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
388  (char*)0, (char*)0, 0 };
389 static KmParameter _GEANT_CVOL_CONE_YMED = { "YMED", 4,
390  " Center Y coordinate                   ", "-10000.", (char*)0, 12, 0,
391  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
392  &_GEANT_CVOL_CONE_YMED_type };
393 static KmParReal   _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
394  (char*)0, (char*)0, 0 };
395 static KmParameter _GEANT_CVOL_CONE_ZMED = { "ZMED", 4,
396  " Center Z coordinate                   ", "-10000.", (char*)0, 12, 0,
397  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
398  &_GEANT_CVOL_CONE_ZMED_type };
399 static KmParameter *_GEANT_CVOL_CONE_parameters[] = { &_GEANT_CVOL_CONE_CNVV,
400  &_GEANT_CVOL_CONE_RMAX1, &_GEANT_CVOL_CONE_RMAX2, &_GEANT_CVOL_CONE_ZDEM,
401  &_GEANT_CVOL_CONE_XMED, &_GEANT_CVOL_CONE_YMED, &_GEANT_CVOL_CONE_ZMED };
402 static char *_GEANT_CVOL_CONE_guidance[] = {
403  "This command performs a boolean subtraction between the volume",
404  "CNVV and a cone; the cone has the given parameters and is placed in",
405  "the MARS according to the given coordinates of its center.",
406  "See also CVOL.", "The following commands will clip by a cone,",
407  "positioned according the given parameters, the volume specified",
408  "by NAME (a valid string for the NAME of the volume",
409  "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
410  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
411  " cone * 1 750 1000 0 0 1000", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
412 static KmCommand _GEANT_CVOL_CONE = { &_GEANT_CVOL_SPHE, "/GEANT/CVOL/CONE",
413  "CONE", 0, 2, 7, 1, _GEANT_CVOL_CONE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
414  (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_CONE_guidance, 0, (char**)0,
415  0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
416  
417 static KmParameter _GEANT_CVOL_TUBE_CNVV = { "CNVV", 4,
418  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
419  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
420 static KmParReal   _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
421  (char*)0, (char*)0, 0 };
422 static KmParameter _GEANT_CVOL_TUBE_RMAX = { "RMAX", 4,
423  " External radius of tube               ", "0.1", (char*)0, 12, 0, (char**)0,
424  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_RMAX_type };
425 static KmParReal   _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
426  (char*)0, (char*)0, 0 };
427 static KmParameter _GEANT_CVOL_TUBE_ZDEM = { "ZDEM", 4,
428  " Half length of tube axis              ", "0.1", (char*)0, 12, 0, (char**)0,
429  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_ZDEM_type };
430 static KmParReal   _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
431  (char*)0, (char*)0, 0 };
432 static KmParameter _GEANT_CVOL_TUBE_XMED = { "XMED", 4,
433  " Center X coordinate                   ", "-10000.", (char*)0, 12, 0,
434  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
435  &_GEANT_CVOL_TUBE_XMED_type };
436 static KmParReal   _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
437  (char*)0, (char*)0, 0 };
438 static KmParameter _GEANT_CVOL_TUBE_YMED = { "YMED", 4,
439  " Center Y coordinate                   ", "-10000.", (char*)0, 12, 0,
440  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
441  &_GEANT_CVOL_TUBE_YMED_type };
442 static KmParReal   _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
443  (char*)0, (char*)0, 0 };
444 static KmParameter _GEANT_CVOL_TUBE_ZMED = { "ZMED", 4,
445  " Center Z coordinate                   ", "-10000.", (char*)0, 12, 0,
446  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
447  &_GEANT_CVOL_TUBE_ZMED_type };
448 static KmParameter *_GEANT_CVOL_TUBE_parameters[] = { &_GEANT_CVOL_TUBE_CNVV,
449  &_GEANT_CVOL_TUBE_RMAX, &_GEANT_CVOL_TUBE_ZDEM, &_GEANT_CVOL_TUBE_XMED,
450  &_GEANT_CVOL_TUBE_YMED, &_GEANT_CVOL_TUBE_ZMED };
451 static char *_GEANT_CVOL_TUBE_guidance[] = {
452  "This command performs a boolean subtraction between the volume",
453  "CNVV and a tube; the tube has the given parameters and is placed in",
454  "the MARS according the given coordinates of its center.", "See also CVOL.",
455  "The following commands will clip, by a tube,",
456  "positioned according to the given parameters, the volume specified",
457  "by NAME (a valid string for the NAME of the volume",
458  "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
459  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
460  " tube * 500 1000 500 0 0", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
461 static KmCommand _GEANT_CVOL_TUBE = { &_GEANT_CVOL_CONE, "/GEANT/CVOL/TUBE",
462  "TUBE", 0, 2, 6, 1, _GEANT_CVOL_TUBE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
463  (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_TUBE_guidance, 0, (char**)0,
464  0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
465  
466 static KmParameter _GEANT_CVOL_BOX_CNNV = { "CNNV", 4,
467  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
468  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
469 static KmParReal   _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
470  (char*)0, 0 };
471 static KmParameter _GEANT_CVOL_BOX_XMIN = { "XMIN", 4,
472  " Lower limit of the Shape X coordinate ", "-10000.", (char*)0, 12, 0,
473  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
474  &_GEANT_CVOL_BOX_XMIN_type };
475 static KmParReal   _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
476  (char*)0, 0 };
477 static KmParameter _GEANT_CVOL_BOX_XMAX = { "XMAX", 4,
478  " Upper limit of the Shape X coordinate ", "-9999.", (char*)0, 12, 0,
479  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
480  &_GEANT_CVOL_BOX_XMAX_type };
481 static KmParReal   _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
482  (char*)0, 0 };
483 static KmParameter _GEANT_CVOL_BOX_YMIN = { "YMIN", 4,
484  " Lower limit of the Shape Y coordinate ", "-10000.", (char*)0, 12, 0,
485  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
486  &_GEANT_CVOL_BOX_YMIN_type };
487 static KmParReal   _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
488  (char*)0, 0 };
489 static KmParameter _GEANT_CVOL_BOX_YMAX = { "YMAX", 4,
490  " Upper limit of the Shape Y coordinate ", "-9999.", (char*)0, 12, 0,
491  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
492  &_GEANT_CVOL_BOX_YMAX_type };
493 static KmParReal   _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
494  (char*)0, 0 };
495 static KmParameter _GEANT_CVOL_BOX_ZMIN = { "ZMIN", 4,
496  " Lower limit of the Shape Z coordinate ", "-10000.", (char*)0, 12, 0,
497  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
498  &_GEANT_CVOL_BOX_ZMIN_type };
499 static KmParReal   _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
500  (char*)0, 0 };
501 static KmParameter _GEANT_CVOL_BOX_ZMAX = { "ZMAX", 4,
502  " Upper limit of the Shape Z coordinate ", "-9999.", (char*)0, 12, 0,
503  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
504  &_GEANT_CVOL_BOX_ZMAX_type };
505 static KmParameter *_GEANT_CVOL_BOX_parameters[] = { &_GEANT_CVOL_BOX_CNNV,
506  &_GEANT_CVOL_BOX_XMIN, &_GEANT_CVOL_BOX_XMAX, &_GEANT_CVOL_BOX_YMIN,
507  &_GEANT_CVOL_BOX_YMAX, &_GEANT_CVOL_BOX_ZMIN, &_GEANT_CVOL_BOX_ZMAX };
508 static char *_GEANT_CVOL_BOX_guidance[] = {
509  "This command performs a boolean subtraction between the volume",
510  "CNVV and a box placed in the MARS according the values of the given",
511  "coordinates. See also CVOL.", "The following commands will clip by a box,",
512  "with a vertex at the origin, the volume specified by NAME (a valid",
513  "string for the NAME of the volume can be found using the DTREE command).",
514  " EXAMPLE -", " dopt hide on", " satt * seen -2",
515  " draw NAME 40 40 0 10 10 .01 .01", " next",
516  " box NAME 0 1000 0 1000 0 1000", " draw NAME 40 40 0 10 10 .01 .01",
517  " box ." };
518 static KmCommand _GEANT_CVOL_BOX = { &_GEANT_CVOL_TUBE, "/GEANT/CVOL/BOX",
519  "BOX", 0, 2, 7, 1, _GEANT_CVOL_BOX_parameters, 0, 0, gxdraw_, (IntFunc*)0,
520  (SUBROUTINE*)0, (pCharFunc*)0, 14, _GEANT_CVOL_BOX_guidance, 0, (char**)0, 0,
521  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
522  
523 static KmParameter _GEANT_DRAWING_DUVIEW_NAME = { "NAME", 4, "Detector name",
524  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
525  KmTYPE_CHAR,  (void*)0 };
526 static KmParameter _GEANT_DRAWING_DUVIEW_TYPE = { "TYPE", 4, "View name",
527  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
528  KmTYPE_CHAR,  (void*)0 };
529 static KmParameter _GEANT_DRAWING_DUVIEW_CPXTYP = { "CPXTYP", 6,
530  "Complexity name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
531  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
532 static KmParInt    _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
533  (char*)0, (char*)0, 0 };
534 static KmParameter _GEANT_DRAWING_DUVIEW_IVIEW = { "IVIEW", 5,
535  "View number where picture is stored", "0", (char*)0, 8, 0, (char**)0, 0,
536  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DUVIEW_IVIEW_type };
537 static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
538  &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
539  &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
540 static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
541  " CALL GUVIEW(name,type,cpxtyp,iview)" };
542 static KmCommand _GEANT_DRAWING_DUVIEW = {  (KmCommand*)0,
543  "/GEANT/DRAWING/DUVIEW", "DUVIEW", 0, 2, 4, 3,
544  _GEANT_DRAWING_DUVIEW_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
545  (pCharFunc*)0, 1, _GEANT_DRAWING_DUVIEW_guidance, 0, (char**)0, 0, (char**)0,
546  0, (char**)0, (char*)0, (int*)0 };
547  
548 static KmParameter _GEANT_DRAWING_DCHIT_CHUSET = { "CHUSET", 6,
549  "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
550  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
551 static KmParameter _GEANT_DRAWING_DCHIT_CHUDET = { "CHUDET", 6,
552  "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
553  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
554 static KmParInt    _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
555  (char*)0, (char*)0, 0 };
556 static KmParameter _GEANT_DRAWING_DCHIT_ITRA = { "ITRA", 4,
557  "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
558  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ITRA_type };
559 static KmParInt    _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
560  (char*)0, (char*)0, 0 };
561 static KmParameter _GEANT_DRAWING_DCHIT_ISYMB = { "ISYMB", 5,
562  "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
563  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ISYMB_type };
564 static KmParReal   _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
565  (char*)0, (char*)0, 0 };
566 static KmParameter _GEANT_DRAWING_DCHIT_SIZMAX = { "SIZMAX", 6,
567  "Maximum character size (cm)", "1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
568  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_SIZMAX_type };
569 static KmParInt    _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
570  (char*)0, (char*)0, 0 };
571 static KmParameter _GEANT_DRAWING_DCHIT_IHIT = { "IHIT", 4,
572  "Index of array HITS", "4", (char*)0, 8, 0, (char**)0, 0, (char**)0,
573  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_IHIT_type };
574 static KmParReal   _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
575  (char*)0, (char*)0, 0 };
576 static KmParameter _GEANT_DRAWING_DCHIT_HITMIN = { "HITMIN", 6,
577  "Lower boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
578  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMIN_type };
579 static KmParReal   _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
580  (char*)0, (char*)0, 0 };
581 static KmParameter _GEANT_DRAWING_DCHIT_HITMAX = { "HITMAX", 6,
582  "Upper boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
583  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMAX_type };
584 static KmParameter *_GEANT_DRAWING_DCHIT_parameters[] = {
585  &_GEANT_DRAWING_DCHIT_CHUSET, &_GEANT_DRAWING_DCHIT_CHUDET,
586  &_GEANT_DRAWING_DCHIT_ITRA, &_GEANT_DRAWING_DCHIT_ISYMB,
587  &_GEANT_DRAWING_DCHIT_SIZMAX, &_GEANT_DRAWING_DCHIT_IHIT,
588  &_GEANT_DRAWING_DCHIT_HITMIN, &_GEANT_DRAWING_DCHIT_HITMAX };
589 static char *_GEANT_DRAWING_DCHIT_guidance[] = {
590  " CALL GDCHIT(chuset,chudet,itra,isymb,sizmax,ihit,hitmin,hitmax)",
591  "The character plotted at each hit point may be chosen via",
592  "CSYMB; isymb is composed as:",
593  "      -1   (small) hardware points             (fast)",
594  "       0   software crosses                    (default)",
595  " 840,850   empty/full circles                  (slow)",
596  " 841,851   empty/full squares                  (slow)",
597  " 842,852   empty/full triangles (up)           (slow)",
598  " 843,853   empty diamond/full triangle (down)  (slow)",
599  " 844,854   empty/full stars                    (slow)",
600  "Except for isymb=-1 the SIZE of the character on the screen",
601  "is a function of HITS(IHIT), the array containing the calorimeter",
602  "quantity, with HITMIN and HITMAX defining its range.",
603  "The maximum character size (used in overflow) is SIZMAX.",
604  " SIZE = SIZMAX * ( HITS(IHIT) - HITMIN ) / HITMAX" };
605 static KmCommand _GEANT_DRAWING_DCHIT = { &_GEANT_DRAWING_DUVIEW,
606  "/GEANT/DRAWING/DCHIT", "DCHIT", 0, 2, 8, 0, _GEANT_DRAWING_DCHIT_parameters,
607  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 15,
608  _GEANT_DRAWING_DCHIT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
609  (char*)0, (int*)0 };
610  
611 static KmParameter _GEANT_DRAWING_KHITS_CHUSET = { "CHUSET", 6,
612  "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
613  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
614 static KmParameter _GEANT_DRAWING_KHITS_CHUDET = { "CHUDET", 6,
615  "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
616  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
617 static KmParReal   _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
618  (char*)0, (char*)0, 0 };
619 static KmParameter _GEANT_DRAWING_KHITS_EPSILO = { "EPSILO", 6,
620  "Pick aperture", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
621  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_KHITS_EPSILO_type };
622 static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
623  &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
624  &_GEANT_DRAWING_KHITS_EPSILO };
625 static char *_GEANT_DRAWING_KHITS_guidance[] = {
626  " CALL GKHITS(chuset,chudet,epsilo)",
627  "The picking of hit points requires the appropriate JSET data structure",
628  "have been filled",
629  "and is  repeated until the character typed is 'Q' or 'q' (GKS) or the",
630  "right button of the mouse is clicked (X11).",
631  "If the character typed to pick is 'K' or 'k' then the",
632  "kinematics of the corresponding track is also printed.",
633  "The search is made of all the hits of all tracks in",
634  "detector CHUDET of set CHUSET.",
635  "EPSILO is the pick aperture; if EPSILO<0 its absolute value is taken",
636  "and in addition the pick aperture is drawn; if EPSILO=0",
637  "there is an infinite pick aperture and",
638  "over all the hits the one nearest to the pick point is taken." };
639 static KmCommand _GEANT_DRAWING_KHITS = { &_GEANT_DRAWING_DCHIT,
640  "/GEANT/DRAWING/KHITS", "KHITS", 0, 2, 3, 0, _GEANT_DRAWING_KHITS_parameters,
641  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
642  _GEANT_DRAWING_KHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
643  (char*)0, (int*)0 };
644  
645 static KmParameter _GEANT_DRAWING_DHITS_CHUSET = { "CHUSET", 6,
646  "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
647  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
648 static KmParameter _GEANT_DRAWING_DHITS_CHUDET = { "CHUDET", 6,
649  "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
650  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
651 static KmParInt    _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
652  (char*)0, (char*)0, 0 };
653 static KmParameter _GEANT_DRAWING_DHITS_ITRA = { "ITRA", 4,
654  "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
655  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ITRA_type };
656 static KmParInt    _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
657  (char*)0, (char*)0, 0 };
658 static KmParameter _GEANT_DRAWING_DHITS_ISYMB = { "ISYMB", 5,
659  "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
660  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ISYMB_type };
661 static KmParReal   _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
662  (char*)0, (char*)0, 0 };
663 static KmParameter _GEANT_DRAWING_DHITS_SSYMB = { "SSYMB", 5,
664  "Size of characters (cm)", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
665  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHITS_SSYMB_type };
666 static KmParameter *_GEANT_DRAWING_DHITS_parameters[] = {
667  &_GEANT_DRAWING_DHITS_CHUSET, &_GEANT_DRAWING_DHITS_CHUDET,
668  &_GEANT_DRAWING_DHITS_ITRA, &_GEANT_DRAWING_DHITS_ISYMB,
669  &_GEANT_DRAWING_DHITS_SSYMB };
670 static char *_GEANT_DRAWING_DHITS_guidance[] = {
671  "CALL GDHITS(chuset,chudet,itra,isymb,ssymb).",
672  "The character plotted at each hit point may be chosen by isymb :",
673  "      -1   (small) hardware points             (fast)",
674  "       0   software crosses                    (default)",
675  "   840,850   empty/full circles                  (slow)",
676  "   841,851   empty/full squares                  (slow)",
677  "   842,852   empty/full triangles (up)           (slow)",
678  "   843,853   empty diamond/full triangle (down)  (slow)",
679  "   844,854   empty/full stars                    (slow)",
680  "Except for isymb=-1, the size of the character on the screen can be",
681  "chosen by SSYMB cm. The hit colour will follow the value of TXCI (text",
682  "colour) for isymb>0, the value of PMCI (polymarkers colour) for isymb<0,",
683  "the value of PLCI (polyline colour) for isymb=0." };
684 static KmCommand _GEANT_DRAWING_DHITS = { &_GEANT_DRAWING_KHITS,
685  "/GEANT/DRAWING/DHITS", "DHITS", 0, 2, 5, 0, _GEANT_DRAWING_DHITS_parameters,
686  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
687  _GEANT_DRAWING_DHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
688  (char*)0, (int*)0 };
689  
690 static KmParInt    _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
691  (char*)0, (char*)0, 0 };
692 static KmParameter _GEANT_DRAWING_DPART_ITRA = { "ITRA", 4, "Track number",
693  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
694  &_GEANT_DRAWING_DPART_ITRA_type };
695 static KmParInt    _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
696  (char*)0, (char*)0, 0 };
697 static KmParameter _GEANT_DRAWING_DPART_ISEL = { "ISEL", 4, "Option flag",
698  "11", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
699  &_GEANT_DRAWING_DPART_ISEL_type };
700 static KmParReal   _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
701  (char*)0, (char*)0, 0 };
702 static KmParameter _GEANT_DRAWING_DPART_SIZE = { "SIZE", 4,
703  "Character size (cm) for particle names", "0.25", (char*)0, 12, 0, (char**)0,
704  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DPART_SIZE_type };
705 static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
706  &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
707  &_GEANT_DRAWING_DPART_SIZE };
708 static char *_GEANT_DRAWING_DPART_guidance[] = {
709  " CALL GDPART(itra,isel,size)", " isel=x1 to draw the track number",
710  " isel=1x to draw the particle name" };
711 static KmCommand _GEANT_DRAWING_DPART = { &_GEANT_DRAWING_DHITS,
712  "/GEANT/DRAWING/DPART", "DPART", 0, 2, 3, 0, _GEANT_DRAWING_DPART_parameters,
713  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
714  _GEANT_DRAWING_DPART_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
715  (char*)0, (int*)0 };
716  
717 static KmParReal   _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
718  (char*)0, (char*)0, 0 };
719 static KmParameter _GEANT_DRAWING_KXYZ_EPSILO = { "EPSILO", 6, "Delta angle",
720  "0.25", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
721  &_GEANT_DRAWING_KXYZ_EPSILO_type };
722 static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
723  &_GEANT_DRAWING_KXYZ_EPSILO };
724 static char *_GEANT_DRAWING_KXYZ_guidance[] = { " CALL GKXYZ(epsilo)",
725  "The picking of track points requires the JXYZ data structure",
726  "and is  repeated until the character typed is 'Q' or 'q' (GKS)",
727  "or the right button of the mouse is clicked (X11).",
728  "EPSILO is the delta angle used for picking; if EPSILO=0",
729  "there is no optimization performed and",
730  "over all the track points the one nearest to the pick", "point is taken." };
731 static KmCommand _GEANT_DRAWING_KXYZ = { &_GEANT_DRAWING_DPART,
732  "/GEANT/DRAWING/KXYZ", "KXYZ", 0, 2, 1, 0, _GEANT_DRAWING_KXYZ_parameters, 0,
733  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
734  _GEANT_DRAWING_KXYZ_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
735  (char*)0, (int*)0 };
736  
737 static KmParInt    _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
738  (char*)0, (char*)0, 0 };
739 static KmParameter _GEANT_DRAWING_DXYZ_ITRA = { "ITRA", 4, "Track number",
740  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
741  &_GEANT_DRAWING_DXYZ_ITRA_type };
742 static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
743  &_GEANT_DRAWING_DXYZ_ITRA };
744 static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
745  "Draw tracks previously stored via GSXYZ." };
746 static KmCommand _GEANT_DRAWING_DXYZ = { &_GEANT_DRAWING_KXYZ,
747  "/GEANT/DRAWING/DXYZ", "DXYZ", 0, 2, 1, 0, _GEANT_DRAWING_DXYZ_parameters, 0,
748  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
749  _GEANT_DRAWING_DXYZ_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
750  (char*)0, (int*)0 };
751  
752 static KmParReal   _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
753  (char*)0, (char*)0, 0 };
754 static KmParameter _GEANT_DRAWING_ZOOM_ZFU = { "ZFU", 3,
755  "Zoom factor for U-coord. (horizontal)", "2.", (char*)0, 12, 0, (char**)0, 0,
756  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFU_type };
757 static KmParReal   _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
758  (char*)0, (char*)0, 0 };
759 static KmParameter _GEANT_DRAWING_ZOOM_ZFV = { "ZFV", 3,
760  "Zoom factor for V-coord. (vertical)", "2.", (char*)0, 12, 0, (char**)0, 0,
761  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFV_type };
762 static KmParInt    _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
763  (char*)0, (char*)0, 0 };
764 static KmParameter _GEANT_DRAWING_ZOOM_ISEL = { "ISEL", 4, "Options", "1",
765  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
766  &_GEANT_DRAWING_ZOOM_ISEL_type };
767 static KmParReal   _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
768  0 };
769 static KmParameter _GEANT_DRAWING_ZOOM_UZ0 = { "UZ0", 3,
770  "U-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
771  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
772  &_GEANT_DRAWING_ZOOM_UZ0_type };
773 static KmParReal   _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
774  0 };
775 static KmParameter _GEANT_DRAWING_ZOOM_VZ0 = { "VZ0", 3,
776  "V-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
777  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
778  &_GEANT_DRAWING_ZOOM_VZ0_type };
779 static KmParReal   _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
780  };
781 static KmParameter _GEANT_DRAWING_ZOOM_U0 = { "U0", 2,
782  "U-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
783  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
784  &_GEANT_DRAWING_ZOOM_U0_type };
785 static KmParReal   _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
786  };
787 static KmParameter _GEANT_DRAWING_ZOOM_V0 = { "V0", 2,
788  "V-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
789  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
790  &_GEANT_DRAWING_ZOOM_V0_type };
791 static KmParameter *_GEANT_DRAWING_ZOOM_parameters[] = {
792  &_GEANT_DRAWING_ZOOM_ZFU, &_GEANT_DRAWING_ZOOM_ZFV,
793  &_GEANT_DRAWING_ZOOM_ISEL, &_GEANT_DRAWING_ZOOM_UZ0,
794  &_GEANT_DRAWING_ZOOM_VZ0, &_GEANT_DRAWING_ZOOM_U0, &_GEANT_DRAWING_ZOOM_V0 };
795 static char *_GEANT_DRAWING_ZOOM_guidance[] = {
796  " CALL GDZOOM(zfu,zfv,uz0,vz0,u0,v0)",
797  "This command sets the zoom parameters that will be used by",
798  "subsequent calls to the drawing routines. Each zoom operation is always",
799  "relative to the status of the current zoom parameters.",
800  "The scale factors in u,v are respectively  zfu,zfv.",
801  "zfu=0 (or zfv=0) will act as a reset (i.e. unzoomed viewing).",
802  "The zoom is computed around uz0,vz0 (user coordinates),",
803  "and the resulting picture will be centered at u0,v0.",
804  "The use of the space bar is replaced by the left button of the mouse",
805  "running with X11:", "If isel=0 :", " 1. position the cursor at (uz0,vz0)",
806  " 2. type the space bar (GKS)", "(u0,v0 are chosen at centre of screen)",
807  "If isel=1 :", " 1. position the cursor at first corner of zoom rectangle",
808  " 2. type the space bar (GKS)",
809  " 3. position the cursor at second corner of zoom rectangle",
810  " 4. type the space bar (GKS)",
811  "(zfu,zfv are chosen according to the zoom rectangle;",
812  "uz0,vz0 are chosen at the centre of the zoom rectangle;",
813  "u0,v0 are chosen at centre of screen)", "If isel=2 :",
814  " 1. position the cursor at (uz0,vz0)", " 2. type the space bar (GKS)",
815  " 3. position the cursor at (u0,v0)", " 4. type the space bar (GKS)",
816  "If isel=1000+n and running with X-windows:",
817  " 1. n must be the identifier of an active view bank",
818  " 2. clicking on the left button of the mouse will display",
819  "    a zoomed view (computed around the cursor position) of",
820  "    the previous drawing in a new window",
821  " 3. it is now possible to iterate the zooming from the new window",
822  " 4. clicking on the right button will return the control to the",
823  "    main window",
824  " 5. clicking on the left button it is possible to open new windows",
825  "    zooming in other points of the detector",
826  " 6. clicking on the right button when the main window is active",
827  "    will return the control to the 'command mode'." };
828 static KmCommand _GEANT_DRAWING_ZOOM = { &_GEANT_DRAWING_DXYZ,
829  "/GEANT/DRAWING/ZOOM", "ZOOM", 0, 2, 7, 0, _GEANT_DRAWING_ZOOM_parameters, 0,
830  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 39,
831  _GEANT_DRAWING_ZOOM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
832  (char*)0, (int*)0 };
833  
834 static KmParInt    _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
835  (char*)0, (char*)0, 0 };
836 static KmParameter _GEANT_DRAWING_LENS_KNUM = { "KNUM", 4,
837  "View bank identifier", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
838  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_LENS_KNUM_type };
839 static KmParameter _GEANT_DRAWING_LENS_KSAM = { "KSAM", 4,
840  "Sample mode         ", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
841  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
842 static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
843  &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
844 static char *_GEANT_DRAWING_LENS_guidance[] = {
845  "Interactive zooming for detectors and events when running",
846  "with X-windows. Using this command, when showing the contents of a",
847  "view bank, it is possible to click (left button) in two points of the",
848  "drawing (which will represent the left upper corner and the right",
849  "bottom corner of the part to be zoomed). After the second click",
850  "a new 'window' will appear to fit the frame defined",
851  "by the two clicks and it will show a zoomed view as seen from a",
852  "lens with those dimensions. Clicking now the central button will",
853  "translate the lens over the drawing, while clicking the right button",
854  "will stop it. Moreover, clicking the left button of the",
855  "mouse, the lens will increase (or decrease) its magnification",
856  "power according to the backward-to-forward movement of the mouse.",
857  "A click on the right button will stop this action and it is possible",
858  "to restart the translation of the lens or, clicking",
859  "on the right button again, to make the lens disappear. It is then possible",
860  "to open another 'window-lens' with different dimensions. Thus,",
861  "this command can be useful to scan detailed parts of a detector or",
862  "to scan hits and showers for events. Clicking the right",
863  "button when no lens is displayed will return the control to the",
864  "'command mode'. The LENS is also available in sample mode when KSAM is",
865  "'ON'.", "The following commands will fill a view bank and will",
866  "allow to scan the detector and an event previously stored",
867  "via the use of LENS (when running", "with X-windows):", " EXAMPLE -",
868  " satt * seen 1", " dopen 1", " draw NAME 40 40 0 10 10 .01 .01", " dxyz 0",
869  " dhits * * 0 0 .2", " dclose", " dsh 1", " lens 1 on" };
870 static KmCommand _GEANT_DRAWING_LENS = { &_GEANT_DRAWING_ZOOM,
871  "/GEANT/DRAWING/LENS", "LENS", 0, 2, 2, 1, _GEANT_DRAWING_LENS_parameters, 0,
872  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 34,
873  _GEANT_DRAWING_LENS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
874  (char*)0, (int*)0 };
875  
876 static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
877  "    ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
878  (void*)0 };
879 static KmParReal   _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
880  (char*)0, (char*)0, 0 };
881 static KmParameter _GEANT_DRAWING_PERSP_DISTT = { "DISTT", 5,
882  "Volume distance from observer", "1000.", (char*)0, 12, 0, (char**)0, 0,
883  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_PERSP_DISTT_type };
884 static KmParameter _GEANT_DRAWING_PERSP_SAMP = { "SAMP", 4,
885  "Control to the mouse", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
886  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
887 static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
888  &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
889  &_GEANT_DRAWING_PERSP_SAMP };
890 static char *_GEANT_DRAWING_PERSP_guidance[] = {
891  "To control the perspective according to the variation of the distance",
892  "between the observer and the object (if PROJ has the value PERS).",
893  "If SAMP is ON the control of the distance is given via the mouse." };
894 static KmCommand _GEANT_DRAWING_PERSP = { &_GEANT_DRAWING_LENS,
895  "/GEANT/DRAWING/PERSP", "PERSP", 0, 2, 3, 2, _GEANT_DRAWING_PERSP_parameters,
896  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
897  _GEANT_DRAWING_PERSP_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
898  (char*)0, (int*)0 };
899  
900 static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
901  "    ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
902  (void*)0 };
903 static KmParReal   _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
904  "180.", 0 };
905 static KmParameter _GEANT_DRAWING_MOVE3D_THETA = { "THETA", 5,
906  "Viewing angle theta (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
907  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_THETA_type };
908 static KmParReal   _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
909  "360.", 0 };
910 static KmParameter _GEANT_DRAWING_MOVE3D_PHI = { "PHI", 3,
911  "Viewing angle phi (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
912  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PHI_type };
913 static KmParReal   _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
914  "180.", 0 };
915 static KmParameter _GEANT_DRAWING_MOVE3D_PSI = { "PSI", 3,
916  "Viewing angle psi (for 2D rotation)", "0.", (char*)0, 12, 0, (char**)0, 0,
917  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PSI_type };
918 static KmParReal   _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
919  0 };
920 static KmParameter _GEANT_DRAWING_MOVE3D_U0 = { "U0", 2,
921  "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
922  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_U0_type };
923 static KmParReal   _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
924  0 };
925 static KmParameter _GEANT_DRAWING_MOVE3D_V0 = { "V0", 2,
926  "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
927  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_V0_type };
928 static KmParReal   _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
929  (char*)0, (char*)0, 0 };
930 static KmParameter _GEANT_DRAWING_MOVE3D_SU = { "SU", 2,
931  "Scale factor for U-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
932  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SU_type };
933 static KmParReal   _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
934  (char*)0, (char*)0, 0 };
935 static KmParameter _GEANT_DRAWING_MOVE3D_SV = { "SV", 2,
936  "Scale factor for V-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
937  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SV_type };
938 static KmParReal   _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
939  "10.", 1 };
940 static KmParameter _GEANT_DRAWING_MOVE3D_SZ = { "SZ", 2, "Scale zoom factor",
941  "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
942  &_GEANT_DRAWING_MOVE3D_SZ_type };
943 static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
944 static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
945 static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
946  _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
947 static KmParameter _GEANT_DRAWING_MOVE3D_NOPT = { "NOPT", 4,
948  "T=tracks,H=hits", "    ", (char*)0, 8, 2, _GEANT_DRAWING_MOVE3D_NOPT_range,
949  2, _GEANT_DRAWING_MOVE3D_NOPT_range, (KmParFlag)0, KmTYPE_OPTION,
950  &_GEANT_DRAWING_MOVE3D_NOPT_type };
951 static KmParameter *_GEANT_DRAWING_MOVE3D_parameters[] = {
952  &_GEANT_DRAWING_MOVE3D_NAME, &_GEANT_DRAWING_MOVE3D_THETA,
953  &_GEANT_DRAWING_MOVE3D_PHI, &_GEANT_DRAWING_MOVE3D_PSI,
954  &_GEANT_DRAWING_MOVE3D_U0, &_GEANT_DRAWING_MOVE3D_V0,
955  &_GEANT_DRAWING_MOVE3D_SU, &_GEANT_DRAWING_MOVE3D_SV,
956  &_GEANT_DRAWING_MOVE3D_SZ, &_GEANT_DRAWING_MOVE3D_NOPT };
957 static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
958  "Same functionality of the command MOVE interfaced with MOTIF." };
959 static KmCommand _GEANT_DRAWING_MOVE3D = { &_GEANT_DRAWING_PERSP,
960  "/GEANT/DRAWING/MOVE3D", "MOVE3D", 0, 2, 10, 1,
961  _GEANT_DRAWING_MOVE3D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
962  (pCharFunc*)0, 1, _GEANT_DRAWING_MOVE3D_guidance, 0, (char**)0, 0, (char**)0,
963  0, (char**)0, (char*)0, (int*)0 };
964  
965 static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
966  "    ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
967  (void*)0 };
968 static KmParameter _GEANT_DRAWING_MOVE_NOPT = { "NOPT", 4,
969  "S=sample mode,T=tracks,H=hits", "    ", (char*)0, 20, 0, (char**)0, 0,
970  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
971 static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
972  &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
973 static char *_GEANT_DRAWING_MOVE_guidance[] = {
974  "Positioning some daughter volumes inside a 'mother', it can be",
975  "important to check if overlaps between such volumes have occurred.",
976  "Instead of putting the drawing in a view bank, zooming, and iterating",
977  "the process for different viewing angles of the same detector, the",
978  "MOVE facility has been developed (for machines running with X11):",
979  "it is sufficient to draw a view of the volumes to be analysed (after",
980  "setting the proper SEEN, COLO, etc. attributes) and then to enter",
981  "'MOVE' followed by the same 'NAME' used for the last command DRAW.",
982  "The detector will appear in a panel with five buttons at the",
983  "bottom: THETA, PHI, TRASL, ZOOM, OFF. Clicking on the left button",
984  "of the mouse, when the cursor is inside the THETA area, will rotate the",
985  "detector along the polar angle theta according to the",
986  "backward-to-forward movement of the mouse",
987  "(clicking up and down the left button if",
988  "not in sample mode); clicking on the right button of",
989  "the mouse will stop the rotation; clicking now on the",
990  "left button of the mouse when inside the PHI area will activate a",
991  "rotation along the polar angle phi. In the same way, activating the",
992  "TRASL button, the detector can be translated in the u,v plane",
993  "of the screen according to the 2D-movement of the mouse. Finally,",
994  "activating the ZOOM button, the detector will be zoomed (or unzoomed)",
995  "according to the backward-to-forward movement of the mouse. Clicking on\
996  the", "OFF button will return the control to the 'command mode'. The MOVE",
997  "command will work also with hidden line removal and shading options",
998  "(when SHAD is on the background will be black);",
999  "moreover, if the volumes are clipped, exploded, shifted, etc., they",
1000  "will be 'MOVED' with these features as well.",
1001  "Tracks and hits of a previously stored physical event can be moved",
1002  "together with the detector, allowing a dynamical 3-D analysis of the",
1003  "simulated events. Clicking the central button of the mouse when a good",
1004  "view of the event is found, will stop any movement and the mouse will",
1005  "allow the normal picking capabilities first for the tracks and then for",
1006  "the hits. After clicking of the right button, the normal",
1007  "movement will restart to find another interesting view of the event",
1008  "and to iterate the process.", "The MOVE is also available in sample mode.",
1009  "The following commands will produce a drawing of a volume",
1010  "and then will give the control to the MOVE panel; try the following",
1011  "possibilities:", " EXAMPLE 1 -", " dopt hide off", " satt * seen -2",
1012  " draw NAME 40 40 0 10 10 .01 .01", " move NAME", " EXAMPLE 2 -",
1013  " dopt hide on", " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01",
1014  " move NAME", " EXAMPLE 3 -", " dopt shad on", " satt * colo 3",
1015  " satt * fill 2", " dopt edge off", " draw NAME 40 40 0 10 10 .01 .01",
1016  " move NAME" };
1017 static KmCommand _GEANT_DRAWING_MOVE = { &_GEANT_DRAWING_MOVE3D,
1018  "/GEANT/DRAWING/MOVE", "MOVE", 0, 2, 2, 1, _GEANT_DRAWING_MOVE_parameters, 0,
1019  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 56,
1020  _GEANT_DRAWING_MOVE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1021  (char*)0, (int*)0 };
1022  
1023 static char *_GEANT_DRAWING_PICK_guidance[] = {
1024  "Activates graphic input to identify detector elements",
1025  "in a cut view. Clicking on the left button of the mouse when",
1026  "the cursor is in a given point of the drawing and clicking again",
1027  "(outside the detector) will produce the following effect:",
1028  "a line joininig the two points will be drawn together with",
1029  "the name and the medium number of the volume picked",
1030  "with the first clicking close to the second point." };
1031 static KmCommand _GEANT_DRAWING_PICK = { &_GEANT_DRAWING_MOVE,
1032  "/GEANT/DRAWING/PICK", "PICK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxpick_,
1033  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DRAWING_PICK_guidance,
1034  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1035  
1036 static char *_GEANT_DRAWING_MEASURE_guidance[] = {
1037  "Position the cursor on the first point (u1,v1) and hit the space bar(GKS).",
1038  "Position the cursor on the second point (u2,v2) and hit the space\
1039  bar(GKS).",
1040  "Clicking the left button of the mouse (X11) will have the same effect as",
1041  "hiting the space bar (GKS).",
1042  "The command will compute and print the distance in space separating",
1043  "the two points on the projection view. It can be useful to measure",
1044  "distances either between volumes or between tracks or hits." };
1045 static KmCommand _GEANT_DRAWING_MEASURE = { &_GEANT_DRAWING_PICK,
1046  "/GEANT/DRAWING/MEASURE", "MEASURE", 0, 2, 0, 0, (KmParameter**)0, 0, 0,
1047  gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
1048  _GEANT_DRAWING_MEASURE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1049  (char*)0, (int*)0 };
1050  
1051 static KmParInt    _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
1052  (char*)0, (char*)0, 0 };
1053 static KmParameter _GEANT_DRAWING_DHEAD_ISEL = { "ISEL", 4, "Option flag",
1054  "111110", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1055  &_GEANT_DRAWING_DHEAD_ISEL_type };
1056 static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
1057  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1058  (void*)0 };
1059 static KmParReal   _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
1060  (char*)0, (char*)0, 0 };
1061 static KmParameter _GEANT_DRAWING_DHEAD_CHRSIZ = { "CHRSIZ", 6,
1062  "Character size (cm) of title NAME", "0.6", (char*)0, 12, 0, (char**)0, 0,
1063  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHEAD_CHRSIZ_type };
1064 static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
1065  &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
1066  &_GEANT_DRAWING_DHEAD_CHRSIZ };
1067 static char *_GEANT_DRAWING_DHEAD_guidance[] = {
1068  " CALL GDHEAD(isel,name,chrsiz)", "ISEL =",
1069  " 0      to have only the header lines",
1070  " xxxxx1 to add the text name centered on top of header",
1071  " xxxx1x to add global detector name (first volume) on left",
1072  " xxx1xx to add date on right",
1073  " xx1xxx to select thick characters for text on top of header",
1074  " x1xxxx to add the text 'EVENT NR x' on top of header",
1075  " 1xxxxx to add the text 'RUN NR x' on top of header",
1076  "NOTE that ISEL=x1xxx1 or ISEL=1xxxx1 are illegal choices,",
1077  "i.e. they generate overwritten text.", "NAME is the title",
1078  "and CHRSIZ the character size in cm of text name." };
1079 static KmCommand _GEANT_DRAWING_DHEAD = { &_GEANT_DRAWING_MEASURE,
1080  "/GEANT/DRAWING/DHEAD", "DHEAD", 0, 2, 3, 0, _GEANT_DRAWING_DHEAD_parameters,
1081  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
1082  _GEANT_DRAWING_DHEAD_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1083  (char*)0, (int*)0 };
1084  
1085 static KmParReal   _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
1086  (char*)0, (char*)0, 0 };
1087 static KmParameter _GEANT_DRAWING_DMAN_U = { "U", 1,
1088  "U-coord. (horizontal) of the centre of man", (char*)0, (char*)0, 12, 0,
1089  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1090  &_GEANT_DRAWING_DMAN_U_type };
1091 static KmParReal   _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
1092  (char*)0, (char*)0, 0 };
1093 static KmParameter _GEANT_DRAWING_DMAN_V = { "V", 1,
1094  "V-coord. (vertical) of the centre of man", (char*)0, (char*)0, 12, 0,
1095  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1096  &_GEANT_DRAWING_DMAN_V_type };
1097 static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
1098 static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
1099  (char*)0 };
1100 static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
1101  _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
1102 static KmParameter _GEANT_DRAWING_DMAN_TYPE = { "TYPE", 4,
1103  "Man, Wm1, Wm2, Wm3", "MAN", (char*)0, 8, 4, _GEANT_DRAWING_DMAN_TYPE_range,
1104  4, _GEANT_DRAWING_DMAN_TYPE_range, (KmParFlag)0, KmTYPE_OPTION,
1105  &_GEANT_DRAWING_DMAN_TYPE_type };
1106 static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
1107  &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
1108 static char *_GEANT_DRAWING_DMAN_guidance[] = {
1109  " CALL GDMAN(u,v),CALL GDWMN1(u,v),CALL GDWMN2(u,v),CALL GDWMN2(u,v)",
1110  "It superimposes the picure of a man or of a woman, chosen among",
1111  "three different ones, with the same scale factors as the detector",
1112  "in the current drawing." };
1113 static KmCommand _GEANT_DRAWING_DMAN = { &_GEANT_DRAWING_DHEAD,
1114  "/GEANT/DRAWING/DMAN", "DMAN", 0, 2, 3, 3, _GEANT_DRAWING_DMAN_parameters, 0,
1115  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
1116  _GEANT_DRAWING_DMAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1117  (char*)0, (int*)0 };
1118  
1119 static KmParReal   _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
1120  (char*)0, (char*)0, 0 };
1121 static KmParameter _GEANT_DRAWING_DAXIS_X0 = { "X0", 2,
1122  "X-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1123  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_X0_type };
1124 static KmParReal   _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
1125  (char*)0, (char*)0, 0 };
1126 static KmParameter _GEANT_DRAWING_DAXIS_Y0 = { "Y0", 2,
1127  "Y-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1128  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Y0_type };
1129 static KmParReal   _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
1130  (char*)0, (char*)0, 0 };
1131 static KmParameter _GEANT_DRAWING_DAXIS_Z0 = { "Z0", 2,
1132  "Z-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1133  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Z0_type };
1134 static KmParReal   _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
1135  (char*)0, (char*)0, 0 };
1136 static KmParameter _GEANT_DRAWING_DAXIS_DX = { "DX", 2, "Axis size", (char*)0,
1137  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1138  &_GEANT_DRAWING_DAXIS_DX_type };
1139 static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
1140  &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
1141  &_GEANT_DRAWING_DAXIS_DX };
1142 static char *_GEANT_DRAWING_DAXIS_guidance[] = { " CALL GDAXIS(x0,y0,z0,dx)",
1143  "This commmand superimposes the axis of the MARS on the",
1144  "current picture. It is useful for finding immediately the",
1145  "orientation of the current drawing of the detector in the space." };
1146 static KmCommand _GEANT_DRAWING_DAXIS = { &_GEANT_DRAWING_DMAN,
1147  "/GEANT/DRAWING/DAXIS", "DAXIS", 0, 2, 4, 4, _GEANT_DRAWING_DAXIS_parameters,
1148  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
1149  _GEANT_DRAWING_DAXIS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1150  (char*)0, (int*)0 };
1151  
1152 static KmParReal   _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
1153  (char*)0, (char*)0, 0 };
1154 static KmParameter _GEANT_DRAWING_DSCALE_U = { "U", 1,
1155  "U-coord. (horizontal) of the centre of scale", (char*)0, (char*)0, 12, 0,
1156  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1157  &_GEANT_DRAWING_DSCALE_U_type };
1158 static KmParReal   _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
1159  (char*)0, (char*)0, 0 };
1160 static KmParameter _GEANT_DRAWING_DSCALE_V = { "V", 1,
1161  "V-coord. (vertical) of the centre of scale", (char*)0, (char*)0, 12, 0,
1162  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1163  &_GEANT_DRAWING_DSCALE_V_type };
1164 static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
1165  &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
1166 static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
1167  "It draws a scale centered in U,V." };
1168 static KmCommand _GEANT_DRAWING_DSCALE = { &_GEANT_DRAWING_DAXIS,
1169  "/GEANT/DRAWING/DSCALE", "DSCALE", 0, 2, 2, 2,
1170  _GEANT_DRAWING_DSCALE_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
1171  (pCharFunc*)0, 2, _GEANT_DRAWING_DSCALE_guidance, 0, (char**)0, 0, (char**)0,
1172  0, (char**)0, (char*)0, (int*)0 };
1173  
1174 static KmParameter _GEANT_DRAWING_DVECTOR_XVECT = { "XVECT", 5,
1175  "Vector containing X-coord. (horizontal)", (char*)0, (char*)0, 20, 0,
1176  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
1177 static KmParameter _GEANT_DRAWING_DVECTOR_YVECT = { "YVECT", 5,
1178  "Vector containing Y-coord. (vertical)", (char*)0, (char*)0, 20, 0,
1179  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
1180 static KmParInt    _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
1181  (char*)0, (char*)0, 0 };
1182 static KmParameter _GEANT_DRAWING_DVECTOR_NPOINT = { "NPOINT", 6,
1183  "Number of coord.", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
1184  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DVECTOR_NPOINT_type };
1185 static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
1186  &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
1187  &_GEANT_DRAWING_DVECTOR_NPOINT };
1188 static char *_GEANT_DRAWING_DVECTOR_guidance[] = {
1189  "Draw a polyline of 'npoint' point via",
1190  "a call to GDRAWV(xvect,yvect,npoint)",
1191  "where xvect and yvect are two KUIP vectors" };
1192 static KmCommand _GEANT_DRAWING_DVECTOR = { &_GEANT_DRAWING_DSCALE,
1193  "/GEANT/DRAWING/DVECTOR", "DVECTOR", 0, 2, 3, 3,
1194  _GEANT_DRAWING_DVECTOR_parameters, 0, 0, gxdraw_, (IntFunc*)0,
1195  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_DRAWING_DVECTOR_guidance, 0,
1196  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1197  
1198 static KmParReal   _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
1199  0 };
1200 static KmParameter _GEANT_DRAWING_DTEXT_X0 = { "X0", 2,
1201  "X-coord. (horizontal) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
1202  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_X0_type };
1203 static KmParReal   _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
1204  0 };
1205 static KmParameter _GEANT_DRAWING_DTEXT_Y0 = { "Y0", 2,
1206  "Y-coord. (vertical) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
1207  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_Y0_type };
1208 static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
1209  "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1210   (void*)0 };
1211 static KmParReal   _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
1212  (char*)0, (char*)0, 0 };
1213 static KmParameter _GEANT_DRAWING_DTEXT_SIZE = { "SIZE", 4,
1214  "Character size (cm)", ".5", (char*)0, 12, 0, (char**)0, 0, (char**)0,
1215  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_SIZE_type };
1216 static KmParReal   _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
1217  "360.", 0 };
1218 static KmParameter _GEANT_DRAWING_DTEXT_ANGLE = { "ANGLE", 5,
1219  "Rotation angle (deg)", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
1220  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_ANGLE_type };
1221 static KmParInt    _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
1222  (char*)0, (char*)0, 0 };
1223 static KmParameter _GEANT_DRAWING_DTEXT_LWID = { "LWID", 4, "Line width", "4",
1224  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1225  &_GEANT_DRAWING_DTEXT_LWID_type };
1226 static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
1227 static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
1228  };
1229 static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
1230  _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
1231 static KmParameter _GEANT_DRAWING_DTEXT_CENT = { "CENT", 4,
1232  "Centering option", "CENT", (char*)0, 8, 3, _GEANT_DRAWING_DTEXT_CENT_range,
1233  3, _GEANT_DRAWING_DTEXT_CENT_range, (KmParFlag)0, KmTYPE_OPTION,
1234  &_GEANT_DRAWING_DTEXT_CENT_type };
1235 static KmParameter *_GEANT_DRAWING_DTEXT_parameters[] = {
1236  &_GEANT_DRAWING_DTEXT_X0, &_GEANT_DRAWING_DTEXT_Y0,
1237  &_GEANT_DRAWING_DTEXT_TEXT, &_GEANT_DRAWING_DTEXT_SIZE,
1238  &_GEANT_DRAWING_DTEXT_ANGLE, &_GEANT_DRAWING_DTEXT_LWID,
1239  &_GEANT_DRAWING_DTEXT_CENT };
1240 static char *_GEANT_DRAWING_DTEXT_guidance[] = {
1241  " CALL GDRAWT(x0,y0,text,size,angle,lwid,opt)",
1242  "It allows one to draw some text in the current picture.",
1243  "Now more than 160 colours are available. The text colour",
1244  "must be set via the command IGSET. The size of the",
1245  "text will follow the zooming factors in the view banks." };
1246 static KmCommand _GEANT_DRAWING_DTEXT = { &_GEANT_DRAWING_DVECTOR,
1247  "/GEANT/DRAWING/DTEXT", "DTEXT", 0, 2, 7, 7, _GEANT_DRAWING_DTEXT_parameters,
1248  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
1249  _GEANT_DRAWING_DTEXT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1250  (char*)0, (int*)0 };
1251  
1252 static KmParameter _GEANT_DRAWING_DFSPC_NAME = { "NAME", 4, "Volume name",
1253  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1254  KmTYPE_CHAR,  (void*)0 };
1255 static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
1256 static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
1257  (char*)0, (char*)0 };
1258 static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
1259  _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
1260 static KmParameter _GEANT_DRAWING_DFSPC_CSORT = { "CSORT", 5,
1261  "Alphabetic sorting flag", "N", (char*)0, 8, 4,
1262  _GEANT_DRAWING_DFSPC_CSORT_range, 4, _GEANT_DRAWING_DFSPC_CSORT_range,
1263  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CSORT_type };
1264 static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
1265 static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
1266  (char*)0, (char*)0 };
1267 static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
1268  _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
1269 static KmParameter _GEANT_DRAWING_DFSPC_CINTER = { "CINTER", 6,
1270  "Interactive/Batch version", "I", (char*)0, 8, 4,
1271  _GEANT_DRAWING_DFSPC_CINTER_range, 4, _GEANT_DRAWING_DFSPC_CINTER_range,
1272  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CINTER_type };
1273 static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
1274  &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
1275  &_GEANT_DRAWING_DFSPC_CINTER };
1276 static char *_GEANT_DRAWING_DFSPC_guidance[] = {
1277  " CALL GDFSPC(name,isort,inter)",
1278  "Same as DSPEC, but it will draw the specifications for all the volumes.",
1279  "If the alphabetic sorting flag is YES, all pictures will be drawn in\
1280  ascending", "alphabetic order; isort is set to 1.",
1281  "If INTERACTIVE, (inter=1), the routine will prompt the user at each plot",
1282  "before doing a clear screen, otherwise it will clear automatically",
1283  "the screen before starting a new frame." };
1284 static KmCommand _GEANT_DRAWING_DFSPC = { &_GEANT_DRAWING_DTEXT,
1285  "/GEANT/DRAWING/DFSPC", "DFSPC", 0, 2, 3, 1, _GEANT_DRAWING_DFSPC_parameters,
1286  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
1287  _GEANT_DRAWING_DFSPC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1288  (char*)0, (int*)0 };
1289  
1290 static KmParameter _GEANT_DRAWING_D3DSPEC_NAME = { "NAME", 4, "Volume name",
1291  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1292  KmTYPE_CHAR,  (void*)0 };
1293 static KmParReal   _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
1294  "180.", 0 };
1295 static KmParameter _GEANT_DRAWING_D3DSPEC_TETA3 = { "TETA3", 5, "Theta angle",
1296  "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1297  &_GEANT_DRAWING_D3DSPEC_TETA3_type };
1298 static KmParReal   _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
1299  "360.", 0 };
1300 static KmParameter _GEANT_DRAWING_D3DSPEC_PHI3 = { "PHI3", 4, "Phi angle",
1301  "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1302  &_GEANT_DRAWING_D3DSPEC_PHI3_type };
1303 static KmParReal   _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
1304  "360.", 0 };
1305 static KmParameter _GEANT_DRAWING_D3DSPEC_PSI3 = { "PSI3", 4, "Psi angle",
1306  "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1307  &_GEANT_DRAWING_D3DSPEC_PSI3_type };
1308 static KmParReal   _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
1309  "40.", 0 };
1310 static KmParameter _GEANT_DRAWING_D3DSPEC_U03 = { "U03", 3,
1311  "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
1312  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_U03_type };
1313 static KmParReal   _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
1314  "40.", 0 };
1315 static KmParameter _GEANT_DRAWING_D3DSPEC_V03 = { "V03", 3,
1316  "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
1317  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_V03_type };
1318 static KmParReal   _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
1319  "0.00001", "10.", 5 };
1320 static KmParameter _GEANT_DRAWING_D3DSPEC_ZM3 = { "ZM3", 3,
1321  "Zoom factor for current size factors", "1.", (char*)0, 12, 0, (char**)0, 0,
1322  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_ZM3_type };
1323 static KmParameter *_GEANT_DRAWING_D3DSPEC_parameters[] = {
1324  &_GEANT_DRAWING_D3DSPEC_NAME, &_GEANT_DRAWING_D3DSPEC_TETA3,
1325  &_GEANT_DRAWING_D3DSPEC_PHI3, &_GEANT_DRAWING_D3DSPEC_PSI3,
1326  &_GEANT_DRAWING_D3DSPEC_U03, &_GEANT_DRAWING_D3DSPEC_V03,
1327  &_GEANT_DRAWING_D3DSPEC_ZM3 };
1328 static char *_GEANT_DRAWING_D3DSPEC_guidance[] = {
1329  "Trough a call to GSPE3D, this command allows one to show",
1330  "the volume (3D views in real time), together with",
1331  "its geometrical specifications (if using MOTIF). The 3D drawing will",
1332  "be performed according the current values of the options HIDE and",
1333  "SHAD and according the current CVOL clipping parameters for that", "volume."
1334  };
1335 static KmCommand _GEANT_DRAWING_D3DSPEC = { &_GEANT_DRAWING_DFSPC,
1336  "/GEANT/DRAWING/D3DSPEC", "D3DSPEC", 0, 2, 7, 1,
1337  _GEANT_DRAWING_D3DSPEC_parameters, 0, 0, gxdraw_, (IntFunc*)0,
1338  (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_DRAWING_D3DSPEC_guidance, 0,
1339  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1340  
1341 static KmParameter _GEANT_DRAWING_DSPEC_NAME = { "NAME", 4, "Volume name",
1342  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1343  KmTYPE_CHAR,  (void*)0 };
1344 static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
1345  &_GEANT_DRAWING_DSPEC_NAME };
1346 static char *_GEANT_DRAWING_DSPEC_guidance[] = {
1347  "Trough a call to GDSPEC(name), this command allows one to show three",
1348  "views of the volume (two cut-views and a 3D view), together with",
1349  "its geometrical specifications. The 3D drawing will",
1350  "be performed according the current values of the options HIDE and",
1351  "SHAD and according the current CVOL clipping parameters for that", "volume."
1352  };
1353 static KmCommand _GEANT_DRAWING_DSPEC = { &_GEANT_DRAWING_D3DSPEC,
1354  "/GEANT/DRAWING/DSPEC", "DSPEC", 0, 2, 1, 1, _GEANT_DRAWING_DSPEC_parameters,
1355  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
1356  _GEANT_DRAWING_DSPEC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1357  (char*)0, (int*)0 };
1358  
1359 static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
1360  " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
1361  (void*)0 };
1362 static KmParInt    _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
1363  "15", 0 };
1364 static KmParameter _GEANT_DRAWING_DTREE_LEVMAX = { "LEVMAX", 6, "Depth level",
1365  "3", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1366  &_GEANT_DRAWING_DTREE_LEVMAX_type };
1367 static KmParInt    _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
1368  (char*)0, (char*)0, 0 };
1369 static KmParameter _GEANT_DRAWING_DTREE_ISELT = { "ISELT", 5, "Options    ",
1370  "111", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1371  &_GEANT_DRAWING_DTREE_ISELT_type };
1372 static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
1373  &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
1374  &_GEANT_DRAWING_DTREE_ISELT };
1375 static char *_GEANT_DRAWING_DTREE_guidance[] = {
1376  "This command allows the drawing of the logical tree,",
1377  "displaying the name, the multiplicity and other information about the\
1378  volumes,", "via a call to GDTREE(name,levmax,isel):",
1379  "if the third parameter is not given (default), the command will",
1380  "produce the drawing of the tree displaying, for each volume, the",
1381  "number of the following levels (red arrows) and of the preceeding",
1382  "levels (green arrows); then the control is automatically given to the",
1383  "mouse: clicking on the left button when the cursor is inside a volume's",
1384  "pave will perform a DSPEC for that volume; doing the same when the cursor",
1385  "is on a red arrow, will perform a DTREE for the relative volume (the",
1386  "number of levels displayed depending on the clicked arrow); doing the",
1387  "same for the 'i-th' green arrow of a given volume, will perform a DTREE",
1388  "for its mother-volume staying 'i' levels before.",
1389  "If running with X-windows, the drawing of the specification (DSPEC)",
1390  "is performed",
1391  "in a different window to speed up the scanning of the tree.",
1392  "Iterating this procedure it is possible to analyse very easily and quickly",
1393  "any kind of tree. Clicking the right button of the mouse will return",
1394  "the control to the command mode.", "If the ISELT parameter is given,",
1395  "then the TREE will work as in the",
1396  "previous version, with ISELT up to 10001.",
1397  "The following command will perform a drawing of the tree and give the",
1398  "control to the user via the mouse:", " EXAMPLE -", " dtree NAME 3" };
1399 static KmCommand _GEANT_DRAWING_DTREE = { &_GEANT_DRAWING_DSPEC,
1400  "/GEANT/DRAWING/DTREE", "DTREE", 0, 2, 3, 0, _GEANT_DRAWING_DTREE_parameters,
1401  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26,
1402  _GEANT_DRAWING_DTREE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1403  (char*)0, (int*)0 };
1404  
1405 static KmParReal   _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
1406  "10.", 0 };
1407 static KmParameter _GEANT_DRAWING_BOMB_BOOM = { "BOOM", 4,
1408  " Exploding factor for volumes position ", "0.", (char*)0, 12, 0, (char**)0,
1409  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_BOMB_BOOM_type };
1410 static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
1411  &_GEANT_DRAWING_BOMB_BOOM };
1412 static char *_GEANT_DRAWING_BOMB_guidance[] = {
1413  "To 'explode' the detector. If BOOM is positive (values smaller",
1414  "than 1. are suggested, but any value is possible)",
1415  "all the volumes are shifted by a distance",
1416  "proportional to BOOM along the direction between their centre",
1417  "and the origin of the MARS; the volumes which are symmetric",
1418  "with respect to this origin are simply not shown.",
1419  "BOOM equal to 0 resets the normal mode.",
1420  "A negative (greater than -1.) value of",
1421  "BOOM will cause an 'implosion'; for even lower values of BOOM",
1422  "the volumes' positions will be reflected respect to the origin.",
1423  "This command can be useful to improve the 3D effect for very",
1424  "complex detectors. The following commands will make explode the",
1425  "detector:", " EXAMPLE -", " dopt hide on", " satt * seen 1",
1426  " draw NAME 40 40 0 10 10 .01 .01", " bomb 1", " next",
1427  " draw NAME 40 40 0 10 10 .01 .01" };
1428 static KmCommand _GEANT_DRAWING_BOMB = { &_GEANT_DRAWING_DTREE,
1429  "/GEANT/DRAWING/BOMB", "BOMB", 0, 2, 1, 1, _GEANT_DRAWING_BOMB_parameters, 0,
1430  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 20,
1431  _GEANT_DRAWING_BOMB_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1432  (char*)0, (int*)0 };
1433  
1434 static KmParameter _GEANT_DRAWING_SHIFT_CNVN = { "CNVN", 4,
1435  " Name of volume to be shifted        ", "*", (char*)0, 20, 0, (char**)0, 0,
1436  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
1437 static KmParReal   _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
1438  (char*)0, (char*)0, 0 };
1439 static KmParameter _GEANT_DRAWING_SHIFT_XXXX = { "XXXX", 4,
1440  " Shift along X axis                  ", "0.", (char*)0, 12, 0, (char**)0, 0,
1441  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_XXXX_type };
1442 static KmParReal   _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
1443  (char*)0, (char*)0, 0 };
1444 static KmParameter _GEANT_DRAWING_SHIFT_YYYY = { "YYYY", 4,
1445  " Shift along Y axis                  ", "0.", (char*)0, 12, 0, (char**)0, 0,
1446  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_YYYY_type };
1447 static KmParReal   _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
1448  (char*)0, (char*)0, 0 };
1449 static KmParameter _GEANT_DRAWING_SHIFT_ZZZZ = { "ZZZZ", 4,
1450  " Shift along Z axis                  ", "0.", (char*)0, 12, 0, (char**)0, 0,
1451  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_ZZZZ_type };
1452 static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
1453  &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
1454  &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
1455 static char *_GEANT_DRAWING_SHIFT_guidance[] = {
1456  "To draw a volume shifted from its initial position when hidden",
1457  "line removal is ON. It can be useful if you want to extract a",
1458  "volume or some volumes from the detector to show them more clearly.",
1459  "The last requested SHIFT for each volume",
1460  "NAME is performed. Moreover, the SHIFT of",
1461  "each volume will be performed starting from where its mother has",
1462  "been shifted, so that it's easier to SHIFT nicely sets",
1463  "of volumes using the mother-daughter relationships.",
1464  "If '.' is given as the name of the volume",
1465  "to be shifted, the shifts for all volumes will be reset.",
1466  "The following commands will produce the translation along",
1467  "the Z-axis of the previously drawn volume:", " EXAMPLE -", " dopt hide on",
1468  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " shift NAME 0 0 10" };
1469 static KmCommand _GEANT_DRAWING_SHIFT = { &_GEANT_DRAWING_BOMB,
1470  "/GEANT/DRAWING/SHIFT", "SHIFT", 0, 2, 4, 4, _GEANT_DRAWING_SHIFT_parameters,
1471  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 17,
1472  _GEANT_DRAWING_SHIFT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1473  (char*)0, (int*)0 };
1474  
1475 static KmParameter _GEANT_DRAWING_DXCUT_NAME = { "NAME", 4, "Volume name",
1476  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1477  KmTYPE_CHAR,  (void*)0 };
1478 static KmParReal   _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
1479  "360.", 0 };
1480 static KmParameter _GEANT_DRAWING_DXCUT_CUTTHE = { "CUTTHE", 6,
1481  "Theta angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
1482  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1483  &_GEANT_DRAWING_DXCUT_CUTTHE_type };
1484 static KmParReal   _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
1485  "360.", 0 };
1486 static KmParameter _GEANT_DRAWING_DXCUT_CUTPHI = { "CUTPHI", 6,
1487  "Phi angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
1488  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1489  &_GEANT_DRAWING_DXCUT_CUTPHI_type };
1490 static KmParReal   _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
1491  (char*)0, (char*)0, 0 };
1492 static KmParameter _GEANT_DRAWING_DXCUT_CUTVAL = { "CUTVAL", 6,
1493  "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
1494  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1495  &_GEANT_DRAWING_DXCUT_CUTVAL_type };
1496 static KmParReal   _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
1497  "360.", 0 };
1498 static KmParameter _GEANT_DRAWING_DXCUT_THETA = { "THETA", 5,
1499  "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
1500  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1501  &_GEANT_DRAWING_DXCUT_THETA_type };
1502 static KmParReal   _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
1503  "360.", 0 };
1504 static KmParameter _GEANT_DRAWING_DXCUT_PHI = { "PHI", 3,
1505  "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
1506  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1507  &_GEANT_DRAWING_DXCUT_PHI_type };
1508 static KmParReal   _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
1509  (char*)0, (char*)0, 0 };
1510 static KmParameter _GEANT_DRAWING_DXCUT_U0 = { "U0", 2,
1511  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1512  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1513  &_GEANT_DRAWING_DXCUT_U0_type };
1514 static KmParReal   _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
1515  (char*)0, (char*)0, 0 };
1516 static KmParameter _GEANT_DRAWING_DXCUT_V0 = { "V0", 2,
1517  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1518  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_V0_type };
1519 static KmParReal   _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
1520  (char*)0, (char*)0, 0 };
1521 static KmParameter _GEANT_DRAWING_DXCUT_SU = { "SU", 2,
1522  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1523  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SU_type };
1524 static KmParReal   _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
1525  (char*)0, (char*)0, 0 };
1526 static KmParameter _GEANT_DRAWING_DXCUT_SV = { "SV", 2,
1527  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1528  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SV_type };
1529 static KmParameter *_GEANT_DRAWING_DXCUT_parameters[] = {
1530  &_GEANT_DRAWING_DXCUT_NAME, &_GEANT_DRAWING_DXCUT_CUTTHE,
1531  &_GEANT_DRAWING_DXCUT_CUTPHI, &_GEANT_DRAWING_DXCUT_CUTVAL,
1532  &_GEANT_DRAWING_DXCUT_THETA, &_GEANT_DRAWING_DXCUT_PHI,
1533  &_GEANT_DRAWING_DXCUT_U0, &_GEANT_DRAWING_DXCUT_V0, &_GEANT_DRAWING_DXCUT_SU,
1534  &_GEANT_DRAWING_DXCUT_SV };
1535 static char *_GEANT_DRAWING_DXCUT_guidance[] = {
1536  " CALL GDRAWX(name,cutthe,cutphi,cutval,theta,phi,u0,v0,su,sv)",
1537  "The cut plane is normal to the line given by the cut angles",
1538  "cutthe and cutphi and placed at the distance cutval from the origin.",
1539  "The resulting picture is seen from the viewing angles theta,phi.",
1540  "If optional parameters are missing, the current values in /GCDRAW/",
1541  "are taken." };
1542 static KmCommand _GEANT_DRAWING_DXCUT = { &_GEANT_DRAWING_SHIFT,
1543  "/GEANT/DRAWING/DXCUT", "DXCUT", 0, 2, 10, 4,
1544  _GEANT_DRAWING_DXCUT_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
1545  (pCharFunc*)0, 6, _GEANT_DRAWING_DXCUT_guidance, 0, (char**)0, 0, (char**)0,
1546  0, (char**)0, (char*)0, (int*)0 };
1547  
1548 static KmParameter _GEANT_DRAWING_DCUT_NAME = { "NAME", 4, "Volume name",
1549  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1550  KmTYPE_CHAR,  (void*)0 };
1551 static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
1552 static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
1553  };
1554 static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
1555  _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
1556 static KmParameter _GEANT_DRAWING_DCUT_CAXIS = { "CAXIS", 5, "Axis value",
1557  (char*)0, (char*)0, 8, 3, _GEANT_DRAWING_DCUT_CAXIS_range, 3,
1558  _GEANT_DRAWING_DCUT_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
1559  &_GEANT_DRAWING_DCUT_CAXIS_type };
1560 static KmParReal   _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
1561  (char*)0, (char*)0, 0 };
1562 static KmParameter _GEANT_DRAWING_DCUT_CUTVAL = { "CUTVAL", 6,
1563  "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
1564  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1565  &_GEANT_DRAWING_DCUT_CUTVAL_type };
1566 static KmParReal   _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
1567  (char*)0, (char*)0, 0 };
1568 static KmParameter _GEANT_DRAWING_DCUT_U0 = { "U0", 2,
1569  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1570  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1571  &_GEANT_DRAWING_DCUT_U0_type };
1572 static KmParReal   _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
1573  (char*)0, (char*)0, 0 };
1574 static KmParameter _GEANT_DRAWING_DCUT_V0 = { "V0", 2,
1575  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1576  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_V0_type };
1577 static KmParReal   _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
1578  (char*)0, (char*)0, 0 };
1579 static KmParameter _GEANT_DRAWING_DCUT_SU = { "SU", 2,
1580  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1581  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SU_type };
1582 static KmParReal   _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
1583  (char*)0, (char*)0, 0 };
1584 static KmParameter _GEANT_DRAWING_DCUT_SV = { "SV", 2,
1585  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1586  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SV_type };
1587 static KmParameter *_GEANT_DRAWING_DCUT_parameters[] = {
1588  &_GEANT_DRAWING_DCUT_NAME, &_GEANT_DRAWING_DCUT_CAXIS,
1589  &_GEANT_DRAWING_DCUT_CUTVAL, &_GEANT_DRAWING_DCUT_U0,
1590  &_GEANT_DRAWING_DCUT_V0, &_GEANT_DRAWING_DCUT_SU, &_GEANT_DRAWING_DCUT_SV };
1591 static char *_GEANT_DRAWING_DCUT_guidance[] = {
1592  " CALL GDRAWC(name,iaxis,cutval,u0,v0,su,sv)",
1593  "The cut plane is normal to caxis (X,Y,Z), corresponding to iaxis (1,2,3),",
1594  "and placed at the distance cutval from the origin.",
1595  "The resulting picture is seen from the the same axis.",
1596  "If optional parameters are missing, the current values in /GCDRAW/",
1597  "are taken.",
1598  "When HIDE Mode is ON, it is possible to get the same effect with",
1599  "the CVOL/BOX command." };
1600 static KmCommand _GEANT_DRAWING_DCUT = { &_GEANT_DRAWING_DXCUT,
1601  "/GEANT/DRAWING/DCUT", "DCUT", 0, 2, 7, 3, _GEANT_DRAWING_DCUT_parameters, 0,
1602  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
1603  _GEANT_DRAWING_DCUT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1604  (char*)0, (int*)0 };
1605  
1606 static KmParInt    _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
1607  (char*)0, (char*)0, 0 };
1608 static KmParameter _GEANT_DRAWING_DVOLUME_N = { "N", 1,
1609  "Number of elements in arrays LNAMES and LNUMBS", "1", (char*)0, 8, 0,
1610  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
1611  &_GEANT_DRAWING_DVOLUME_N_type };
1612 static KmParameter _GEANT_DRAWING_DVOLUME_NAMNUM = { "NAMNUM", 6,
1613  "Volume names and numbers (ex. \"NAME1,NR1,NAME2,NR2\")", (char*)0, (char*)0,
1614  20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
1615 static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
1616 static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
1617 static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
1618  _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
1619 static KmParameter _GEANT_DRAWING_DVOLUME_CHNRS = { "CHNRS", 5,
1620  "Reference system used", "MARS", (char*)0, 8, 2,
1621  _GEANT_DRAWING_DVOLUME_CHNRS_range, 2, _GEANT_DRAWING_DVOLUME_CHNRS_range,
1622  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DVOLUME_CHNRS_type };
1623 static KmParReal   _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
1624  "360.", 0 };
1625 static KmParameter _GEANT_DRAWING_DVOLUME_THETA = { "THETA", 5,
1626  "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
1627  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1628  &_GEANT_DRAWING_DVOLUME_THETA_type };
1629 static KmParReal   _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
1630  "360.", 0 };
1631 static KmParameter _GEANT_DRAWING_DVOLUME_PHI = { "PHI", 3,
1632  "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
1633  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1634  &_GEANT_DRAWING_DVOLUME_PHI_type };
1635 static KmParReal   _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
1636  "180.", 0 };
1637 static KmParameter _GEANT_DRAWING_DVOLUME_PSI = { "PSI", 3,
1638  "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
1639  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_PSI_type };
1640 static KmParReal   _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
1641  (char*)0, (char*)0, 0 };
1642 static KmParameter _GEANT_DRAWING_DVOLUME_U0 = { "U0", 2,
1643  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1644  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1645  &_GEANT_DRAWING_DVOLUME_U0_type };
1646 static KmParReal   _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
1647  (char*)0, (char*)0, 0 };
1648 static KmParameter _GEANT_DRAWING_DVOLUME_V0 = { "V0", 2,
1649  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1650  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_V0_type };
1651 static KmParReal   _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
1652  (char*)0, (char*)0, 0 };
1653 static KmParameter _GEANT_DRAWING_DVOLUME_SU = { "SU", 2,
1654  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1655  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SU_type };
1656 static KmParReal   _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
1657  (char*)0, (char*)0, 0 };
1658 static KmParameter _GEANT_DRAWING_DVOLUME_SV = { "SV", 2,
1659  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1660  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SV_type };
1661 static KmParameter *_GEANT_DRAWING_DVOLUME_parameters[] = {
1662  &_GEANT_DRAWING_DVOLUME_N, &_GEANT_DRAWING_DVOLUME_NAMNUM,
1663  &_GEANT_DRAWING_DVOLUME_CHNRS, &_GEANT_DRAWING_DVOLUME_THETA,
1664  &_GEANT_DRAWING_DVOLUME_PHI, &_GEANT_DRAWING_DVOLUME_PSI,
1665  &_GEANT_DRAWING_DVOLUME_U0, &_GEANT_DRAWING_DVOLUME_V0,
1666  &_GEANT_DRAWING_DVOLUME_SU, &_GEANT_DRAWING_DVOLUME_SV };
1667 static char *_GEANT_DRAWING_DVOLUME_guidance[] = {
1668  " CALL GDRVOL(n,lnames,lnumbs,nrs,theta,phi,psi,u0,v0,su,sv)",
1669  "N is the number of levels from the top of the geometry structure",
1670  "to the volume lnames(n),lnumbs(n) to be drawn.",
1671  "NAMNUM contain the arrays lnames and lnumbs,",
1672  "identifying the path, in pairs and separated by commas; for",
1673  "example (with n=2) :", "'lname(1),lnumbs(1),lname(2),lnumbs(2) '",
1674  "CHNRS is the name of the reference system used: MARS for MAster Reference",
1675  "System or DRS for Daughter Reference System.",
1676  "NRS=0 for MARS or NRS<>0 for DRS",
1677  "If optional parameters are missing, the current values in /GCDRAW/",
1678  "are taken." };
1679 static KmCommand _GEANT_DRAWING_DVOLUME = { &_GEANT_DRAWING_DCUT,
1680  "/GEANT/DRAWING/DVOLUME", "DVOLUME", 0, 2, 10, 3,
1681  _GEANT_DRAWING_DVOLUME_parameters, 0, 0, gxdraw_, (IntFunc*)0,
1682  (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DRAWING_DVOLUME_guidance, 0,
1683  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
1684  
1685 static KmParReal   _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
1686  (char*)0, (char*)0, 0 };
1687 static KmParameter _GEANT_DRAWING_RANG5D_X1MIN = { "X1MIN", 5,
1688  "x coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1689  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MIN_type };
1690 static KmParReal   _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
1691  (char*)0, (char*)0, 0 };
1692 static KmParameter _GEANT_DRAWING_RANG5D_X1MAX = { "X1MAX", 5,
1693  "x coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1694  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MAX_type };
1695 static KmParReal   _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
1696  (char*)0, (char*)0, 0 };
1697 static KmParameter _GEANT_DRAWING_RANG5D_Y1MIN = { "Y1MIN", 5,
1698  "y coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1699  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MIN_type };
1700 static KmParReal   _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
1701  (char*)0, (char*)0, 0 };
1702 static KmParameter _GEANT_DRAWING_RANG5D_Y1MAX = { "Y1MAX", 5,
1703  "y coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1704  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MAX_type };
1705 static KmParReal   _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
1706  (char*)0, (char*)0, 0 };
1707 static KmParameter _GEANT_DRAWING_RANG5D_Z1MIN = { "Z1MIN", 5,
1708  "z coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1709  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MIN_type };
1710 static KmParReal   _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
1711  (char*)0, (char*)0, 0 };
1712 static KmParameter _GEANT_DRAWING_RANG5D_Z1MAX = { "Z1MAX", 5,
1713  "z coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1714  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MAX_type };
1715 static KmParameter *_GEANT_DRAWING_RANG5D_parameters[] = {
1716  &_GEANT_DRAWING_RANG5D_X1MIN, &_GEANT_DRAWING_RANG5D_X1MAX,
1717  &_GEANT_DRAWING_RANG5D_Y1MIN, &_GEANT_DRAWING_RANG5D_Y1MAX,
1718  &_GEANT_DRAWING_RANG5D_Z1MIN, &_GEANT_DRAWING_RANG5D_Z1MAX };
1719 static char *_GEANT_DRAWING_RANG5D_guidance[] = {
1720  "It sets the range for the x,y,z variables." };
1721 static KmCommand _GEANT_DRAWING_RANG5D = { &_GEANT_DRAWING_DVOLUME,
1722  "/GEANT/DRAWING/RANG5D", "RANG5D", 0, 2, 6, 6,
1723  _GEANT_DRAWING_RANG5D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
1724  (pCharFunc*)0, 1, _GEANT_DRAWING_RANG5D_guidance, 0, (char**)0, 0, (char**)0,
1725  0, (char**)0, (char*)0, (int*)0 };
1726  
1727 static KmParReal   _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
1728  (char*)0, (char*)0, 0 };
1729 static KmParameter _GEANT_DRAWING_VAR5D_TSEQTO = { "TSEQTO", 6,
1730  "total sequential time", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1731  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQTO_type };
1732 static KmParInt    _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
1733  (char*)0, (char*)0, 0 };
1734 static KmParameter _GEANT_DRAWING_VAR5D_NPROC = { "NPROC", 5,
1735  "number of processors", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
1736  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NPROC_type };
1737 static KmParInt    _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
1738  (char*)0, (char*)0, 0 };
1739 static KmParameter _GEANT_DRAWING_VAR5D_NMPTOT = { "NMPTOT", 6,
1740  "number of message passing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
1741  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NMPTOT_type };
1742 static KmParReal   _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
1743  (char*)0, (char*)0, 0 };
1744 static KmParameter _GEANT_DRAWING_VAR5D_TOTMBY = { "TOTMBY", 6,
1745  "total megabytes transfert", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1746  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TOTMBY_type };
1747 static KmParReal   _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
1748  (char*)0, (char*)0, 0 };
1749 static KmParameter _GEANT_DRAWING_VAR5D_TSEQ = { "TSEQ", 4,
1750  "not parallelized code", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
1751  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQ_type };
1752 static KmParReal   _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
1753  (char*)0, (char*)0, 0 };
1754 static KmParameter _GEANT_DRAWING_VAR5D_TLAT = { "TLAT", 4, "latency time",
1755  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1756  KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TLAT_type };
1757 static KmParReal   _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
1758  (char*)0, (char*)0, 0 };
1759 static KmParameter _GEANT_DRAWING_VAR5D_TNET = { "TNET", 4,
1760  "network speed in Mbytes/sec", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1761  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TNET_type };
1762 static KmParameter *_GEANT_DRAWING_VAR5D_parameters[] = {
1763  &_GEANT_DRAWING_VAR5D_TSEQTO, &_GEANT_DRAWING_VAR5D_NPROC,
1764  &_GEANT_DRAWING_VAR5D_NMPTOT, &_GEANT_DRAWING_VAR5D_TOTMBY,
1765  &_GEANT_DRAWING_VAR5D_TSEQ, &_GEANT_DRAWING_VAR5D_TLAT,
1766  &_GEANT_DRAWING_VAR5D_TNET };
1767 static char *_GEANT_DRAWING_VAR5D_guidance[] = {
1768  "It sets the values of the parameters expressed in the formula and",
1769  "specify which variables must be assumed as x,y,z (setting their value",
1770  "to 1001,1002,1003, respectively)." };
1771 static KmCommand _GEANT_DRAWING_VAR5D = { &_GEANT_DRAWING_RANG5D,
1772  "/GEANT/DRAWING/VAR5D", "VAR5D", 0, 2, 7, 7, _GEANT_DRAWING_VAR5D_parameters,
1773  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
1774  _GEANT_DRAWING_VAR5D_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1775  (char*)0, (int*)0 };
1776  
1777 static KmParReal   _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
1778  (char*)0, (char*)0, 0 };
1779 static KmParameter _GEANT_DRAWING_SPOT_XLPOS = { "XLPOS", 5,
1780  "x coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1781  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_XLPOS_type };
1782 static KmParReal   _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
1783  (char*)0, (char*)0, 0 };
1784 static KmParameter _GEANT_DRAWING_SPOT_YLPOS = { "YLPOS", 5,
1785  "y coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1786  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_YLPOS_type };
1787 static KmParReal   _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
1788  (char*)0, (char*)0, 0 };
1789 static KmParameter _GEANT_DRAWING_SPOT_ZLPOS = { "ZLPOS", 5,
1790  "z coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1791  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_ZLPOS_type };
1792 static KmParInt    _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
1793  (char*)0, (char*)0, 0 };
1794 static KmParameter _GEANT_DRAWING_SPOT_INTEN = { "INTEN", 5,
1795  "intensity of light source", (char*)0, (char*)0, 8, 0, (char**)0, 0,
1796  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_SPOT_INTEN_type };
1797 static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
1798  &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
1799  &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
1800 static char *_GEANT_DRAWING_SPOT_guidance[] = {
1801  "This point-like light source can be moved in the space and its intensity",
1802  "can be changed (INTEN going from 0 to 10) relatively to the ambience light."
1803  };
1804 static KmCommand _GEANT_DRAWING_SPOT = { &_GEANT_DRAWING_VAR5D,
1805  "/GEANT/DRAWING/SPOT", "SPOT", 0, 2, 4, 4, _GEANT_DRAWING_SPOT_parameters, 0,
1806  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
1807  _GEANT_DRAWING_SPOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1808  (char*)0, (int*)0 };
1809  
1810 static KmParameter _GEANT_DRAWING_DRAW_NAME = { "NAME", 4, "Volume name",
1811  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
1812  KmTYPE_CHAR,  (void*)0 };
1813 static KmParReal   _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
1814  "180.", 0 };
1815 static KmParameter _GEANT_DRAWING_DRAW_THETA = { "THETA", 5,
1816  "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
1817  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1818  &_GEANT_DRAWING_DRAW_THETA_type };
1819 static KmParReal   _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
1820  "360.", 0 };
1821 static KmParameter _GEANT_DRAWING_DRAW_PHI = { "PHI", 3,
1822  "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
1823  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1824  &_GEANT_DRAWING_DRAW_PHI_type };
1825 static KmParReal   _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
1826  "360.", 0 };
1827 static KmParameter _GEANT_DRAWING_DRAW_PSI = { "PSI", 3,
1828  "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
1829  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_PSI_type };
1830 static KmParReal   _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
1831  (char*)0, (char*)0, 0 };
1832 static KmParameter _GEANT_DRAWING_DRAW_U0 = { "U0", 2,
1833  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
1834  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
1835  &_GEANT_DRAWING_DRAW_U0_type };
1836 static KmParReal   _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
1837  (char*)0, (char*)0, 0 };
1838 static KmParameter _GEANT_DRAWING_DRAW_V0 = { "V0", 2,
1839  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
1840  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_V0_type };
1841 static KmParReal   _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
1842  (char*)0, (char*)0, 0 };
1843 static KmParameter _GEANT_DRAWING_DRAW_SU = { "SU", 2,
1844  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1845  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SU_type };
1846 static KmParReal   _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
1847  (char*)0, (char*)0, 0 };
1848 static KmParameter _GEANT_DRAWING_DRAW_SV = { "SV", 2,
1849  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
1850  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SV_type };
1851 static KmParameter *_GEANT_DRAWING_DRAW_parameters[] = {
1852  &_GEANT_DRAWING_DRAW_NAME, &_GEANT_DRAWING_DRAW_THETA,
1853  &_GEANT_DRAWING_DRAW_PHI, &_GEANT_DRAWING_DRAW_PSI, &_GEANT_DRAWING_DRAW_U0,
1854  &_GEANT_DRAWING_DRAW_V0, &_GEANT_DRAWING_DRAW_SU, &_GEANT_DRAWING_DRAW_SV };
1855 static char *_GEANT_DRAWING_DRAW_guidance[] = {
1856  " CALL GDRAW(name,theta,phi,psi,u0,v0,su,sv)",
1857  "If optional parameters are missing, the corresponding values are",
1858  "taken from the common /GCDRAW/. This command will draw the volumes,",
1859  "selected with their graphical attributes, set by the SATT",
1860  "facility. The drawing may be performed with hidden line removal",
1861  "and with shading effects according to the value of the options HIDE",
1862  "and SHAD; if the option SHAD is ON, the contour's edges can be",
1863  "drawn or not. If the option HIDE is ON, the detector can be",
1864  "exploded (BOMB), clipped with different shapes (CVOL), and some",
1865  "of its parts can be shifted from their original",
1866  "position (SHIFT). When HIDE is ON, if",
1867  "the drawing requires more than the available memory, the program",
1868  "will evaluate and display the number of missing words",
1869  "(so that the user can increase the",
1870  "size of its ZEBRA store). Finally, at the end of each drawing (with HIDE\
1871  on),", "the program will print messages about the memory used and",
1872  "statistics on the volumes' visibility.",
1873  "The following commands will produce the drawing of a green",
1874  "volume, specified by NAME, without using the hidden line removal",
1875  "technique, using the hidden line removal technique,",
1876  "with different linewidth and colour (red), with",
1877  "solid colour, with shading of surfaces, and without edges.",
1878  "Finally, some examples are given for the ray-tracing. (A possible",
1879  "string for the NAME of the volume can be found using the command DTREE).",
1880  " EXAMPLE -", " satt * seen -2", " satt NAME colo 3",
1881  " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt hide on",
1882  " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME colo 2",
1883  " satt NAME lwid 4", " draw NAME 40 40 0 10 10 .01 .01", " next",
1884  " dopt shad on", " satt * lwid 1", " satt NAME fill 1",
1885  " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME fill 3",
1886  " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt edge off",
1887  " draw NAME 40 40 0 10 10 .01 .01", " dopt rayt on", " satt * fill 20",
1888  " dopt mapp 1", " draw NAME 40 40 0 10 10 .01 .01", " dopt proj pers",
1889  " persp NAME 500", " draw NAME 40 40 0 10 10 1 1", " valcut 100 100 100",
1890  " dopt mapp 0", " dopt user on", " satt NAM1 seen 0", " satt NAM2 colo 2",
1891  " draw NAME 40 40 0 10 10 5 5" };
1892 static KmCommand _GEANT_DRAWING_DRAW = { &_GEANT_DRAWING_SPOT,
1893  "/GEANT/DRAWING/DRAW", "DRAW", 0, 2, 8, 1, _GEANT_DRAWING_DRAW_parameters, 0,
1894  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 59,
1895  _GEANT_DRAWING_DRAW_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
1896  (char*)0, (int*)0 };
1897  
1898 static char *_GEANT_DRAWING_guidance[] = {
1899  "Drawing commands. These commands allow the visualization in several ways",
1900  "of the volumes defined in the geometrical data structure. It is possible",
1901  "to draw the logical tree of volumes belonging to the detector (DTREE),",
1902  "to show their geometrical specification (DSPEC,DFSPC), to draw them",
1903  "and their cut views (DRAW, DCUT). Moreover, it is possible to execute",
1904  "these commands when the hidden line removal option is activated; in",
1905  "this case, the volumes can be also either translated in the space",
1906  "(SHIFT), or clipped by boolean operation (CVOL). In addition, it is",
1907  "possible to fill the surfaces of the volumes",
1908  "with solid colours when the shading option (SHAD) is activated.",
1909  "Several tools (ZOOM, LENS) have been developed to zoom detailed parts",
1910  "of the detectors or to scan physical events as well.",
1911  "Finally, the command MOVE will allow the rotation, translation and zooming",
1912  "on real time parts of the detectors or tracks and hits of a simulated\
1913  event.",
1914  "Ray-tracing commands. In case the command (DOPT RAYT ON) is executed,",
1915  "the drawing is performed by the Geant ray-tracing;",
1916  "automatically, the color is assigned according to the tracking medium of\
1917  each",
1918  "volume and the volumes with a density lower/equal than the air are\
1919  considered",
1920  "transparent; if the option (USER) is set (ON) (again via the command\
1921  (DOPT)),",
1922  "the user can set color and visibility for the desired volumes via the\
1923  command",
1924  "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
1925  "The resolution can be set via the command (SATT * FILL VALUE), where\
1926  (VALUE)",
1927  "is the ratio between the number of pixels drawn and 20 (user coordinates).",
1928  "Parallel view and perspective view are possible (DOPT PROJ PARA/PERS); in\
1929  the",
1930  "first case, we assume that the first mother volume of the tree is a box\
1931  with",
1932  "dimensions 10000 X 10000 X 10000 cm and the view point (infinetely far) is",
1933  "5000 cm far from the origin along the Z axis of the user coordinates; in\
1934  the",
1935  "second case, the distance between the observer and the origin of the world",
1936  "reference system is set in cm by the command (PERSP NAME VALUE);\
1937  grand-angle",
1938  "or telescopic effects can be achieved changing the scale factors in the\
1939  command", "(DRAW). When the final picture does not occupy the full window,",
1940  "mapping the space before tracing can speed up the drawing, but can also",
1941  "produce less precise results; values from 1 to 4 are allowed in the\
1942  command",
1943  "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
1944  for",
1945  "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
1946  speed).",
1947  "The command (VALCUT) allows the cutting of the detector by three planes",
1948  "ortogonal to the x,y,z axis. The attribute (LSTY) can be set by the\
1949  command",
1950  "SATT for any desired volume and can assume values from 0 to 7; it\
1951  determines",
1952  "the different light processing to be performed for different materials:",
1953  "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
1954  rough-metals,",
1955  "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
1956  the",
1957  "dark, the ambient light luminosity is 0.2 for each basic hue (the\
1958  saturation",
1959  "is 0.9) and the observer is assumed to have a light source (therefore he\
1960  will",
1961  "produce parallel light in the case of parallel view and point-like-source",
1962  "light in the case of perspective view)." };
1963 static KmMenu _GEANT_DRAWING = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/DRAWING",
1964  "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance, 0,
1965  (char**)0, 0, (char**)0 };
1966  
1967 static char *_GEANT_CVOL_guidance[] = { "Clipping commands.",
1968  "The hidden line removal technique is necessary to visualize properly",
1969  "very complex detectors. At the same time, it can be useful to visualize",
1970  "the inner elements of a detector in detail. For this purpose, the",
1971  "commands menu CVOL has been developed: these commands allow",
1972  "subtractions (via boolean operation) of given shapes from any part of",
1973  "the detector, therefore showing its inner contents. It is possible",
1974  "to clip each different volume by means of a different shape (BOX ,",
1975  "TUBE, CONE, SPHE are available). If '*' is given as the name of the",
1976  "volume to be clipped, all volumes are clipped by the given shape.",
1977  "A volume can be clipped at most twice (even by",
1978  "different shapes); if a volume is explicitely clipped",
1979  "twice, the '*' will not act on it anymore. Giving '.' as the name",
1980  "of the volume to be clipped will reset the clipping." };
1981 static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING,  (KmMenu*)0, "/GEANT/CVOL",
1982  "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance, 0, (char**)0, 0,
1983  (char**)0 };
1984  
1985 static char *_GEANT_guidance[] = { "GEANT specific commands." };
1986 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
1987  (KmCommand*)0, 1, _GEANT_guidance, 0, (char**)0, 0, (char**)0 };
1988  
1989   klnkmenu( &_GEANT, 950303 );
1990 }
1991  
1992  
1993 #ifdef F77_LCASE
1994 #  define gkgcon_ gkgcon
1995 #  define gxgcon_ gxgcon
1996 #endif
1997  
1998 #ifdef F77_UCASE
1999 #  define gkgcon_ GKGCON
2000 #  define gxgcon_ GXGCON
2001 #endif
2002  
2003 #ifdef IBM370
2004 #  pragma linkage(GKGCON,FORTRAN)
2005 #  pragma linkage(GXGCON,FORTRAN)
2006 #endif
2007  
2008 extern void gkgcon_();
2009 extern void gxgcon_();
2010  
2011 void gkgcon_()
2012 {
2013  
2014 static KmParInt    _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
2015  (char*)0, (char*)0, (char*)0, 0 };
2016 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD = { "ICADD", 5,
2017  "Colour table index", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
2018  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type };
2019 static KmParInt    _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
2020  (char*)0, (char*)0, (char*)0, 0 };
2021 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL = { "ICVAL", 5,
2022  "Colour table value", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
2023  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type };
2024 static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
2025  &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
2026  &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
2027 static char *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance[] = {
2028  "Sets the color table LOOKTB(ICADD)=ICVAL.",
2029  "If ICADD=0 then LOOKTB(1:16) is taken.",
2030  "If ICVAL is omitted the current value of LOOKTB(ICADD) is shown." };
2031 static KmCommand _GEANT_GRAPHICS_CONTROL_MAP_COLOR = {  (KmCommand*)0,
2032  "/GEANT/GRAPHICS_CONTROL/MAP_COLOR", "MAP_COLOR", 0, 2, 2, 0,
2033  _GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2034  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance,
2035  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2036  
2037 static KmParReal   _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
2038  (char*)0, (char*)0, (char*)0, 0 };
2039 static KmParameter _GEANT_GRAPHICS_CONTROL_SPERS_DPERS = { "DPERS", 5,
2040  "Distance from the origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
2041  (char**)0, (KmParFlag)0, KmTYPE_REAL,
2042  &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type };
2043 static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
2044  &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
2045 static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
2046  "Set the variable dpers in /GCDRAW/, representing",
2047  "the distance from the origin when using option PERSpective." };
2048 static KmCommand _GEANT_GRAPHICS_CONTROL_SPERS = {
2049  &_GEANT_GRAPHICS_CONTROL_MAP_COLOR, "/GEANT/GRAPHICS_CONTROL/SPERS", "SPERS",
2050  0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SPERS_parameters, 0, 0, gxgcon_,
2051  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
2052  _GEANT_GRAPHICS_CONTROL_SPERS_guidance, 0, (char**)0, 0, (char**)0, 0,
2053  (char**)0, (char*)0, (int*)0 };
2054  
2055 static KmParReal   _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
2056  (char*)0, (char*)0, (char*)0, 0 };
2057 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE = { "XSIZE", 5,
2058  "Size along X", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
2059  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type };
2060 static KmParReal   _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
2061  (char*)0, (char*)0, (char*)0, 0 };
2062 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE = { "YSIZE", 5,
2063  "Size along Y", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
2064  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type };
2065 static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
2066  &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
2067 static char *_GEANT_GRAPHICS_CONTROL_SIZE_guidance[] = {
2068  "Set the size of the picture.",
2069  "On the terminal, the pictures will have the ratio YSIZE/XSIZE, and,",
2070  "if a metafile is produced, pictures will be YSIZE by XSIZE cm.",
2071  "This command sets the parameters for the normalisation transformation",
2072  "number 1 to [0-XSIZE], [0-YSIZE]." };
2073 static KmCommand _GEANT_GRAPHICS_CONTROL_SIZE = {
2074  &_GEANT_GRAPHICS_CONTROL_SPERS, "/GEANT/GRAPHICS_CONTROL/SIZE", "SIZE", 0, 2,
2075  2, 0, _GEANT_GRAPHICS_CONTROL_SIZE_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2076  (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_GRAPHICS_CONTROL_SIZE_guidance, 0,
2077  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2078  
2079 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IOPT = { "IOPT", 4,
2080  "Option name", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2081  KmTYPE_CHAR,  (void*)0 };
2082 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IVAL = { "IVAL", 4,
2083  "Option value", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2084  KmTYPE_CHAR,  (void*)0 };
2085 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
2086  &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
2087 static char *_GEANT_GRAPHICS_CONTROL_DOPT_guidance[] = {
2088  " CALL GDOPT(iopt,ival)", "To set/modify the drawing options.",
2089  "   IOPT   IVAL      Action", "   THRZ    ON       Draw tracks in R vs Z",
2090  "           OFF (D)  Draw tracks in X,Y,Z", "           180",
2091  "           360", "   PROJ    PARA (D) Parallel projection",
2092  "           PERS     Perspective",
2093  "   TRAK    LINE (D) Trajectory drawn with lines",
2094  "           POIN       \" \" with markers",
2095  "   HIDE    ON       Hidden line removal using the CG package",
2096  "           OFF (D)  No hidden line removal",
2097  "   SHAD    ON       Fill area and shading of surfaces.",
2098  "           OFF (D)  Normal hidden line removal.",
2099  "   RAYT    ON       Ray-tracing on.",
2100  "           OFF (D)  Ray-tracing off.",
2101  "   EDGE    OFF      Does not draw contours when shad is on.",
2102  "           ON  (D)  Normal shading.",
2103  "   MAPP    1,2,3,4  Mapping before ray-tracing.",
2104  "           0   (D)  No mapping.",
2105  "   USER    ON       User graphics options in the raytracing.",
2106  "           OFF (D)  Automatic graphics options." };
2107 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPT = {
2108  &_GEANT_GRAPHICS_CONTROL_SIZE, "/GEANT/GRAPHICS_CONTROL/DOPT", "DOPT", 0, 2,
2109  2, 0, _GEANT_GRAPHICS_CONTROL_DOPT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2110  (SUBROUTINE*)0, (pCharFunc*)0, 23, _GEANT_GRAPHICS_CONTROL_DOPT_guidance, 0,
2111  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2112  
2113 static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
2114  "Clear screen (start a new picture on graphics file, if opened)." };
2115 static KmCommand _GEANT_GRAPHICS_CONTROL_NEXT = {
2116  &_GEANT_GRAPHICS_CONTROL_DOPT, "/GEANT/GRAPHICS_CONTROL/NEXT", "NEXT", 0, 2,
2117  0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0, (SUBROUTINE*)0,
2118  (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_NEXT_guidance, 0, (char**)0, 0,
2119  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2120  
2121 static KmParInt    _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
2122  (char*)0, (char*)0, (char*)0, 0 };
2123 static KmParameter _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH = { "LWIDTH", 6,
2124  "Line width code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
2125  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type };
2126 static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
2127  &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
2128 static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
2129  " CALL GDLW(-abs(lwidth))" };
2130 static KmCommand _GEANT_GRAPHICS_CONTROL_LWID = {
2131  &_GEANT_GRAPHICS_CONTROL_NEXT, "/GEANT/GRAPHICS_CONTROL/LWID", "LWID", 0, 2,
2132  1, 1, _GEANT_GRAPHICS_CONTROL_LWID_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2133  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_LWID_guidance, 0,
2134  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2135  
2136 static KmParInt    _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
2137  (char*)0, (char*)0, (char*)0, 0 };
2138 static KmParameter _GEANT_GRAPHICS_CONTROL_COLOR_ICOL = { "ICOL", 4,
2139  "Colour code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2140  KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type };
2141 static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
2142  &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
2143 static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
2144  " CALL GDCOL(-abs(icol))" };
2145 static KmCommand _GEANT_GRAPHICS_CONTROL_COLOR = {
2146  &_GEANT_GRAPHICS_CONTROL_LWID, "/GEANT/GRAPHICS_CONTROL/COLOR", "COLOR", 0,
2147  2, 1, 1, _GEANT_GRAPHICS_CONTROL_COLOR_parameters, 0, 0, gxgcon_,
2148  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2149  _GEANT_GRAPHICS_CONTROL_COLOR_guidance, 0, (char**)0, 0, (char**)0, 0,
2150  (char**)0, (char*)0, (int*)0 };
2151  
2152 static KmParReal   _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
2153  (char*)0, (char*)0, (char*)0, 0 };
2154 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCU = { "GSCU", 4,
2155  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
2156  (char**)0, (KmParFlag)0, KmTYPE_REAL,
2157  &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type };
2158 static KmParReal   _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
2159  (char*)0, (char*)0, (char*)0, 0 };
2160 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCV = { "GSCV", 4,
2161  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
2162  (char**)0, (KmParFlag)0, KmTYPE_REAL,
2163  &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type };
2164 static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
2165  &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
2166 static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
2167  "Change the scale factors GSCU and GSCV in /GCDRAW/." };
2168 static KmCommand _GEANT_GRAPHICS_CONTROL_SCALE = {
2169  &_GEANT_GRAPHICS_CONTROL_COLOR, "/GEANT/GRAPHICS_CONTROL/SCALE", "SCALE", 0,
2170  2, 2, 2, _GEANT_GRAPHICS_CONTROL_SCALE_parameters, 0, 0, gxgcon_,
2171  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2172  _GEANT_GRAPHICS_CONTROL_SCALE_guidance, 0, (char**)0, 0, (char**)0, 0,
2173  (char**)0, (char*)0, (int*)0 };
2174  
2175 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_NAME = { "NAME", 4,
2176  "Volume name", "*   ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
2177  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2178 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IOPT = { "IOPT", 4,
2179  "Name of the attribute to be set", "DEFA", (char*)0, 20, 0, (char**)0, 0,
2180  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2181 static KmParInt    _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
2182  (char*)0, (char*)0, (char*)0, 0 };
2183 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IVAL = { "IVAL", 4,
2184  "Value to which the attribute is to be set", "10000", (char*)0, 8, 0,
2185  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
2186  &_GEANT_GRAPHICS_CONTROL_SATT_IVAL_type };
2187 static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
2188  &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
2189  &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
2190 static char *_GEANT_GRAPHICS_CONTROL_SATT_guidance[] = {
2191  " CALL GSATT(name,iopt,ival)", "name='*' stands for all the volumes.",
2192  "iopt can be chosen among the following :",
2193  " 'WORK'   0=volume name is inactive for the tracking",
2194  "          1=volume name is active for the tracking (default)",
2195  " 'SEEN'   0=volume name is invisible",
2196  "          1=volume name is visible (default)",
2197  "         -1=volume invisible with all its descendants in the tree",
2198  "         -2=volume visible but not its descendants in the tree",
2199  " 'LSTY'   line style 1,2,3,... (default=1)",
2200  "          LSTY=7 will produce a very precise approximation for",
2201  "          revolution bodies.",
2202  " 'LWID'   line width -7,...,1,2,3,..7 (default=1)",
2203  "          LWID<0 will act as abs(LWID) was set for the volume",
2204  "          and for all the levels below it. When SHAD is 'ON', LWID",
2205  "          represent the linewidth of the scan lines filling the surfaces",
2206  "          (whereas the FILL value represent their number). Therefore",
2207  "          tuning this parameter will help to obtain the desired",
2208  "          quality/performance ratio.",
2209  " 'COLO'   colour code -166,...,1,2,..166 (default=1)",
2210  "          n=1=black",
2211  "          n=2=red;    n=17+m, m=0,25, increasing luminosity according to\
2212  'm';",
2213  "          n=3=green;  n=67+m, m=0,25, increasing luminosity according to\
2214  'm';",
2215  "          n=4=blue;   n=117+m, m=0,25, increasing luminosity according to\
2216  'm';",
2217  "          n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
2218  'm';",
2219  "          n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
2220  'm';",
2221  "          n=7=lightblue; n=92+m, m=0,25, increasing luminosity according to\
2222  'm';", "          colour=n*10+m, m=1,2,...9, will produce the same colour",
2223  "          as 'n', but with increasing luminosity according to 'm';",
2224  "          COLO<0 will act as if abs(COLO) was set for the volume",
2225  "          and for all the levels below it.",
2226  "          When for a volume the attribute FILL is > 1 (and the",
2227  "          option SHAD is on), the ABS of its colour code must be < 8",
2228  "          because an automatic shading of its faces will be",
2229  "          performed.",
2230  " 'FILL'   (1992) fill area  -7,...,0,1,...7 (default=0)",
2231  "          when option SHAD is 'on' the FILL attribute of any",
2232  "          volume can be set different from 0 (normal drawing);",
2233  "          if it is set to 1, the faces of such volume will be filled",
2234  "          with solid colours; if ABS(FILL) is > 1, then a light",
2235  "          source is placed along the observer line, and the faces of",
2236  "          such volumes will be painted by colours whose luminosity",
2237  "          will depend on the amount of light reflected;",
2238  "          if ABS(FILL) = 1, then it is possible to use all the 166",
2239  "          colours of the colour table, becouse the automatic shading",
2240  "          is not performed;",
2241  "          for increasing values of FILL the drawing will be performed",
2242  "          with higher and higher resolution improving the quality (the",
2243  "          number of scan lines used to fill the faces increases with\
2244  FILL);", "          it is possible to set different values of FILL",
2245  "          for different volumes, in order to optimize at the same time",
2246  "          the performance and the quality of the picture;",
2247  "          FILL<0 will act as if abs(FILL) was set for the volume",
2248  "          and for all the levels below it.",
2249  "          This kind of drawing can be saved in 'picture files'",
2250  "          or in view banks.", "          0=drawing without fill area",
2251  "          1=faces filled with solid colours and resolution = 6",
2252  "          2=lowest resolution (very fast)",
2253  "          3=default resolution", "          4=.................",
2254  "          5=.................", "          6=.................",
2255  "          7=max resolution",
2256  "          Finally, if a coloured background is desired, the FILL",
2257  "          attribute for the first volume of the tree must be set",
2258  "          equal to -abs(colo), colo being >0 and <166.",
2259  " 'SET '   set number associated to volume name",
2260  " 'DET '   detector number associated to volume name",
2261  " 'DTYP'   detector type (1,2)" };
2262 static KmCommand _GEANT_GRAPHICS_CONTROL_SATT = {
2263  &_GEANT_GRAPHICS_CONTROL_SCALE, "/GEANT/GRAPHICS_CONTROL/SATT", "SATT", 0, 2,
2264  3, 0, _GEANT_GRAPHICS_CONTROL_SATT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
2265  (SUBROUTINE*)0, (pCharFunc*)0, 70, _GEANT_GRAPHICS_CONTROL_SATT_guidance, 0,
2266  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2267  
2268 static KmParReal   _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
2269  "-10.", "10.", 0 };
2270 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL = { "RVAL", 4,
2271  "Attribute value", "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
2272  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type };
2273 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
2274  &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
2275 static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
2276  "Set current attribute value." };
2277 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETVA = {
2278  &_GEANT_GRAPHICS_CONTROL_SATT, "/GEANT/GRAPHICS_CONTROL/SSETVA", "SSETVA", 0,
2279  2, 1, 0, _GEANT_GRAPHICS_CONTROL_SSETVA_parameters, 0, 0, gxgcon_,
2280  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2281  _GEANT_GRAPHICS_CONTROL_SSETVA_guidance, 0, (char**)0, 0, (char**)0, 0,
2282  (char**)0, (char*)0, (int*)0 };
2283  
2284 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETAT_IOPT = { "IOPT", 4,
2285  "Attribute name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2286  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2287 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
2288  &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
2289 static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
2290  "Set current attribute." };
2291 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETAT = {
2292  &_GEANT_GRAPHICS_CONTROL_SSETVA, "/GEANT/GRAPHICS_CONTROL/SSETAT", "SSETAT",
2293  0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SSETAT_parameters, 0, 0, gxgcon_,
2294  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
2295  _GEANT_GRAPHICS_CONTROL_SSETAT_guidance, 0, (char**)0, 0, (char**)0, 0,
2296  (char**)0, (char*)0, (int*)0 };
2297  
2298 static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
2299  "It deactivate the previosly activated workstation and reactivate the",
2300  "default one." };
2301 static KmCommand _GEANT_GRAPHICS_CONTROL_RESETWK = {
2302  &_GEANT_GRAPHICS_CONTROL_SSETAT, "/GEANT/GRAPHICS_CONTROL/RESETWK",
2303  "RESETWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
2304  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_RESETWK_guidance,
2305  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2306  
2307 static char *_GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance[] = { "CALL GCHNWK",
2308  "It open a new workstation (if not already opened) and activate it",
2309  "(deactivating the default one)." };
2310 static KmCommand _GEANT_GRAPHICS_CONTROL_CHANGEWK = {
2311  &_GEANT_GRAPHICS_CONTROL_RESETWK, "/GEANT/GRAPHICS_CONTROL/CHANGEWK",
2312  "CHANGEWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
2313  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance,
2314  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2315  
2316 static char *_GEANT_GRAPHICS_CONTROL_DCLOSE_guidance[] = { " CALL GDCLOS",
2317  "It closes the currently open view bank; it must be called after the",
2318  "end of the drawing to be stored." };
2319 static KmCommand _GEANT_GRAPHICS_CONTROL_DCLOSE = {
2320  &_GEANT_GRAPHICS_CONTROL_CHANGEWK, "/GEANT/GRAPHICS_CONTROL/DCLOSE",
2321  "DCLOSE", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
2322  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_DCLOSE_guidance, 0,
2323  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2324  
2325 static KmParInt    _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
2326  (char*)0, (char*)0, (char*)0, 0 };
2327 static KmParameter _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW = { "IVIEW", 5,
2328  "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
2329  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type };
2330 static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
2331  &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
2332 static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
2333  " CALL GDELET(iview)", "It deletes a view bank from memory." };
2334 static KmCommand _GEANT_GRAPHICS_CONTROL_DELETE = {
2335  &_GEANT_GRAPHICS_CONTROL_DCLOSE, "/GEANT/GRAPHICS_CONTROL/DELETE", "DELETE",
2336  0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DELETE_parameters, 0, 0, gxgcon_,
2337  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
2338  _GEANT_GRAPHICS_CONTROL_DELETE_guidance, 0, (char**)0, 0, (char**)0, 0,
2339  (char**)0, (char*)0, (int*)0 };
2340  
2341 static KmParInt    _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
2342  (char*)0, (char*)0, (char*)0, 0 };
2343 static KmParameter _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW = { "IVIEW", 5,
2344  "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
2345  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type };
2346 static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
2347  &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
2348 static char *_GEANT_GRAPHICS_CONTROL_DSHOW_guidance[] = {
2349  " CALL GDSHOW(iview)",
2350  "It shows on the screen the contents of a view bank. It",
2351  "can be called after a view bank has been closed." };
2352 static KmCommand _GEANT_GRAPHICS_CONTROL_DSHOW = {
2353  &_GEANT_GRAPHICS_CONTROL_DELETE, "/GEANT/GRAPHICS_CONTROL/DSHOW", "DSHOW", 0,
2354  2, 1, 0, _GEANT_GRAPHICS_CONTROL_DSHOW_parameters, 0, 0, gxgcon_,
2355  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2356  _GEANT_GRAPHICS_CONTROL_DSHOW_guidance, 0, (char**)0, 0, (char**)0, 0,
2357  (char**)0, (char*)0, (int*)0 };
2358  
2359 static KmParInt    _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
2360  (char*)0, (char*)0, (char*)0, 0 };
2361 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW = { "IVIEW", 5,
2362  "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
2363  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type };
2364 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
2365  &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
2366 static char *_GEANT_GRAPHICS_CONTROL_DOPEN_guidance[] = {
2367  " CALL GDOPEN(iview)",
2368  "When a drawing is very complex and requires a long time to be",
2369  "executed, it can be useful to store it in a view bank: after a",
2370  "call to DOPEN and the execution of the drawing (nothing will",
2371  "appear on the screen), and after a necessary call to DCLOSE,",
2372  "the contents of the bank can be displayed in a very fast way",
2373  "through a call to DSHOW; therefore, the detector can be easily",
2374  "zoomed many times in different ways. Please note that the pictures",
2375  "with solid colours can now be stored in a view bank or in 'PICTURE FILES'."
2376  };
2377 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPEN = {
2378  &_GEANT_GRAPHICS_CONTROL_DSHOW, "/GEANT/GRAPHICS_CONTROL/DOPEN", "DOPEN", 0,
2379  2, 1, 1, _GEANT_GRAPHICS_CONTROL_DOPEN_parameters, 0, 0, gxgcon_,
2380  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
2381  _GEANT_GRAPHICS_CONTROL_DOPEN_guidance, 0, (char**)0, 0, (char**)0, 0,
2382  (char**)0, (char*)0, (int*)0 };
2383  
2384 static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
2385  "Graphics control commands." };
2386 static KmMenu _GEANT_GRAPHICS_CONTROL = {  (KmMenu*)0,  (KmMenu*)0,
2387  "/GEANT/GRAPHICS_CONTROL", "GRAPHICS_CONTROL", 2,
2388  &_GEANT_GRAPHICS_CONTROL_DOPEN, 1, _GEANT_GRAPHICS_CONTROL_guidance, 0,
2389  (char**)0, 0, (char**)0 };
2390  
2391 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
2392  "GEANT", 1,  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
2393  
2394   klnkmenu( &_GEANT, 950303 );
2395 }
2396  
2397  
2398 #ifdef F77_LCASE
2399 #  define gklist_ gklist
2400 #  define gxlist_ gxlist
2401 #endif
2402  
2403 #ifdef F77_UCASE
2404 #  define gklist_ GKLIST
2405 #  define gxlist_ GXLIST
2406 #endif
2407  
2408 #ifdef IBM370
2409 #  pragma linkage(GKLIST,FORTRAN)
2410 #  pragma linkage(GXLIST,FORTRAN)
2411 #endif
2412  
2413 extern void gklist_();
2414 extern void gxlist_();
2415  
2416 void gklist_()
2417 {
2418  
2419 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_1 = { "LRSAVE_1", 8, "user word",
2420  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2421  KmTYPE_CHAR,  (void*)0 };
2422 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_2 = { "LRSAVE_2", 8, "user word",
2423  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2424  KmTYPE_CHAR,  (void*)0 };
2425 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_3 = { "LRSAVE_3", 8, "user word",
2426  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2427  KmTYPE_CHAR,  (void*)0 };
2428 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_4 = { "LRSAVE_4", 8, "user word",
2429  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2430  KmTYPE_CHAR,  (void*)0 };
2431 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_5 = { "LRSAVE_5", 8, "user word",
2432  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2433  KmTYPE_CHAR,  (void*)0 };
2434 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_6 = { "LRSAVE_6", 8, "user word",
2435  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2436  KmTYPE_CHAR,  (void*)0 };
2437 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_7 = { "LRSAVE_7", 8, "user word",
2438  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2439  KmTYPE_CHAR,  (void*)0 };
2440 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_8 = { "LRSAVE_8", 8, "user word",
2441  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2442  KmTYPE_CHAR,  (void*)0 };
2443 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_9 = { "LRSAVE_9", 8, "user word",
2444  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2445  KmTYPE_CHAR,  (void*)0 };
2446 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_10 = { "LRSAVE_10", 9,
2447  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2448  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2449 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_11 = { "LRSAVE_11", 9,
2450  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2451  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2452 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_12 = { "LRSAVE_12", 9,
2453  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2454  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2455 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_13 = { "LRSAVE_13", 9,
2456  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2457  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2458 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_14 = { "LRSAVE_14", 9,
2459  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2460  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2461 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_15 = { "LRSAVE_15", 9,
2462  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2463  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2464 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_16 = { "LRSAVE_16", 9,
2465  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2466  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2467 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_17 = { "LRSAVE_17", 9,
2468  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2469  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2470 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_18 = { "LRSAVE_18", 9,
2471  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2472  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2473 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_19 = { "LRSAVE_19", 9,
2474  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2475  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2476 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_20 = { "LRSAVE_20", 9,
2477  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
2478  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
2479 static KmParameter *_GEANT_LISTS_RSAV_parameters[] = {
2480  &_GEANT_LISTS_RSAV_LRSAVE_1, &_GEANT_LISTS_RSAV_LRSAVE_2,
2481  &_GEANT_LISTS_RSAV_LRSAVE_3, &_GEANT_LISTS_RSAV_LRSAVE_4,
2482  &_GEANT_LISTS_RSAV_LRSAVE_5, &_GEANT_LISTS_RSAV_LRSAVE_6,
2483  &_GEANT_LISTS_RSAV_LRSAVE_7, &_GEANT_LISTS_RSAV_LRSAVE_8,
2484  &_GEANT_LISTS_RSAV_LRSAVE_9, &_GEANT_LISTS_RSAV_LRSAVE_10,
2485  &_GEANT_LISTS_RSAV_LRSAVE_11, &_GEANT_LISTS_RSAV_LRSAVE_12,
2486  &_GEANT_LISTS_RSAV_LRSAVE_13, &_GEANT_LISTS_RSAV_LRSAVE_14,
2487  &_GEANT_LISTS_RSAV_LRSAVE_15, &_GEANT_LISTS_RSAV_LRSAVE_16,
2488  &_GEANT_LISTS_RSAV_LRSAVE_17, &_GEANT_LISTS_RSAV_LRSAVE_18,
2489  &_GEANT_LISTS_RSAV_LRSAVE_19, &_GEANT_LISTS_RSAV_LRSAVE_20 };
2490 static char *_GEANT_LISTS_RSAV_guidance[] = {
2491  "The command RSAV is similar to the RSAV data records. It can accept",
2492  "up to 20 4-character words. If the first argument is '.', the number",
2493  "of words is reset to 0 and all the words to four blanks." };
2494 static KmCommand _GEANT_LISTS_RSAV = {  (KmCommand*)0, "/GEANT/LISTS/RSAV",
2495  "RSAV", 0, 2, 20, 0, _GEANT_LISTS_RSAV_parameters, 0, 0, gxlist_,
2496  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_RSAV_guidance, 0,
2497  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
2498  
2499 static KmParameter _GEANT_LISTS_RGET_LRGET_1 = { "LRGET_1", 7, "user word",
2500  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2501  KmTYPE_CHAR,  (void*)0 };
2502 static KmParameter _GEANT_LISTS_RGET_LRGET_2 = { "LRGET_2", 7, "user word",
2503  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2504  KmTYPE_CHAR,  (void*)0 };
2505 static KmParameter _GEANT_LISTS_RGET_LRGET_3 = { "LRGET_3", 7, "user word",
2506  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2507  KmTYPE_CHAR,  (void*)0 };
2508 static KmParameter _GEANT_LISTS_RGET_LRGET_4 = { "LRGET_4", 7, "user word",
2509  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2510  KmTYPE_CHAR,  (void*)0 };
2511 static KmParameter _GEANT_LISTS_RGET_LRGET_5 = { "LRGET_5", 7, "user word",
2512  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2513  KmTYPE_CHAR,  (void*)0 };
2514 static KmParameter _GEANT_LISTS_RGET_LRGET_6 = { "LRGET_6", 7, "user word",
2515  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2516  KmTYPE_CHAR,  (void*)0 };
2517 static KmParameter _GEANT_LISTS_RGET_LRGET_7 = { "LRGET_7", 7, "user word",
2518  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2519  KmTYPE_CHAR,  (void*)0 };
2520 static KmParameter _GEANT_LISTS_RGET_LRGET_8 = { "LRGET_8", 7, "user word",
2521  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2522  KmTYPE_CHAR,  (void*)0 };
2523 static KmParameter _GEANT_LISTS_RGET_LRGET_9 = { "LRGET_9", 7, "user word",
2524  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2525  KmTYPE_CHAR,  (void*)0 };
2526 static KmParameter _GEANT_LISTS_RGET_LRGET_10 = { "LRGET_10", 8, "user word",
2527  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2528  KmTYPE_CHAR,  (void*)0 };
2529 static KmParameter _GEANT_LISTS_RGET_LRGET_11 = { "LRGET_11", 8, "user word",
2530  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2531  KmTYPE_CHAR,  (void*)0 };
2532 static KmParameter _GEANT_LISTS_RGET_LRGET_12 = { "LRGET_12", 8, "user word",
2533  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2534  KmTYPE_CHAR,  (void*)0 };
2535 static KmParameter _GEANT_LISTS_RGET_LRGET_13 = { "LRGET_13", 8, "user word",
2536  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2537  KmTYPE_CHAR,  (void*)0 };
2538 static KmParameter _GEANT_LISTS_RGET_LRGET_14 = { "LRGET_14", 8, "user word",
2539  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2540  KmTYPE_CHAR,  (void*)0 };
2541 static KmParameter _GEANT_LISTS_RGET_LRGET_15 = { "LRGET_15", 8, "user word",
2542  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2543  KmTYPE_CHAR,  (void*)0 };
2544 static KmParameter _GEANT_LISTS_RGET_LRGET_16 = { "LRGET_16", 8, "user word",
2545  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2546  KmTYPE_CHAR,  (void*)0 };
2547 static KmParameter _GEANT_LISTS_RGET_LRGET_17 = { "LRGET_17", 8, "user word",
2548  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2549  KmTYPE_CHAR,  (void*)0 };
2550 static KmParameter _GEANT_LISTS_RGET_LRGET_18 = { "LRGET_18", 8, "user word",
2551  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2552  KmTYPE_CHAR,  (void*)0 };
2553 static KmParameter _GEANT_LISTS_RGET_LRGET_19 = { "LRGET_19", 8, "user word",
2554  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2555  KmTYPE_CHAR,  (void*)0 };
2556 static KmParameter _GEANT_LISTS_RGET_LRGET_20 = { "LRGET_20", 8, "user word",
2557  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2558  KmTYPE_CHAR,  (void*)0 };
2559 static KmParameter *_GEANT_LISTS_RGET_parameters[] = {
2560  &_GEANT_LISTS_RGET_LRGET_1, &_GEANT_LISTS_RGET_LRGET_2,
2561  &_GEANT_LISTS_RGET_LRGET_3, &_GEANT_LISTS_RGET_LRGET_4,
2562  &_GEANT_LISTS_RGET_LRGET_5, &_GEANT_LISTS_RGET_LRGET_6,
2563  &_GEANT_LISTS_RGET_LRGET_7, &_GEANT_LISTS_RGET_LRGET_8,
2564  &_GEANT_LISTS_RGET_LRGET_9, &_GEANT_LISTS_RGET_LRGET_10,
2565  &_GEANT_LISTS_RGET_LRGET_11, &_GEANT_LISTS_RGET_LRGET_12,
2566  &_GEANT_LISTS_RGET_LRGET_13, &_GEANT_LISTS_RGET_LRGET_14,
2567  &_GEANT_LISTS_RGET_LRGET_15, &_GEANT_LISTS_RGET_LRGET_16,
2568  &_GEANT_LISTS_RGET_LRGET_17, &_GEANT_LISTS_RGET_LRGET_18,
2569  &_GEANT_LISTS_RGET_LRGET_19, &_GEANT_LISTS_RGET_LRGET_20 };
2570 static char *_GEANT_LISTS_RGET_guidance[] = {
2571  "The command RGET is similar to the RGET data records. It can accept",
2572  "up to 20 4-character words. If the first argument is '.', the number",
2573  "of words is reset to 0 and all the words to four blanks." };
2574 static KmCommand _GEANT_LISTS_RGET = { &_GEANT_LISTS_RSAV,
2575  "/GEANT/LISTS/RGET", "RGET", 0, 2, 20, 0, _GEANT_LISTS_RGET_parameters, 0, 0,
2576  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2577  _GEANT_LISTS_RGET_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2578  (char*)0, (int*)0 };
2579  
2580 static KmParameter _GEANT_LISTS_STAT_LSTAT_1 = { "LSTAT_1", 7, "user word",
2581  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2582  KmTYPE_CHAR,  (void*)0 };
2583 static KmParameter _GEANT_LISTS_STAT_LSTAT_2 = { "LSTAT_2", 7, "user word",
2584  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2585  KmTYPE_CHAR,  (void*)0 };
2586 static KmParameter _GEANT_LISTS_STAT_LSTAT_3 = { "LSTAT_3", 7, "user word",
2587  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2588  KmTYPE_CHAR,  (void*)0 };
2589 static KmParameter _GEANT_LISTS_STAT_LSTAT_4 = { "LSTAT_4", 7, "user word",
2590  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2591  KmTYPE_CHAR,  (void*)0 };
2592 static KmParameter _GEANT_LISTS_STAT_LSTAT_5 = { "LSTAT_5", 7, "user word",
2593  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2594  KmTYPE_CHAR,  (void*)0 };
2595 static KmParameter _GEANT_LISTS_STAT_LSTAT_6 = { "LSTAT_6", 7, "user word",
2596  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2597  KmTYPE_CHAR,  (void*)0 };
2598 static KmParameter _GEANT_LISTS_STAT_LSTAT_7 = { "LSTAT_7", 7, "user word",
2599  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2600  KmTYPE_CHAR,  (void*)0 };
2601 static KmParameter _GEANT_LISTS_STAT_LSTAT_8 = { "LSTAT_8", 7, "user word",
2602  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2603  KmTYPE_CHAR,  (void*)0 };
2604 static KmParameter _GEANT_LISTS_STAT_LSTAT_9 = { "LSTAT_9", 7, "user word",
2605  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2606  KmTYPE_CHAR,  (void*)0 };
2607 static KmParameter _GEANT_LISTS_STAT_LSTAT_10 = { "LSTAT_10", 8, "user word",
2608  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2609  KmTYPE_CHAR,  (void*)0 };
2610 static KmParameter _GEANT_LISTS_STAT_LSTAT_11 = { "LSTAT_11", 8, "user word",
2611  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2612  KmTYPE_CHAR,  (void*)0 };
2613 static KmParameter _GEANT_LISTS_STAT_LSTAT_12 = { "LSTAT_12", 8, "user word",
2614  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2615  KmTYPE_CHAR,  (void*)0 };
2616 static KmParameter _GEANT_LISTS_STAT_LSTAT_13 = { "LSTAT_13", 8, "user word",
2617  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2618  KmTYPE_CHAR,  (void*)0 };
2619 static KmParameter _GEANT_LISTS_STAT_LSTAT_14 = { "LSTAT_14", 8, "user word",
2620  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2621  KmTYPE_CHAR,  (void*)0 };
2622 static KmParameter _GEANT_LISTS_STAT_LSTAT_15 = { "LSTAT_15", 8, "user word",
2623  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2624  KmTYPE_CHAR,  (void*)0 };
2625 static KmParameter _GEANT_LISTS_STAT_LSTAT_16 = { "LSTAT_16", 8, "user word",
2626  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2627  KmTYPE_CHAR,  (void*)0 };
2628 static KmParameter _GEANT_LISTS_STAT_LSTAT_17 = { "LSTAT_17", 8, "user word",
2629  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2630  KmTYPE_CHAR,  (void*)0 };
2631 static KmParameter _GEANT_LISTS_STAT_LSTAT_18 = { "LSTAT_18", 8, "user word",
2632  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2633  KmTYPE_CHAR,  (void*)0 };
2634 static KmParameter _GEANT_LISTS_STAT_LSTAT_19 = { "LSTAT_19", 8, "user word",
2635  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2636  KmTYPE_CHAR,  (void*)0 };
2637 static KmParameter _GEANT_LISTS_STAT_LSTAT_20 = { "LSTAT_20", 8, "user word",
2638  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2639  KmTYPE_CHAR,  (void*)0 };
2640 static KmParameter *_GEANT_LISTS_STAT_parameters[] = {
2641  &_GEANT_LISTS_STAT_LSTAT_1, &_GEANT_LISTS_STAT_LSTAT_2,
2642  &_GEANT_LISTS_STAT_LSTAT_3, &_GEANT_LISTS_STAT_LSTAT_4,
2643  &_GEANT_LISTS_STAT_LSTAT_5, &_GEANT_LISTS_STAT_LSTAT_6,
2644  &_GEANT_LISTS_STAT_LSTAT_7, &_GEANT_LISTS_STAT_LSTAT_8,
2645  &_GEANT_LISTS_STAT_LSTAT_9, &_GEANT_LISTS_STAT_LSTAT_10,
2646  &_GEANT_LISTS_STAT_LSTAT_11, &_GEANT_LISTS_STAT_LSTAT_12,
2647  &_GEANT_LISTS_STAT_LSTAT_13, &_GEANT_LISTS_STAT_LSTAT_14,
2648  &_GEANT_LISTS_STAT_LSTAT_15, &_GEANT_LISTS_STAT_LSTAT_16,
2649  &_GEANT_LISTS_STAT_LSTAT_17, &_GEANT_LISTS_STAT_LSTAT_18,
2650  &_GEANT_LISTS_STAT_LSTAT_19, &_GEANT_LISTS_STAT_LSTAT_20 };
2651 static char *_GEANT_LISTS_STAT_guidance[] = {
2652  "The command STAT is similar to the STAT data records. It can accept",
2653  "up to 20 4-character words. If the first argument is '.', the number",
2654  "of words is reset to 0 and all the words to four blanks." };
2655 static KmCommand _GEANT_LISTS_STAT = { &_GEANT_LISTS_RGET,
2656  "/GEANT/LISTS/STAT", "STAT", 0, 2, 20, 0, _GEANT_LISTS_STAT_parameters, 0, 0,
2657  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2658  _GEANT_LISTS_STAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2659  (char*)0, (int*)0 };
2660  
2661 static KmParameter _GEANT_LISTS_PLOT_LPLOT_1 = { "LPLOT_1", 7, "user word",
2662  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2663  KmTYPE_CHAR,  (void*)0 };
2664 static KmParameter _GEANT_LISTS_PLOT_LPLOT_2 = { "LPLOT_2", 7, "user word",
2665  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2666  KmTYPE_CHAR,  (void*)0 };
2667 static KmParameter _GEANT_LISTS_PLOT_LPLOT_3 = { "LPLOT_3", 7, "user word",
2668  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2669  KmTYPE_CHAR,  (void*)0 };
2670 static KmParameter _GEANT_LISTS_PLOT_LPLOT_4 = { "LPLOT_4", 7, "user word",
2671  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2672  KmTYPE_CHAR,  (void*)0 };
2673 static KmParameter _GEANT_LISTS_PLOT_LPLOT_5 = { "LPLOT_5", 7, "user word",
2674  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2675  KmTYPE_CHAR,  (void*)0 };
2676 static KmParameter _GEANT_LISTS_PLOT_LPLOT_6 = { "LPLOT_6", 7, "user word",
2677  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2678  KmTYPE_CHAR,  (void*)0 };
2679 static KmParameter _GEANT_LISTS_PLOT_LPLOT_7 = { "LPLOT_7", 7, "user word",
2680  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2681  KmTYPE_CHAR,  (void*)0 };
2682 static KmParameter _GEANT_LISTS_PLOT_LPLOT_8 = { "LPLOT_8", 7, "user word",
2683  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2684  KmTYPE_CHAR,  (void*)0 };
2685 static KmParameter _GEANT_LISTS_PLOT_LPLOT_9 = { "LPLOT_9", 7, "user word",
2686  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2687  KmTYPE_CHAR,  (void*)0 };
2688 static KmParameter _GEANT_LISTS_PLOT_LPLOT_10 = { "LPLOT_10", 8, "user word",
2689  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2690  KmTYPE_CHAR,  (void*)0 };
2691 static KmParameter _GEANT_LISTS_PLOT_LPLOT_11 = { "LPLOT_11", 8, "user word",
2692  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2693  KmTYPE_CHAR,  (void*)0 };
2694 static KmParameter _GEANT_LISTS_PLOT_LPLOT_12 = { "LPLOT_12", 8, "user word",
2695  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2696  KmTYPE_CHAR,  (void*)0 };
2697 static KmParameter _GEANT_LISTS_PLOT_LPLOT_13 = { "LPLOT_13", 8, "user word",
2698  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2699  KmTYPE_CHAR,  (void*)0 };
2700 static KmParameter _GEANT_LISTS_PLOT_LPLOT_14 = { "LPLOT_14", 8, "user word",
2701  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2702  KmTYPE_CHAR,  (void*)0 };
2703 static KmParameter _GEANT_LISTS_PLOT_LPLOT_15 = { "LPLOT_15", 8, "user word",
2704  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2705  KmTYPE_CHAR,  (void*)0 };
2706 static KmParameter _GEANT_LISTS_PLOT_LPLOT_16 = { "LPLOT_16", 8, "user word",
2707  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2708  KmTYPE_CHAR,  (void*)0 };
2709 static KmParameter _GEANT_LISTS_PLOT_LPLOT_17 = { "LPLOT_17", 8, "user word",
2710  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2711  KmTYPE_CHAR,  (void*)0 };
2712 static KmParameter _GEANT_LISTS_PLOT_LPLOT_18 = { "LPLOT_18", 8, "user word",
2713  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2714  KmTYPE_CHAR,  (void*)0 };
2715 static KmParameter _GEANT_LISTS_PLOT_LPLOT_19 = { "LPLOT_19", 8, "user word",
2716  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2717  KmTYPE_CHAR,  (void*)0 };
2718 static KmParameter _GEANT_LISTS_PLOT_LPLOT_20 = { "LPLOT_20", 8, "user word",
2719  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2720  KmTYPE_CHAR,  (void*)0 };
2721 static KmParameter *_GEANT_LISTS_PLOT_parameters[] = {
2722  &_GEANT_LISTS_PLOT_LPLOT_1, &_GEANT_LISTS_PLOT_LPLOT_2,
2723  &_GEANT_LISTS_PLOT_LPLOT_3, &_GEANT_LISTS_PLOT_LPLOT_4,
2724  &_GEANT_LISTS_PLOT_LPLOT_5, &_GEANT_LISTS_PLOT_LPLOT_6,
2725  &_GEANT_LISTS_PLOT_LPLOT_7, &_GEANT_LISTS_PLOT_LPLOT_8,
2726  &_GEANT_LISTS_PLOT_LPLOT_9, &_GEANT_LISTS_PLOT_LPLOT_10,
2727  &_GEANT_LISTS_PLOT_LPLOT_11, &_GEANT_LISTS_PLOT_LPLOT_12,
2728  &_GEANT_LISTS_PLOT_LPLOT_13, &_GEANT_LISTS_PLOT_LPLOT_14,
2729  &_GEANT_LISTS_PLOT_LPLOT_15, &_GEANT_LISTS_PLOT_LPLOT_16,
2730  &_GEANT_LISTS_PLOT_LPLOT_17, &_GEANT_LISTS_PLOT_LPLOT_18,
2731  &_GEANT_LISTS_PLOT_LPLOT_19, &_GEANT_LISTS_PLOT_LPLOT_20 };
2732 static char *_GEANT_LISTS_PLOT_guidance[] = {
2733  "The command PLOT is similar to the PLOT data records. It can accept",
2734  "up to 20 4-character words. If the first argument is '.', the number",
2735  "of words is reset to 0 and all the words to four blanks." };
2736 static KmCommand _GEANT_LISTS_PLOT = { &_GEANT_LISTS_STAT,
2737  "/GEANT/LISTS/PLOT", "PLOT", 0, 2, 20, 0, _GEANT_LISTS_PLOT_parameters, 0, 0,
2738  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2739  _GEANT_LISTS_PLOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2740  (char*)0, (int*)0 };
2741  
2742 static KmParameter _GEANT_LISTS_VIEW_LVIEW_1 = { "LVIEW_1", 7, "user word",
2743  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2744  KmTYPE_CHAR,  (void*)0 };
2745 static KmParameter _GEANT_LISTS_VIEW_LVIEW_2 = { "LVIEW_2", 7, "user word",
2746  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2747  KmTYPE_CHAR,  (void*)0 };
2748 static KmParameter _GEANT_LISTS_VIEW_LVIEW_3 = { "LVIEW_3", 7, "user word",
2749  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2750  KmTYPE_CHAR,  (void*)0 };
2751 static KmParameter _GEANT_LISTS_VIEW_LVIEW_4 = { "LVIEW_4", 7, "user word",
2752  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2753  KmTYPE_CHAR,  (void*)0 };
2754 static KmParameter _GEANT_LISTS_VIEW_LVIEW_5 = { "LVIEW_5", 7, "user word",
2755  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2756  KmTYPE_CHAR,  (void*)0 };
2757 static KmParameter _GEANT_LISTS_VIEW_LVIEW_6 = { "LVIEW_6", 7, "user word",
2758  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2759  KmTYPE_CHAR,  (void*)0 };
2760 static KmParameter _GEANT_LISTS_VIEW_LVIEW_7 = { "LVIEW_7", 7, "user word",
2761  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2762  KmTYPE_CHAR,  (void*)0 };
2763 static KmParameter _GEANT_LISTS_VIEW_LVIEW_8 = { "LVIEW_8", 7, "user word",
2764  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2765  KmTYPE_CHAR,  (void*)0 };
2766 static KmParameter _GEANT_LISTS_VIEW_LVIEW_9 = { "LVIEW_9", 7, "user word",
2767  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2768  KmTYPE_CHAR,  (void*)0 };
2769 static KmParameter _GEANT_LISTS_VIEW_LVIEW_10 = { "LVIEW_10", 8, "user word",
2770  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2771  KmTYPE_CHAR,  (void*)0 };
2772 static KmParameter _GEANT_LISTS_VIEW_LVIEW_11 = { "LVIEW_11", 8, "user word",
2773  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2774  KmTYPE_CHAR,  (void*)0 };
2775 static KmParameter _GEANT_LISTS_VIEW_LVIEW_12 = { "LVIEW_12", 8, "user word",
2776  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2777  KmTYPE_CHAR,  (void*)0 };
2778 static KmParameter _GEANT_LISTS_VIEW_LVIEW_13 = { "LVIEW_13", 8, "user word",
2779  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2780  KmTYPE_CHAR,  (void*)0 };
2781 static KmParameter _GEANT_LISTS_VIEW_LVIEW_14 = { "LVIEW_14", 8, "user word",
2782  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2783  KmTYPE_CHAR,  (void*)0 };
2784 static KmParameter _GEANT_LISTS_VIEW_LVIEW_15 = { "LVIEW_15", 8, "user word",
2785  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2786  KmTYPE_CHAR,  (void*)0 };
2787 static KmParameter _GEANT_LISTS_VIEW_LVIEW_16 = { "LVIEW_16", 8, "user word",
2788  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2789  KmTYPE_CHAR,  (void*)0 };
2790 static KmParameter _GEANT_LISTS_VIEW_LVIEW_17 = { "LVIEW_17", 8, "user word",
2791  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2792  KmTYPE_CHAR,  (void*)0 };
2793 static KmParameter _GEANT_LISTS_VIEW_LVIEW_18 = { "LVIEW_18", 8, "user word",
2794  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2795  KmTYPE_CHAR,  (void*)0 };
2796 static KmParameter _GEANT_LISTS_VIEW_LVIEW_19 = { "LVIEW_19", 8, "user word",
2797  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2798  KmTYPE_CHAR,  (void*)0 };
2799 static KmParameter _GEANT_LISTS_VIEW_LVIEW_20 = { "LVIEW_20", 8, "user word",
2800  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2801  KmTYPE_CHAR,  (void*)0 };
2802 static KmParameter *_GEANT_LISTS_VIEW_parameters[] = {
2803  &_GEANT_LISTS_VIEW_LVIEW_1, &_GEANT_LISTS_VIEW_LVIEW_2,
2804  &_GEANT_LISTS_VIEW_LVIEW_3, &_GEANT_LISTS_VIEW_LVIEW_4,
2805  &_GEANT_LISTS_VIEW_LVIEW_5, &_GEANT_LISTS_VIEW_LVIEW_6,
2806  &_GEANT_LISTS_VIEW_LVIEW_7, &_GEANT_LISTS_VIEW_LVIEW_8,
2807  &_GEANT_LISTS_VIEW_LVIEW_9, &_GEANT_LISTS_VIEW_LVIEW_10,
2808  &_GEANT_LISTS_VIEW_LVIEW_11, &_GEANT_LISTS_VIEW_LVIEW_12,
2809  &_GEANT_LISTS_VIEW_LVIEW_13, &_GEANT_LISTS_VIEW_LVIEW_14,
2810  &_GEANT_LISTS_VIEW_LVIEW_15, &_GEANT_LISTS_VIEW_LVIEW_16,
2811  &_GEANT_LISTS_VIEW_LVIEW_17, &_GEANT_LISTS_VIEW_LVIEW_18,
2812  &_GEANT_LISTS_VIEW_LVIEW_19, &_GEANT_LISTS_VIEW_LVIEW_20 };
2813 static char *_GEANT_LISTS_VIEW_guidance[] = {
2814  "The command VIEW is similar to the VIEW data records. It can accept",
2815  "up to 20 4-character words. If the first argument is '.', the number",
2816  "of words is reset to 0 and all the words to four blanks." };
2817 static KmCommand _GEANT_LISTS_VIEW = { &_GEANT_LISTS_PLOT,
2818  "/GEANT/LISTS/VIEW", "VIEW", 0, 2, 20, 0, _GEANT_LISTS_VIEW_parameters, 0, 0,
2819  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2820  _GEANT_LISTS_VIEW_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2821  (char*)0, (int*)0 };
2822  
2823 static KmParameter _GEANT_LISTS_GEOM_LGEOM_1 = { "LGEOM_1", 7, "user word",
2824  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2825  KmTYPE_CHAR,  (void*)0 };
2826 static KmParameter _GEANT_LISTS_GEOM_LGEOM_2 = { "LGEOM_2", 7, "user word",
2827  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2828  KmTYPE_CHAR,  (void*)0 };
2829 static KmParameter _GEANT_LISTS_GEOM_LGEOM_3 = { "LGEOM_3", 7, "user word",
2830  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2831  KmTYPE_CHAR,  (void*)0 };
2832 static KmParameter _GEANT_LISTS_GEOM_LGEOM_4 = { "LGEOM_4", 7, "user word",
2833  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2834  KmTYPE_CHAR,  (void*)0 };
2835 static KmParameter _GEANT_LISTS_GEOM_LGEOM_5 = { "LGEOM_5", 7, "user word",
2836  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2837  KmTYPE_CHAR,  (void*)0 };
2838 static KmParameter _GEANT_LISTS_GEOM_LGEOM_6 = { "LGEOM_6", 7, "user word",
2839  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2840  KmTYPE_CHAR,  (void*)0 };
2841 static KmParameter _GEANT_LISTS_GEOM_LGEOM_7 = { "LGEOM_7", 7, "user word",
2842  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2843  KmTYPE_CHAR,  (void*)0 };
2844 static KmParameter _GEANT_LISTS_GEOM_LGEOM_8 = { "LGEOM_8", 7, "user word",
2845  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2846  KmTYPE_CHAR,  (void*)0 };
2847 static KmParameter _GEANT_LISTS_GEOM_LGEOM_9 = { "LGEOM_9", 7, "user word",
2848  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2849  KmTYPE_CHAR,  (void*)0 };
2850 static KmParameter _GEANT_LISTS_GEOM_LGEOM_10 = { "LGEOM_10", 8, "user word",
2851  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2852  KmTYPE_CHAR,  (void*)0 };
2853 static KmParameter _GEANT_LISTS_GEOM_LGEOM_11 = { "LGEOM_11", 8, "user word",
2854  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2855  KmTYPE_CHAR,  (void*)0 };
2856 static KmParameter _GEANT_LISTS_GEOM_LGEOM_12 = { "LGEOM_12", 8, "user word",
2857  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2858  KmTYPE_CHAR,  (void*)0 };
2859 static KmParameter _GEANT_LISTS_GEOM_LGEOM_13 = { "LGEOM_13", 8, "user word",
2860  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2861  KmTYPE_CHAR,  (void*)0 };
2862 static KmParameter _GEANT_LISTS_GEOM_LGEOM_14 = { "LGEOM_14", 8, "user word",
2863  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2864  KmTYPE_CHAR,  (void*)0 };
2865 static KmParameter _GEANT_LISTS_GEOM_LGEOM_15 = { "LGEOM_15", 8, "user word",
2866  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2867  KmTYPE_CHAR,  (void*)0 };
2868 static KmParameter _GEANT_LISTS_GEOM_LGEOM_16 = { "LGEOM_16", 8, "user word",
2869  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2870  KmTYPE_CHAR,  (void*)0 };
2871 static KmParameter _GEANT_LISTS_GEOM_LGEOM_17 = { "LGEOM_17", 8, "user word",
2872  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2873  KmTYPE_CHAR,  (void*)0 };
2874 static KmParameter _GEANT_LISTS_GEOM_LGEOM_18 = { "LGEOM_18", 8, "user word",
2875  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2876  KmTYPE_CHAR,  (void*)0 };
2877 static KmParameter _GEANT_LISTS_GEOM_LGEOM_19 = { "LGEOM_19", 8, "user word",
2878  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2879  KmTYPE_CHAR,  (void*)0 };
2880 static KmParameter _GEANT_LISTS_GEOM_LGEOM_20 = { "LGEOM_20", 8, "user word",
2881  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2882  KmTYPE_CHAR,  (void*)0 };
2883 static KmParameter *_GEANT_LISTS_GEOM_parameters[] = {
2884  &_GEANT_LISTS_GEOM_LGEOM_1, &_GEANT_LISTS_GEOM_LGEOM_2,
2885  &_GEANT_LISTS_GEOM_LGEOM_3, &_GEANT_LISTS_GEOM_LGEOM_4,
2886  &_GEANT_LISTS_GEOM_LGEOM_5, &_GEANT_LISTS_GEOM_LGEOM_6,
2887  &_GEANT_LISTS_GEOM_LGEOM_7, &_GEANT_LISTS_GEOM_LGEOM_8,
2888  &_GEANT_LISTS_GEOM_LGEOM_9, &_GEANT_LISTS_GEOM_LGEOM_10,
2889  &_GEANT_LISTS_GEOM_LGEOM_11, &_GEANT_LISTS_GEOM_LGEOM_12,
2890  &_GEANT_LISTS_GEOM_LGEOM_13, &_GEANT_LISTS_GEOM_LGEOM_14,
2891  &_GEANT_LISTS_GEOM_LGEOM_15, &_GEANT_LISTS_GEOM_LGEOM_16,
2892  &_GEANT_LISTS_GEOM_LGEOM_17, &_GEANT_LISTS_GEOM_LGEOM_18,
2893  &_GEANT_LISTS_GEOM_LGEOM_19, &_GEANT_LISTS_GEOM_LGEOM_20 };
2894 static char *_GEANT_LISTS_GEOM_guidance[] = {
2895  "The command GEOM is similar to the GEOM data records. It can accept",
2896  "up to 20 4-character words. If the first argument is '.', the number",
2897  "of words is reset to 0 and all the words to four blanks." };
2898 static KmCommand _GEANT_LISTS_GEOM = { &_GEANT_LISTS_VIEW,
2899  "/GEANT/LISTS/GEOM", "GEOM", 0, 2, 20, 0, _GEANT_LISTS_GEOM_parameters, 0, 0,
2900  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2901  _GEANT_LISTS_GEOM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2902  (char*)0, (int*)0 };
2903  
2904 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_1 = { "LPRIN_1", 7, "user word",
2905  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2906  KmTYPE_CHAR,  (void*)0 };
2907 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_2 = { "LPRIN_2", 7, "user word",
2908  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2909  KmTYPE_CHAR,  (void*)0 };
2910 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_3 = { "LPRIN_3", 7, "user word",
2911  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2912  KmTYPE_CHAR,  (void*)0 };
2913 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_4 = { "LPRIN_4", 7, "user word",
2914  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2915  KmTYPE_CHAR,  (void*)0 };
2916 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_5 = { "LPRIN_5", 7, "user word",
2917  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2918  KmTYPE_CHAR,  (void*)0 };
2919 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_6 = { "LPRIN_6", 7, "user word",
2920  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2921  KmTYPE_CHAR,  (void*)0 };
2922 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_7 = { "LPRIN_7", 7, "user word",
2923  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2924  KmTYPE_CHAR,  (void*)0 };
2925 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_8 = { "LPRIN_8", 7, "user word",
2926  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2927  KmTYPE_CHAR,  (void*)0 };
2928 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_9 = { "LPRIN_9", 7, "user word",
2929  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2930  KmTYPE_CHAR,  (void*)0 };
2931 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_10 = { "LPRIN_10", 8, "user word",
2932  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2933  KmTYPE_CHAR,  (void*)0 };
2934 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_11 = { "LPRIN_11", 8, "user word",
2935  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2936  KmTYPE_CHAR,  (void*)0 };
2937 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_12 = { "LPRIN_12", 8, "user word",
2938  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2939  KmTYPE_CHAR,  (void*)0 };
2940 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_13 = { "LPRIN_13", 8, "user word",
2941  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2942  KmTYPE_CHAR,  (void*)0 };
2943 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_14 = { "LPRIN_14", 8, "user word",
2944  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2945  KmTYPE_CHAR,  (void*)0 };
2946 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_15 = { "LPRIN_15", 8, "user word",
2947  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2948  KmTYPE_CHAR,  (void*)0 };
2949 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_16 = { "LPRIN_16", 8, "user word",
2950  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2951  KmTYPE_CHAR,  (void*)0 };
2952 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_17 = { "LPRIN_17", 8, "user word",
2953  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2954  KmTYPE_CHAR,  (void*)0 };
2955 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_18 = { "LPRIN_18", 8, "user word",
2956  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2957  KmTYPE_CHAR,  (void*)0 };
2958 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_19 = { "LPRIN_19", 8, "user word",
2959  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2960  KmTYPE_CHAR,  (void*)0 };
2961 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_20 = { "LPRIN_20", 8, "user word",
2962  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2963  KmTYPE_CHAR,  (void*)0 };
2964 static KmParameter *_GEANT_LISTS_LPRIN_parameters[] = {
2965  &_GEANT_LISTS_LPRIN_LPRIN_1, &_GEANT_LISTS_LPRIN_LPRIN_2,
2966  &_GEANT_LISTS_LPRIN_LPRIN_3, &_GEANT_LISTS_LPRIN_LPRIN_4,
2967  &_GEANT_LISTS_LPRIN_LPRIN_5, &_GEANT_LISTS_LPRIN_LPRIN_6,
2968  &_GEANT_LISTS_LPRIN_LPRIN_7, &_GEANT_LISTS_LPRIN_LPRIN_8,
2969  &_GEANT_LISTS_LPRIN_LPRIN_9, &_GEANT_LISTS_LPRIN_LPRIN_10,
2970  &_GEANT_LISTS_LPRIN_LPRIN_11, &_GEANT_LISTS_LPRIN_LPRIN_12,
2971  &_GEANT_LISTS_LPRIN_LPRIN_13, &_GEANT_LISTS_LPRIN_LPRIN_14,
2972  &_GEANT_LISTS_LPRIN_LPRIN_15, &_GEANT_LISTS_LPRIN_LPRIN_16,
2973  &_GEANT_LISTS_LPRIN_LPRIN_17, &_GEANT_LISTS_LPRIN_LPRIN_18,
2974  &_GEANT_LISTS_LPRIN_LPRIN_19, &_GEANT_LISTS_LPRIN_LPRIN_20 };
2975 static char *_GEANT_LISTS_LPRIN_guidance[] = {
2976  "The command PRIN is similar to the PRIN data records. It can accept",
2977  "up to 20 4-character words. If the first argument is '.', the number",
2978  "of words is reset to 0 and all the words to four blanks." };
2979 static KmCommand _GEANT_LISTS_LPRIN = { &_GEANT_LISTS_GEOM,
2980  "/GEANT/LISTS/LPRIN", "LPRIN", 0, 2, 20, 0, _GEANT_LISTS_LPRIN_parameters, 0,
2981  0, gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
2982  _GEANT_LISTS_LPRIN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
2983  (char*)0, (int*)0 };
2984  
2985 static KmParameter _GEANT_LISTS_SETS_LSETS_1 = { "LSETS_1", 7, "user word",
2986  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2987  KmTYPE_CHAR,  (void*)0 };
2988 static KmParameter _GEANT_LISTS_SETS_LSETS_2 = { "LSETS_2", 7, "user word",
2989  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2990  KmTYPE_CHAR,  (void*)0 };
2991 static KmParameter _GEANT_LISTS_SETS_LSETS_3 = { "LSETS_3", 7, "user word",
2992  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2993  KmTYPE_CHAR,  (void*)0 };
2994 static KmParameter _GEANT_LISTS_SETS_LSETS_4 = { "LSETS_4", 7, "user word",
2995  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2996  KmTYPE_CHAR,  (void*)0 };
2997 static KmParameter _GEANT_LISTS_SETS_LSETS_5 = { "LSETS_5", 7, "user word",
2998  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
2999  KmTYPE_CHAR,  (void*)0 };
3000 static KmParameter _GEANT_LISTS_SETS_LSETS_6 = { "LSETS_6", 7, "user word",
3001  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3002  KmTYPE_CHAR,  (void*)0 };
3003 static KmParameter _GEANT_LISTS_SETS_LSETS_7 = { "LSETS_7", 7, "user word",
3004  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3005  KmTYPE_CHAR,  (void*)0 };
3006 static KmParameter _GEANT_LISTS_SETS_LSETS_8 = { "LSETS_8", 7, "user word",
3007  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3008  KmTYPE_CHAR,  (void*)0 };
3009 static KmParameter _GEANT_LISTS_SETS_LSETS_9 = { "LSETS_9", 7, "user word",
3010  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3011  KmTYPE_CHAR,  (void*)0 };
3012 static KmParameter _GEANT_LISTS_SETS_LSETS_10 = { "LSETS_10", 8, "user word",
3013  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3014  KmTYPE_CHAR,  (void*)0 };
3015 static KmParameter _GEANT_LISTS_SETS_LSETS_11 = { "LSETS_11", 8, "user word",
3016  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3017  KmTYPE_CHAR,  (void*)0 };
3018 static KmParameter _GEANT_LISTS_SETS_LSETS_12 = { "LSETS_12", 8, "user word",
3019  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3020  KmTYPE_CHAR,  (void*)0 };
3021 static KmParameter _GEANT_LISTS_SETS_LSETS_13 = { "LSETS_13", 8, "user word",
3022  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3023  KmTYPE_CHAR,  (void*)0 };
3024 static KmParameter _GEANT_LISTS_SETS_LSETS_14 = { "LSETS_14", 8, "user word",
3025  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3026  KmTYPE_CHAR,  (void*)0 };
3027 static KmParameter _GEANT_LISTS_SETS_LSETS_15 = { "LSETS_15", 8, "user word",
3028  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3029  KmTYPE_CHAR,  (void*)0 };
3030 static KmParameter _GEANT_LISTS_SETS_LSETS_16 = { "LSETS_16", 8, "user word",
3031  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3032  KmTYPE_CHAR,  (void*)0 };
3033 static KmParameter _GEANT_LISTS_SETS_LSETS_17 = { "LSETS_17", 8, "user word",
3034  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3035  KmTYPE_CHAR,  (void*)0 };
3036 static KmParameter _GEANT_LISTS_SETS_LSETS_18 = { "LSETS_18", 8, "user word",
3037  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3038  KmTYPE_CHAR,  (void*)0 };
3039 static KmParameter _GEANT_LISTS_SETS_LSETS_19 = { "LSETS_19", 8, "user word",
3040  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3041  KmTYPE_CHAR,  (void*)0 };
3042 static KmParameter _GEANT_LISTS_SETS_LSETS_20 = { "LSETS_20", 8, "user word",
3043  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3044  KmTYPE_CHAR,  (void*)0 };
3045 static KmParameter *_GEANT_LISTS_SETS_parameters[] = {
3046  &_GEANT_LISTS_SETS_LSETS_1, &_GEANT_LISTS_SETS_LSETS_2,
3047  &_GEANT_LISTS_SETS_LSETS_3, &_GEANT_LISTS_SETS_LSETS_4,
3048  &_GEANT_LISTS_SETS_LSETS_5, &_GEANT_LISTS_SETS_LSETS_6,
3049  &_GEANT_LISTS_SETS_LSETS_7, &_GEANT_LISTS_SETS_LSETS_8,
3050  &_GEANT_LISTS_SETS_LSETS_9, &_GEANT_LISTS_SETS_LSETS_10,
3051  &_GEANT_LISTS_SETS_LSETS_11, &_GEANT_LISTS_SETS_LSETS_12,
3052  &_GEANT_LISTS_SETS_LSETS_13, &_GEANT_LISTS_SETS_LSETS_14,
3053  &_GEANT_LISTS_SETS_LSETS_15, &_GEANT_LISTS_SETS_LSETS_16,
3054  &_GEANT_LISTS_SETS_LSETS_17, &_GEANT_LISTS_SETS_LSETS_18,
3055  &_GEANT_LISTS_SETS_LSETS_19, &_GEANT_LISTS_SETS_LSETS_20 };
3056 static char *_GEANT_LISTS_SETS_guidance[] = {
3057  "The command SETS is similar to the SETS data records. It can accept",
3058  "up to 20 4-character words. If the first argument is '.', the number",
3059  "of words is reset to 0 and all the words to four blanks." };
3060 static KmCommand _GEANT_LISTS_SETS = { &_GEANT_LISTS_LPRIN,
3061  "/GEANT/LISTS/SETS", "SETS", 0, 2, 20, 0, _GEANT_LISTS_SETS_parameters, 0, 0,
3062  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
3063  _GEANT_LISTS_SETS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3064  (char*)0, (int*)0 };
3065  
3066 static KmParameter _GEANT_LISTS_SAVE_LSAVE_1 = { "LSAVE_1", 7, "user word",
3067  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3068  KmTYPE_CHAR,  (void*)0 };
3069 static KmParameter _GEANT_LISTS_SAVE_LSAVE_2 = { "LSAVE_2", 7, "user word",
3070  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3071  KmTYPE_CHAR,  (void*)0 };
3072 static KmParameter _GEANT_LISTS_SAVE_LSAVE_3 = { "LSAVE_3", 7, "user word",
3073  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3074  KmTYPE_CHAR,  (void*)0 };
3075 static KmParameter _GEANT_LISTS_SAVE_LSAVE_4 = { "LSAVE_4", 7, "user word",
3076  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3077  KmTYPE_CHAR,  (void*)0 };
3078 static KmParameter _GEANT_LISTS_SAVE_LSAVE_5 = { "LSAVE_5", 7, "user word",
3079  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3080  KmTYPE_CHAR,  (void*)0 };
3081 static KmParameter _GEANT_LISTS_SAVE_LSAVE_6 = { "LSAVE_6", 7, "user word",
3082  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3083  KmTYPE_CHAR,  (void*)0 };
3084 static KmParameter _GEANT_LISTS_SAVE_LSAVE_7 = { "LSAVE_7", 7, "user word",
3085  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3086  KmTYPE_CHAR,  (void*)0 };
3087 static KmParameter _GEANT_LISTS_SAVE_LSAVE_8 = { "LSAVE_8", 7, "user word",
3088  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3089  KmTYPE_CHAR,  (void*)0 };
3090 static KmParameter _GEANT_LISTS_SAVE_LSAVE_9 = { "LSAVE_9", 7, "user word",
3091  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3092  KmTYPE_CHAR,  (void*)0 };
3093 static KmParameter _GEANT_LISTS_SAVE_LSAVE_10 = { "LSAVE_10", 8, "user word",
3094  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3095  KmTYPE_CHAR,  (void*)0 };
3096 static KmParameter _GEANT_LISTS_SAVE_LSAVE_11 = { "LSAVE_11", 8, "user word",
3097  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3098  KmTYPE_CHAR,  (void*)0 };
3099 static KmParameter _GEANT_LISTS_SAVE_LSAVE_12 = { "LSAVE_12", 8, "user word",
3100  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3101  KmTYPE_CHAR,  (void*)0 };
3102 static KmParameter _GEANT_LISTS_SAVE_LSAVE_13 = { "LSAVE_13", 8, "user word",
3103  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3104  KmTYPE_CHAR,  (void*)0 };
3105 static KmParameter _GEANT_LISTS_SAVE_LSAVE_14 = { "LSAVE_14", 8, "user word",
3106  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3107  KmTYPE_CHAR,  (void*)0 };
3108 static KmParameter _GEANT_LISTS_SAVE_LSAVE_15 = { "LSAVE_15", 8, "user word",
3109  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3110  KmTYPE_CHAR,  (void*)0 };
3111 static KmParameter _GEANT_LISTS_SAVE_LSAVE_16 = { "LSAVE_16", 8, "user word",
3112  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3113  KmTYPE_CHAR,  (void*)0 };
3114 static KmParameter _GEANT_LISTS_SAVE_LSAVE_17 = { "LSAVE_17", 8, "user word",
3115  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3116  KmTYPE_CHAR,  (void*)0 };
3117 static KmParameter _GEANT_LISTS_SAVE_LSAVE_18 = { "LSAVE_18", 8, "user word",
3118  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3119  KmTYPE_CHAR,  (void*)0 };
3120 static KmParameter _GEANT_LISTS_SAVE_LSAVE_19 = { "LSAVE_19", 8, "user word",
3121  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3122  KmTYPE_CHAR,  (void*)0 };
3123 static KmParameter _GEANT_LISTS_SAVE_LSAVE_20 = { "LSAVE_20", 8, "user word",
3124  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3125  KmTYPE_CHAR,  (void*)0 };
3126 static KmParameter *_GEANT_LISTS_SAVE_parameters[] = {
3127  &_GEANT_LISTS_SAVE_LSAVE_1, &_GEANT_LISTS_SAVE_LSAVE_2,
3128  &_GEANT_LISTS_SAVE_LSAVE_3, &_GEANT_LISTS_SAVE_LSAVE_4,
3129  &_GEANT_LISTS_SAVE_LSAVE_5, &_GEANT_LISTS_SAVE_LSAVE_6,
3130  &_GEANT_LISTS_SAVE_LSAVE_7, &_GEANT_LISTS_SAVE_LSAVE_8,
3131  &_GEANT_LISTS_SAVE_LSAVE_9, &_GEANT_LISTS_SAVE_LSAVE_10,
3132  &_GEANT_LISTS_SAVE_LSAVE_11, &_GEANT_LISTS_SAVE_LSAVE_12,
3133  &_GEANT_LISTS_SAVE_LSAVE_13, &_GEANT_LISTS_SAVE_LSAVE_14,
3134  &_GEANT_LISTS_SAVE_LSAVE_15, &_GEANT_LISTS_SAVE_LSAVE_16,
3135  &_GEANT_LISTS_SAVE_LSAVE_17, &_GEANT_LISTS_SAVE_LSAVE_18,
3136  &_GEANT_LISTS_SAVE_LSAVE_19, &_GEANT_LISTS_SAVE_LSAVE_20 };
3137 static char *_GEANT_LISTS_SAVE_guidance[] = {
3138  "The command SAVE is similar to the SAVE data records. It can accept",
3139  "up to 20 4-character words. If the first argument is '.', the number",
3140  "of words is reset to 0 and all the words to four blanks." };
3141 static KmCommand _GEANT_LISTS_SAVE = { &_GEANT_LISTS_SETS,
3142  "/GEANT/LISTS/SAVE", "SAVE", 0, 2, 20, 0, _GEANT_LISTS_SAVE_parameters, 0, 0,
3143  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
3144  _GEANT_LISTS_SAVE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3145  (char*)0, (int*)0 };
3146  
3147 static KmParameter _GEANT_LISTS_GET_LGET_1 = { "LGET_1", 6, "user word",
3148  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3149  KmTYPE_CHAR,  (void*)0 };
3150 static KmParameter _GEANT_LISTS_GET_LGET_2 = { "LGET_2", 6, "user word",
3151  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3152  KmTYPE_CHAR,  (void*)0 };
3153 static KmParameter _GEANT_LISTS_GET_LGET_3 = { "LGET_3", 6, "user word",
3154  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3155  KmTYPE_CHAR,  (void*)0 };
3156 static KmParameter _GEANT_LISTS_GET_LGET_4 = { "LGET_4", 6, "user word",
3157  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3158  KmTYPE_CHAR,  (void*)0 };
3159 static KmParameter _GEANT_LISTS_GET_LGET_5 = { "LGET_5", 6, "user word",
3160  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3161  KmTYPE_CHAR,  (void*)0 };
3162 static KmParameter _GEANT_LISTS_GET_LGET_6 = { "LGET_6", 6, "user word",
3163  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3164  KmTYPE_CHAR,  (void*)0 };
3165 static KmParameter _GEANT_LISTS_GET_LGET_7 = { "LGET_7", 6, "user word",
3166  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3167  KmTYPE_CHAR,  (void*)0 };
3168 static KmParameter _GEANT_LISTS_GET_LGET_8 = { "LGET_8", 6, "user word",
3169  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3170  KmTYPE_CHAR,  (void*)0 };
3171 static KmParameter _GEANT_LISTS_GET_LGET_9 = { "LGET_9", 6, "user word",
3172  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3173  KmTYPE_CHAR,  (void*)0 };
3174 static KmParameter _GEANT_LISTS_GET_LGET_10 = { "LGET_10", 7, "user word",
3175  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3176  KmTYPE_CHAR,  (void*)0 };
3177 static KmParameter _GEANT_LISTS_GET_LGET_11 = { "LGET_11", 7, "user word",
3178  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3179  KmTYPE_CHAR,  (void*)0 };
3180 static KmParameter _GEANT_LISTS_GET_LGET_12 = { "LGET_12", 7, "user word",
3181  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3182  KmTYPE_CHAR,  (void*)0 };
3183 static KmParameter _GEANT_LISTS_GET_LGET_13 = { "LGET_13", 7, "user word",
3184  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3185  KmTYPE_CHAR,  (void*)0 };
3186 static KmParameter _GEANT_LISTS_GET_LGET_14 = { "LGET_14", 7, "user word",
3187  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3188  KmTYPE_CHAR,  (void*)0 };
3189 static KmParameter _GEANT_LISTS_GET_LGET_15 = { "LGET_15", 7, "user word",
3190  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3191  KmTYPE_CHAR,  (void*)0 };
3192 static KmParameter _GEANT_LISTS_GET_LGET_16 = { "LGET_16", 7, "user word",
3193  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3194  KmTYPE_CHAR,  (void*)0 };
3195 static KmParameter _GEANT_LISTS_GET_LGET_17 = { "LGET_17", 7, "user word",
3196  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3197  KmTYPE_CHAR,  (void*)0 };
3198 static KmParameter _GEANT_LISTS_GET_LGET_18 = { "LGET_18", 7, "user word",
3199  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3200  KmTYPE_CHAR,  (void*)0 };
3201 static KmParameter _GEANT_LISTS_GET_LGET_19 = { "LGET_19", 7, "user word",
3202  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3203  KmTYPE_CHAR,  (void*)0 };
3204 static KmParameter _GEANT_LISTS_GET_LGET_20 = { "LGET_20", 7, "user word",
3205  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3206  KmTYPE_CHAR,  (void*)0 };
3207 static KmParameter *_GEANT_LISTS_GET_parameters[] = {
3208  &_GEANT_LISTS_GET_LGET_1, &_GEANT_LISTS_GET_LGET_2, &_GEANT_LISTS_GET_LGET_3,
3209  &_GEANT_LISTS_GET_LGET_4, &_GEANT_LISTS_GET_LGET_5, &_GEANT_LISTS_GET_LGET_6,
3210  &_GEANT_LISTS_GET_LGET_7, &_GEANT_LISTS_GET_LGET_8, &_GEANT_LISTS_GET_LGET_9,
3211  &_GEANT_LISTS_GET_LGET_10, &_GEANT_LISTS_GET_LGET_11,
3212  &_GEANT_LISTS_GET_LGET_12, &_GEANT_LISTS_GET_LGET_13,
3213  &_GEANT_LISTS_GET_LGET_14, &_GEANT_LISTS_GET_LGET_15,
3214  &_GEANT_LISTS_GET_LGET_16, &_GEANT_LISTS_GET_LGET_17,
3215  &_GEANT_LISTS_GET_LGET_18, &_GEANT_LISTS_GET_LGET_19,
3216  &_GEANT_LISTS_GET_LGET_20 };
3217 static char *_GEANT_LISTS_GET_guidance[] = {
3218  "The command GET is similar to the GET data records. It can accept",
3219  "up to 20 4-character words. If the first argument is '.', the number",
3220  "of words is reset to 0 and all the words to four blanks." };
3221 static KmCommand _GEANT_LISTS_GET = { &_GEANT_LISTS_SAVE, "/GEANT/LISTS/GET",
3222  "GET", 0, 2, 20, 0, _GEANT_LISTS_GET_parameters, 0, 0, gxlist_, (IntFunc*)0,
3223  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_GET_guidance, 0, (char**)0, 0,
3224  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3225  
3226 static KmParameter _GEANT_LISTS_HSTA_LHSTA_1 = { "LHSTA_1", 7, "user word",
3227  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3228  KmTYPE_CHAR,  (void*)0 };
3229 static KmParameter _GEANT_LISTS_HSTA_LHSTA_2 = { "LHSTA_2", 7, "user word",
3230  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3231  KmTYPE_CHAR,  (void*)0 };
3232 static KmParameter _GEANT_LISTS_HSTA_LHSTA_3 = { "LHSTA_3", 7, "user word",
3233  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3234  KmTYPE_CHAR,  (void*)0 };
3235 static KmParameter _GEANT_LISTS_HSTA_LHSTA_4 = { "LHSTA_4", 7, "user word",
3236  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3237  KmTYPE_CHAR,  (void*)0 };
3238 static KmParameter _GEANT_LISTS_HSTA_LHSTA_5 = { "LHSTA_5", 7, "user word",
3239  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3240  KmTYPE_CHAR,  (void*)0 };
3241 static KmParameter _GEANT_LISTS_HSTA_LHSTA_6 = { "LHSTA_6", 7, "user word",
3242  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3243  KmTYPE_CHAR,  (void*)0 };
3244 static KmParameter _GEANT_LISTS_HSTA_LHSTA_7 = { "LHSTA_7", 7, "user word",
3245  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3246  KmTYPE_CHAR,  (void*)0 };
3247 static KmParameter _GEANT_LISTS_HSTA_LHSTA_8 = { "LHSTA_8", 7, "user word",
3248  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3249  KmTYPE_CHAR,  (void*)0 };
3250 static KmParameter _GEANT_LISTS_HSTA_LHSTA_9 = { "LHSTA_9", 7, "user word",
3251  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3252  KmTYPE_CHAR,  (void*)0 };
3253 static KmParameter _GEANT_LISTS_HSTA_LHSTA_10 = { "LHSTA_10", 8, "user word",
3254  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3255  KmTYPE_CHAR,  (void*)0 };
3256 static KmParameter _GEANT_LISTS_HSTA_LHSTA_11 = { "LHSTA_11", 8, "user word",
3257  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3258  KmTYPE_CHAR,  (void*)0 };
3259 static KmParameter _GEANT_LISTS_HSTA_LHSTA_12 = { "LHSTA_12", 8, "user word",
3260  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3261  KmTYPE_CHAR,  (void*)0 };
3262 static KmParameter _GEANT_LISTS_HSTA_LHSTA_13 = { "LHSTA_13", 8, "user word",
3263  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3264  KmTYPE_CHAR,  (void*)0 };
3265 static KmParameter _GEANT_LISTS_HSTA_LHSTA_14 = { "LHSTA_14", 8, "user word",
3266  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3267  KmTYPE_CHAR,  (void*)0 };
3268 static KmParameter _GEANT_LISTS_HSTA_LHSTA_15 = { "LHSTA_15", 8, "user word",
3269  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3270  KmTYPE_CHAR,  (void*)0 };
3271 static KmParameter _GEANT_LISTS_HSTA_LHSTA_16 = { "LHSTA_16", 8, "user word",
3272  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3273  KmTYPE_CHAR,  (void*)0 };
3274 static KmParameter _GEANT_LISTS_HSTA_LHSTA_17 = { "LHSTA_17", 8, "user word",
3275  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3276  KmTYPE_CHAR,  (void*)0 };
3277 static KmParameter _GEANT_LISTS_HSTA_LHSTA_18 = { "LHSTA_18", 8, "user word",
3278  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3279  KmTYPE_CHAR,  (void*)0 };
3280 static KmParameter _GEANT_LISTS_HSTA_LHSTA_19 = { "LHSTA_19", 8, "user word",
3281  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3282  KmTYPE_CHAR,  (void*)0 };
3283 static KmParameter _GEANT_LISTS_HSTA_LHSTA_20 = { "LHSTA_20", 8, "user word",
3284  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3285  KmTYPE_CHAR,  (void*)0 };
3286 static KmParameter *_GEANT_LISTS_HSTA_parameters[] = {
3287  &_GEANT_LISTS_HSTA_LHSTA_1, &_GEANT_LISTS_HSTA_LHSTA_2,
3288  &_GEANT_LISTS_HSTA_LHSTA_3, &_GEANT_LISTS_HSTA_LHSTA_4,
3289  &_GEANT_LISTS_HSTA_LHSTA_5, &_GEANT_LISTS_HSTA_LHSTA_6,
3290  &_GEANT_LISTS_HSTA_LHSTA_7, &_GEANT_LISTS_HSTA_LHSTA_8,
3291  &_GEANT_LISTS_HSTA_LHSTA_9, &_GEANT_LISTS_HSTA_LHSTA_10,
3292  &_GEANT_LISTS_HSTA_LHSTA_11, &_GEANT_LISTS_HSTA_LHSTA_12,
3293  &_GEANT_LISTS_HSTA_LHSTA_13, &_GEANT_LISTS_HSTA_LHSTA_14,
3294  &_GEANT_LISTS_HSTA_LHSTA_15, &_GEANT_LISTS_HSTA_LHSTA_16,
3295  &_GEANT_LISTS_HSTA_LHSTA_17, &_GEANT_LISTS_HSTA_LHSTA_18,
3296  &_GEANT_LISTS_HSTA_LHSTA_19, &_GEANT_LISTS_HSTA_LHSTA_20 };
3297 static char *_GEANT_LISTS_HSTA_guidance[] = {
3298  "The command HSTA is similar to the HSTA data records. It can accept",
3299  "up to 20 4-character words. If the first argument is '.', the number",
3300  "of words is reset to 0 and all the words to four blanks." };
3301 static KmCommand _GEANT_LISTS_HSTA = { &_GEANT_LISTS_GET, "/GEANT/LISTS/HSTA",
3302  "HSTA", 0, 2, 20, 0, _GEANT_LISTS_HSTA_parameters, 0, 0, gxlist_,
3303  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_HSTA_guidance, 0,
3304  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3305  
3306 static KmMenu _GEANT_LISTS = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/LISTS",
3307  "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
3308  
3309 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
3310  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
3311  
3312   klnkmenu( &_GEANT, 950303 );
3313 }
3314  
3315  
3316 #ifdef F77_LCASE
3317 #  define gkgeom_ gkgeom
3318 #  define gxgeom_ gxgeom
3319 #endif
3320  
3321 #ifdef F77_UCASE
3322 #  define gkgeom_ GKGEOM
3323 #  define gxgeom_ GXGEOM
3324 #endif
3325  
3326 #ifdef IBM370
3327 #  pragma linkage(GKGEOM,FORTRAN)
3328 #  pragma linkage(GXGEOM,FORTRAN)
3329 #endif
3330  
3331 extern void gkgeom_();
3332 extern void gxgeom_();
3333  
3334 void gkgeom_()
3335 {
3336  
3337 static KmParInt    _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
3338  "100", 0 };
3339 static KmParameter _GEANT_GEOMETRY_WEUCLID_LUN = { "LUN", 3,
3340  "Logical unit of the file to be written", (char*)0, (char*)0, 4, 0,
3341  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3342  &_GEANT_GEOMETRY_WEUCLID_LUN_type };
3343 static KmParameter _GEANT_GEOMETRY_WEUCLID_FNAME = { "FNAME", 5,
3344  "Name of the EUCLID file to be written", (char*)0, (char*)0, 20, 0,
3345  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3346 static KmParameter _GEANT_GEOMETRY_WEUCLID_TOPVOL = { "TOPVOL", 6,
3347  "Volume name of the starting node", (char*)0, (char*)0, 20, 0, (char**)0, 0,
3348  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3349 static KmParInt    _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
3350  (char*)0, (char*)0, 0 };
3351 static KmParameter _GEANT_GEOMETRY_WEUCLID_NUMBER = { "NUMBER", 6,
3352  "Copy number of TOPVOL (relevant for GSPOSP)", "1", (char*)0, 8, 0,
3353  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3354  &_GEANT_GEOMETRY_WEUCLID_NUMBER_type };
3355 static KmParInt    _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
3356  (char*)0, (char*)0, 0 };
3357 static KmParameter _GEANT_GEOMETRY_WEUCLID_NLEVEL = { "NLEVEL", 6,
3358  "Number of levels in the tree structure", "15", (char*)0, 8, 0, (char**)0, 0,
3359  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_WEUCLID_NLEVEL_type };
3360 static KmParameter *_GEANT_GEOMETRY_WEUCLID_parameters[] = {
3361  &_GEANT_GEOMETRY_WEUCLID_LUN, &_GEANT_GEOMETRY_WEUCLID_FNAME,
3362  &_GEANT_GEOMETRY_WEUCLID_TOPVOL, &_GEANT_GEOMETRY_WEUCLID_NUMBER,
3363  &_GEANT_GEOMETRY_WEUCLID_NLEVEL };
3364 static char *_GEANT_GEOMETRY_WEUCLID_guidance[] = {
3365  "          CALL GWEUCL(LUN,FNAME)",
3366  "Calls the routine to write the current GEANT geometry into an ASCII file",
3367  "in EUCLID compatible format." };
3368 static KmCommand _GEANT_GEOMETRY_WEUCLID = {  (KmCommand*)0,
3369  "/GEANT/GEOMETRY/WEUCLID", "WEUCLID", 0, 2, 5, 3,
3370  _GEANT_GEOMETRY_WEUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
3371  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_WEUCLID_guidance, 0,
3372  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3373  
3374 static KmParInt    _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
3375  "100", 0 };
3376 static KmParameter _GEANT_GEOMETRY_REUCLID_LUN = { "LUN", 3,
3377  "Logical unit of the file to be read", (char*)0, (char*)0, 4, 0, (char**)0,
3378  0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_REUCLID_LUN_type };
3379 static KmParameter _GEANT_GEOMETRY_REUCLID_FNAME = { "FNAME", 5,
3380  "Name of the EUCLID file to be read", (char*)0, (char*)0, 20, 0, (char**)0,
3381  0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3382 static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
3383  &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
3384 static char *_GEANT_GEOMETRY_REUCLID_guidance[] = {
3385  "          CALL GREUCL(LUN,FNAME)",
3386  "Calls the routine to read into GEANT a geometry from an ASCII file",
3387  "written by the EUCLID-GEANT interface." };
3388 static KmCommand _GEANT_GEOMETRY_REUCLID = { &_GEANT_GEOMETRY_WEUCLID,
3389  "/GEANT/GEOMETRY/REUCLID", "REUCLID", 0, 2, 2, 2,
3390  _GEANT_GEOMETRY_REUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
3391  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_REUCLID_guidance, 0,
3392  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3393  
3394 static KmParameter _GEANT_GEOMETRY_CADINT_FNAME = { "FNAME", 5,
3395  "Name of the SET file", "example.set", (char*)0, 20, 0, (char**)0, 0,
3396  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3397 static KmParameter _GEANT_GEOMETRY_CADINT_ANAME = { "ANAME", 5,
3398  "Name of the volume", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3399  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3400 static KmParInt    _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
3401  (char*)0, (char*)0, 0 };
3402 static KmParameter _GEANT_GEOMETRY_CADINT_NBINS = { "NBINS", 5,
3403  "Number of the instances", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3404  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_NBINS_type };
3405 static KmParInt    _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
3406  (char*)0, (char*)0, 0 };
3407 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT = { "LUNIT", 5,
3408  "Logical unit number for SET file", "66", (char*)0, 8, 0, (char**)0, 0,
3409  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT_type };
3410 static KmParInt    _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
3411  (char*)0, (char*)0, 0 };
3412 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT2 = { "LUNIT2", 6,
3413  "Logical unit number for material file", "67", (char*)0, 8, 0, (char**)0, 0,
3414  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT2_type };
3415 static KmParameter _GEANT_GEOMETRY_CADINT_INST = { "INST", 4,
3416  "Name of your institute", "CERN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
3417  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3418 static KmParameter _GEANT_GEOMETRY_CADINT_SITE = { "SITE", 4, "Name of site",
3419  "MEYRIN", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3420  KmTYPE_CHAR,  (void*)0 };
3421 static KmParameter _GEANT_GEOMETRY_CADINT_DEPT = { "DEPT", 4,
3422  "Name of departement", "CN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
3423  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3424 static KmParameter _GEANT_GEOMETRY_CADINT_RESP = { "RESP", 4,
3425  "Name of sender", "god_knows_who", (char*)0, 20, 0, (char**)0, 0, (char**)0,
3426  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3427 static KmParameter *_GEANT_GEOMETRY_CADINT_parameters[] = {
3428  &_GEANT_GEOMETRY_CADINT_FNAME, &_GEANT_GEOMETRY_CADINT_ANAME,
3429  &_GEANT_GEOMETRY_CADINT_NBINS, &_GEANT_GEOMETRY_CADINT_LUNIT,
3430  &_GEANT_GEOMETRY_CADINT_LUNIT2, &_GEANT_GEOMETRY_CADINT_INST,
3431  &_GEANT_GEOMETRY_CADINT_SITE, &_GEANT_GEOMETRY_CADINT_DEPT,
3432  &_GEANT_GEOMETRY_CADINT_RESP };
3433 static char *_GEANT_GEOMETRY_CADINT_guidance[] = {
3434  " CALL GTXSET(fname,aname,nbins,lunit,lunit2,inst,site,dept,resp)",
3435  "This command produces a SET file describing the given volume with",
3436  "the contents currently set visible. (Use the visibility attribute,",
3437  "see SATT SEEN.) The description is given as a flat assembly",
3438  "related to the global coordinate system.",
3439  "The ouput can be read into CAD systems (EUCLID-IS) trough a SET interface.",
3440  "A list of materials of the volumes in the SET file and the GEANT tree",
3441  "is written into a file with the same filename as the SET file,",
3442  "but with extension .mat." };
3443 static KmCommand _GEANT_GEOMETRY_CADINT = { &_GEANT_GEOMETRY_REUCLID,
3444  "/GEANT/GEOMETRY/CADINT", "CADINT", 0, 2, 9, 9,
3445  _GEANT_GEOMETRY_CADINT_parameters, 0, 0, gxgeom_, (IntFunc*)0,
3446  (SUBROUTINE*)0, (pCharFunc*)0, 9, _GEANT_GEOMETRY_CADINT_guidance, 0,
3447  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3448  
3449 static KmParInt    _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
3450  (char*)0, (char*)0, 0 };
3451 static KmParameter _GEANT_GEOMETRY_EDITV_ISEL = { "ISEL", 4, "Options", "0",
3452  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3453  &_GEANT_GEOMETRY_EDITV_ISEL_type };
3454 static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
3455  "   ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
3456  (void*)0 };
3457 static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
3458  &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
3459 static char *_GEANT_GEOMETRY_EDITV_guidance[] = { " CALL GEDITV(isel,name)",
3460  "When the routine prompts for input parameters that do not need",
3461  "to be changed, type return.",
3462  "ISEL is used to select the editing operation to be performed:",
3463  " ISEL=0, CALL GGCLOS",
3464  " ISEL=1, to modify shape parameters PAR given by GSVOLU",
3465  " ISEL=2, to modify NAME given by GSVOLU",
3466  " ISEL=3, to delete NAME given by GSVOLU",
3467  " ISEL=4, to unlink NAME,NR given by GSPOS/GSDVN/GSDV..",
3468  " ISEL=5, to modify X0,Y0,Z0 of NAME,NR given by GSPOS",
3469  " ISEL=6, to modify IROT of NAME,NR given by GSPOS",
3470  " ISEL=7, to modify NDIV given by GSDVN",
3471  " ISEL=8, to modify IAXIS given by GSDVN" };
3472 static KmCommand _GEANT_GEOMETRY_EDITV = { &_GEANT_GEOMETRY_CADINT,
3473  "/GEANT/GEOMETRY/EDITV", "EDITV", 0, 2, 2, 0,
3474  _GEANT_GEOMETRY_EDITV_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3475  (pCharFunc*)0, 13, _GEANT_GEOMETRY_EDITV_guidance, 0, (char**)0, 0,
3476  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3477  
3478 static KmParInt    _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
3479  (char*)0, (char*)0, 0 };
3480 static KmParameter _GEANT_GEOMETRY_PTMED_NUMB = { "NUMB", 4, "Medium ID",
3481  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3482  &_GEANT_GEOMETRY_PTMED_NUMB_type };
3483 static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
3484  &_GEANT_GEOMETRY_PTMED_NUMB };
3485 static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
3486  "Print tracking media's specifications." };
3487 static KmCommand _GEANT_GEOMETRY_PTMED = { &_GEANT_GEOMETRY_EDITV,
3488  "/GEANT/GEOMETRY/PTMED", "PTMED", 0, 2, 1, 1,
3489  _GEANT_GEOMETRY_PTMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3490  (pCharFunc*)0, 2, _GEANT_GEOMETRY_PTMED_guidance, 0, (char**)0, 0, (char**)0,
3491  0, (char**)0, (char*)0, (int*)0 };
3492  
3493 static KmParInt    _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
3494  (char*)0, (char*)0, 0 };
3495 static KmParameter _GEANT_GEOMETRY_STMED_NTMED = { "NTMED", 5,
3496  "Tracking medium number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3497  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NTMED_type };
3498 static KmParameter _GEANT_GEOMETRY_STMED_NAME = { "NAME", 4,
3499  "Tracking medium name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3500  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3501 static KmParInt    _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
3502  (char*)0, (char*)0, 0 };
3503 static KmParameter _GEANT_GEOMETRY_STMED_NMAT = { "NMAT", 4,
3504  "Material number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3505  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NMAT_type };
3506 static KmParInt    _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
3507  (char*)0, (char*)0, 0 };
3508 static KmParameter _GEANT_GEOMETRY_STMED_ISVOL = { "ISVOL", 5,
3509  "Sensitive volume flag", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
3510  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_ISVOL_type };
3511 static KmParInt    _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
3512  (char*)0, (char*)0, 0 };
3513 static KmParameter _GEANT_GEOMETRY_STMED_IFIELD = { "IFIELD", 6,
3514  "Magnetic field", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3515  KmTYPE_INT, &_GEANT_GEOMETRY_STMED_IFIELD_type };
3516 static KmParReal   _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
3517  (char*)0, (char*)0, 0 };
3518 static KmParameter _GEANT_GEOMETRY_STMED_FIELDM = { "FIELDM", 6,
3519  "Max. field value (Kilogauss)", "0", (char*)0, 12, 0, (char**)0, 0,
3520  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_FIELDM_type };
3521 static KmParReal   _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
3522  (char*)0, (char*)0, 0 };
3523 static KmParameter _GEANT_GEOMETRY_STMED_TMAXFD = { "TMAXFD", 6,
3524  "Max. angle due to field (deg/step)", "0.01", (char*)0, 12, 0, (char**)0, 0,
3525  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_TMAXFD_type };
3526 static KmParReal   _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
3527  (char*)0, (char*)0, 0 };
3528 static KmParameter _GEANT_GEOMETRY_STMED_STEMAX = { "STEMAX", 6,
3529  "Max. step allowed", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3530  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_STEMAX_type };
3531 static KmParReal   _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
3532  (char*)0, (char*)0, 0 };
3533 static KmParameter _GEANT_GEOMETRY_STMED_DEEMAX = { "DEEMAX", 6,
3534  "Max. fraction of energy lost in a step", "0.01", (char*)0, 12, 0, (char**)0,
3535  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_DEEMAX_type };
3536 static KmParReal   _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
3537  (char*)0, (char*)0, 0 };
3538 static KmParameter _GEANT_GEOMETRY_STMED_EPSIL = { "EPSIL", 5,
3539  "Tracking precision (cm)", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3540  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_EPSIL_type };
3541 static KmParReal   _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
3542  (char*)0, (char*)0, 0 };
3543 static KmParameter _GEANT_GEOMETRY_STMED_STMIN = { "STMIN", 5,
3544  "Min. step due to continuos processes (cm)", "0.1", (char*)0, 12, 0,
3545  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3546  &_GEANT_GEOMETRY_STMED_STMIN_type };
3547 static KmParameter *_GEANT_GEOMETRY_STMED_parameters[] = {
3548  &_GEANT_GEOMETRY_STMED_NTMED, &_GEANT_GEOMETRY_STMED_NAME,
3549  &_GEANT_GEOMETRY_STMED_NMAT, &_GEANT_GEOMETRY_STMED_ISVOL,
3550  &_GEANT_GEOMETRY_STMED_IFIELD, &_GEANT_GEOMETRY_STMED_FIELDM,
3551  &_GEANT_GEOMETRY_STMED_TMAXFD, &_GEANT_GEOMETRY_STMED_STEMAX,
3552  &_GEANT_GEOMETRY_STMED_DEEMAX, &_GEANT_GEOMETRY_STMED_EPSIL,
3553  &_GEANT_GEOMETRY_STMED_STMIN };
3554 static char *_GEANT_GEOMETRY_STMED_guidance[] = {
3555  "      CALL GSTMED(ntmed,name,nmat,isvol,ifield,fieldm,tmaxfd,",
3556  "     +            stemax,deemax,epsil,stmin,0,0)",
3557  "IFIELD = 0 if no magnetic field; IFIELD = -1 if user decision in GUSWIM;",
3558  "IFIELD = 1 if tracking performed with GRKUTA; IFIELD = 2 if tracking",
3559  "performed with GHELIX; IFIELD = 3 if tracking performed with GHELX3." };
3560 static KmCommand _GEANT_GEOMETRY_STMED = { &_GEANT_GEOMETRY_PTMED,
3561  "/GEANT/GEOMETRY/STMED", "STMED", 0, 2, 11, 11,
3562  _GEANT_GEOMETRY_STMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3563  (pCharFunc*)0, 5, _GEANT_GEOMETRY_STMED_guidance, 0, (char**)0, 0, (char**)0,
3564  0, (char**)0, (char*)0, (int*)0 };
3565  
3566 static KmParInt    _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
3567  (char*)0, (char*)0, 0 };
3568 static KmParameter _GEANT_GEOMETRY_PROTM_NUMB = { "NUMB", 4, "Matrix ID",
3569  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3570  &_GEANT_GEOMETRY_PROTM_NUMB_type };
3571 static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
3572  &_GEANT_GEOMETRY_PROTM_NUMB };
3573 static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
3574  "Print matrixes' specifications." };
3575 static KmCommand _GEANT_GEOMETRY_PROTM = { &_GEANT_GEOMETRY_STMED,
3576  "/GEANT/GEOMETRY/PROTM", "PROTM", 0, 2, 1, 1,
3577  _GEANT_GEOMETRY_PROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3578  (pCharFunc*)0, 2, _GEANT_GEOMETRY_PROTM_guidance, 0, (char**)0, 0, (char**)0,
3579  0, (char**)0, (char*)0, (int*)0 };
3580  
3581 static KmParInt    _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
3582  (char*)0, (char*)0, 0 };
3583 static KmParameter _GEANT_GEOMETRY_SROTM_IROT = { "IROT", 4,
3584  "Rotation matrix number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3585  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SROTM_IROT_type };
3586 static KmParReal   _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
3587  "180.", 0 };
3588 static KmParameter _GEANT_GEOMETRY_SROTM_THETA1 = { "THETA1", 6,
3589  "Polar angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3590  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA1_type };
3591 static KmParReal   _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
3592  "360.", 0 };
3593 static KmParameter _GEANT_GEOMETRY_SROTM_PHI1 = { "PHI1", 4,
3594  "Azimuthal angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3595  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI1_type };
3596 static KmParReal   _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
3597  "180.", 0 };
3598 static KmParameter _GEANT_GEOMETRY_SROTM_THETA2 = { "THETA2", 6,
3599  "Polar angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3600  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA2_type };
3601 static KmParReal   _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
3602  "360.", 0 };
3603 static KmParameter _GEANT_GEOMETRY_SROTM_PHI2 = { "PHI2", 4,
3604  "Azimuthal angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0,
3605  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI2_type };
3606 static KmParReal   _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
3607  "180.", 0 };
3608 static KmParameter _GEANT_GEOMETRY_SROTM_THETA3 = { "THETA3", 6,
3609  "Polar angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
3610  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA3_type };
3611 static KmParReal   _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
3612  "360.", 0 };
3613 static KmParameter _GEANT_GEOMETRY_SROTM_PHI3 = { "PHI3", 4,
3614  "Azimuthal angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0,
3615  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI3_type };
3616 static KmParameter *_GEANT_GEOMETRY_SROTM_parameters[] = {
3617  &_GEANT_GEOMETRY_SROTM_IROT, &_GEANT_GEOMETRY_SROTM_THETA1,
3618  &_GEANT_GEOMETRY_SROTM_PHI1, &_GEANT_GEOMETRY_SROTM_THETA2,
3619  &_GEANT_GEOMETRY_SROTM_PHI2, &_GEANT_GEOMETRY_SROTM_THETA3,
3620  &_GEANT_GEOMETRY_SROTM_PHI3 };
3621 static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
3622  " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
3623  "It defines the rotation matrix number IROT." };
3624 static KmCommand _GEANT_GEOMETRY_SROTM = { &_GEANT_GEOMETRY_PROTM,
3625  "/GEANT/GEOMETRY/SROTM", "SROTM", 0, 2, 7, 7,
3626  _GEANT_GEOMETRY_SROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3627  (pCharFunc*)0, 2, _GEANT_GEOMETRY_SROTM_guidance, 0, (char**)0, 0, (char**)0,
3628  0, (char**)0, (char*)0, (int*)0 };
3629  
3630 static KmParInt    _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
3631  (char*)0, (char*)0, 0 };
3632 static KmParameter _GEANT_GEOMETRY_PVOLU_NUMB = { "NUMB", 4, "Volume ID",
3633  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3634  &_GEANT_GEOMETRY_PVOLU_NUMB_type };
3635 static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
3636  &_GEANT_GEOMETRY_PVOLU_NUMB };
3637 static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
3638  "Prints volumes' specifications." };
3639 static KmCommand _GEANT_GEOMETRY_PVOLU = { &_GEANT_GEOMETRY_SROTM,
3640  "/GEANT/GEOMETRY/PVOLU", "PVOLU", 0, 2, 1, 1,
3641  _GEANT_GEOMETRY_PVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3642  (pCharFunc*)0, 2, _GEANT_GEOMETRY_PVOLU_guidance, 0, (char**)0, 0, (char**)0,
3643  0, (char**)0, (char*)0, (int*)0 };
3644  
3645 static KmParameter _GEANT_GEOMETRY_SDVN_NAME = { "NAME", 4, "Volume name",
3646  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3647  KmTYPE_CHAR,  (void*)0 };
3648 static KmParameter _GEANT_GEOMETRY_SDVN_MOTHER = { "MOTHER", 6,
3649  "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3650  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3651 static KmParInt    _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
3652  (char*)0, (char*)0, 0 };
3653 static KmParameter _GEANT_GEOMETRY_SDVN_NDIV = { "NDIV", 4,
3654  "Number of divisions", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3655  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SDVN_NDIV_type };
3656 static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
3657  "3" };
3658 static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
3659  (char*)0, (char*)0, (char*)0, (char*)0 };
3660 static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
3661  _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
3662 static KmParameter _GEANT_GEOMETRY_SDVN_CAXIS = { "CAXIS", 5, "Axis value",
3663  (char*)0, (char*)0, 8, 6, _GEANT_GEOMETRY_SDVN_CAXIS_range, 6,
3664  _GEANT_GEOMETRY_SDVN_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
3665  &_GEANT_GEOMETRY_SDVN_CAXIS_type };
3666 static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
3667  &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
3668  &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
3669 static char *_GEANT_GEOMETRY_SDVN_guidance[] = {
3670  " CALL GSDVN(name,mother,ndiv,iaxis)",
3671  "X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.",
3672  "It divides a previously defined volume." };
3673 static KmCommand _GEANT_GEOMETRY_SDVN = { &_GEANT_GEOMETRY_PVOLU,
3674  "/GEANT/GEOMETRY/SDVN", "SDVN", 0, 2, 4, 4, _GEANT_GEOMETRY_SDVN_parameters,
3675  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
3676  _GEANT_GEOMETRY_SDVN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3677  (char*)0, (int*)0 };
3678  
3679 static KmParameter _GEANT_GEOMETRY_SPOS_NAME = { "NAME", 4, "Volume name",
3680  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3681  KmTYPE_CHAR,  (void*)0 };
3682 static KmParInt    _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
3683  (char*)0, (char*)0, 0 };
3684 static KmParameter _GEANT_GEOMETRY_SPOS_NUMBER = { "NUMBER", 6,
3685  "Copy number of the volume", (char*)0, (char*)0, 8, 0, (char**)0, 0,
3686  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SPOS_NUMBER_type };
3687 static KmParameter _GEANT_GEOMETRY_SPOS_MOTHER = { "MOTHER", 6,
3688  "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
3689  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3690 static KmParReal   _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
3691  (char*)0, (char*)0, 0 };
3692 static KmParameter _GEANT_GEOMETRY_SPOS_X0 = { "X0", 2,
3693  "X coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
3694  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3695  &_GEANT_GEOMETRY_SPOS_X0_type };
3696 static KmParReal   _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
3697  (char*)0, (char*)0, 0 };
3698 static KmParameter _GEANT_GEOMETRY_SPOS_Y0 = { "Y0", 2,
3699  "Y coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
3700  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3701  &_GEANT_GEOMETRY_SPOS_Y0_type };
3702 static KmParReal   _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
3703  (char*)0, (char*)0, 0 };
3704 static KmParameter _GEANT_GEOMETRY_SPOS_Z0 = { "Z0", 2,
3705  "Z coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
3706  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3707  &_GEANT_GEOMETRY_SPOS_Z0_type };
3708 static KmParInt    _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
3709  (char*)0, (char*)0, 0 };
3710 static KmParameter _GEANT_GEOMETRY_SPOS_IROT = { "IROT", 4,
3711  "Rotation matrix number w.r.t. mother ref. sys.", (char*)0, (char*)0, 8, 0,
3712  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
3713  &_GEANT_GEOMETRY_SPOS_IROT_type };
3714 static KmParameter _GEANT_GEOMETRY_SPOS_ONLY = { "ONLY", 4, "ONLY/MANY flag",
3715  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3716  KmTYPE_CHAR,  (void*)0 };
3717 static KmParameter *_GEANT_GEOMETRY_SPOS_parameters[] = {
3718  &_GEANT_GEOMETRY_SPOS_NAME, &_GEANT_GEOMETRY_SPOS_NUMBER,
3719  &_GEANT_GEOMETRY_SPOS_MOTHER, &_GEANT_GEOMETRY_SPOS_X0,
3720  &_GEANT_GEOMETRY_SPOS_Y0, &_GEANT_GEOMETRY_SPOS_Z0,
3721  &_GEANT_GEOMETRY_SPOS_IROT, &_GEANT_GEOMETRY_SPOS_ONLY };
3722 static char *_GEANT_GEOMETRY_SPOS_guidance[] = {
3723  " CALL GSPOS(name,number,mother,x0,y0,z0,irot,only)",
3724  "It positions a previously defined volume in the mother." };
3725 static KmCommand _GEANT_GEOMETRY_SPOS = { &_GEANT_GEOMETRY_SDVN,
3726  "/GEANT/GEOMETRY/SPOS", "SPOS", 0, 2, 8, 8, _GEANT_GEOMETRY_SPOS_parameters,
3727  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
3728  _GEANT_GEOMETRY_SPOS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3729  (char*)0, (int*)0 };
3730  
3731 static KmParameter _GEANT_GEOMETRY_SVOLU_NAME = { "NAME", 4, "Volume name",
3732  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3733  KmTYPE_CHAR,  (void*)0 };
3734 static KmParameter _GEANT_GEOMETRY_SVOLU_SHAPE = { "SHAPE", 5, "Volume type",
3735  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3736  KmTYPE_CHAR,  (void*)0 };
3737 static KmParInt    _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
3738  (char*)0, (char*)0, 0 };
3739 static KmParameter _GEANT_GEOMETRY_SVOLU_NUMED = { "NUMED", 5,
3740  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3741  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NUMED_type };
3742 static KmParInt    _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
3743  (char*)0, (char*)0, 0 };
3744 static KmParameter _GEANT_GEOMETRY_SVOLU_NPAR = { "NPAR", 4,
3745  "Number of shape parameters", (char*)0, (char*)0, 8, 0, (char**)0, 0,
3746  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NPAR_type };
3747 static KmParameter _GEANT_GEOMETRY_SVOLU_PAR = { "PAR", 3,
3748  "Vector containing shape parameters", (char*)0, (char*)0, 20, 0, (char**)0,
3749  0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
3750 static KmParameter *_GEANT_GEOMETRY_SVOLU_parameters[] = {
3751  &_GEANT_GEOMETRY_SVOLU_NAME, &_GEANT_GEOMETRY_SVOLU_SHAPE,
3752  &_GEANT_GEOMETRY_SVOLU_NUMED, &_GEANT_GEOMETRY_SVOLU_NPAR,
3753  &_GEANT_GEOMETRY_SVOLU_PAR };
3754 static char *_GEANT_GEOMETRY_SVOLU_guidance[] = {
3755  " CALL GSVOLU(name,shape,numed,par,npar,ivolu)",
3756  "where par is a KUIP vector.",
3757  "It creates a new volume in the JVOLUM data structure." };
3758 static KmCommand _GEANT_GEOMETRY_SVOLU = { &_GEANT_GEOMETRY_SPOS,
3759  "/GEANT/GEOMETRY/SVOLU", "SVOLU", 0, 2, 5, 5,
3760  _GEANT_GEOMETRY_SVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
3761  (pCharFunc*)0, 3, _GEANT_GEOMETRY_SVOLU_guidance, 0, (char**)0, 0, (char**)0,
3762  0, (char**)0, (char*)0, (int*)0 };
3763  
3764 static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
3765 static KmParInt    _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
3766  (char*)0, (char*)0, 0 };
3767 static KmParameter _GEANT_GEOMETRY_OPTI_IOPTI = { "IOPTI", 5,
3768  "GSORD optimisation level", "0", (char*)0, 8, 2,
3769  _GEANT_GEOMETRY_OPTI_IOPTI_range, 2, _GEANT_GEOMETRY_OPTI_IOPTI_range,
3770  (KmParFlag)2, KmTYPE_INT, &_GEANT_GEOMETRY_OPTI_IOPTI_type };
3771 static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
3772  &_GEANT_GEOMETRY_OPTI_IOPTI };
3773 static char *_GEANT_GEOMETRY_OPTI_guidance[] = {
3774  "This flag controls the tracking optimisation performed via the",
3775  "GSORD routine:", "    1 no optimisation at all; GSORD calls disabled;",
3776  "    0 no optimisation; only user calls to GSORD kept;",
3777  "    1 all non-GSORDered volumes are ordered along the best axis;",
3778  "    2 all volumes are ordered along the best axis." };
3779 static KmCommand _GEANT_GEOMETRY_OPTI = { &_GEANT_GEOMETRY_SVOLU,
3780  "/GEANT/GEOMETRY/OPTI", "OPTI", 0, 2, 1, 1, _GEANT_GEOMETRY_OPTI_parameters,
3781  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
3782  _GEANT_GEOMETRY_OPTI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
3783  (char*)0, (int*)0 };
3784  
3785 static KmParameter _GEANT_CREATE_SPARA_NAME = { "NAME", 4, "Volume name",
3786  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3787  KmTYPE_CHAR,  (void*)0 };
3788 static KmParInt    _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
3789  (char*)0, (char*)0, 0 };
3790 static KmParameter _GEANT_CREATE_SPARA_NUMED = { "NUMED", 5,
3791  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3792  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SPARA_NUMED_type };
3793 static KmParReal   _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
3794  (char*)0, (char*)0, 0 };
3795 static KmParameter _GEANT_CREATE_SPARA_HALFX = { "HALFX", 5, "Half X length",
3796  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3797  KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFX_type };
3798 static KmParReal   _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
3799  (char*)0, (char*)0, 0 };
3800 static KmParameter _GEANT_CREATE_SPARA_HALFY = { "HALFY", 5, "Half Y length",
3801  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3802  KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFY_type };
3803 static KmParReal   _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
3804  (char*)0, (char*)0, 0 };
3805 static KmParameter _GEANT_CREATE_SPARA_HALFZ = { "HALFZ", 5, "Half Z length",
3806  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3807  KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFZ_type };
3808 static KmParReal   _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
3809  "360.", 0 };
3810 static KmParameter _GEANT_CREATE_SPARA_AXIS = { "AXIS", 4,
3811  "Angle of Y mid-faces segment to Y axis", (char*)0, (char*)0, 12, 0,
3812  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3813  &_GEANT_CREATE_SPARA_AXIS_type };
3814 static KmParReal   _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
3815  "360.", 0 };
3816 static KmParameter _GEANT_CREATE_SPARA_PHI = { "PHI", 3,
3817  "PHI angle of Low Z mid-face to High Z mid-face segment", (char*)0, (char*)0,
3818  12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3819  &_GEANT_CREATE_SPARA_PHI_type };
3820 static KmParReal   _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
3821  "360.", 0 };
3822 static KmParameter _GEANT_CREATE_SPARA_THETA = { "THETA", 5,
3823  "THETA angle of mid-low-Z-face to mid-high-Z-face segment", (char*)0,
3824  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
3825  &_GEANT_CREATE_SPARA_THETA_type };
3826 static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
3827 static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
3828 static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
3829  _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
3830 static KmParameter _GEANT_CREATE_SPARA_YESNO = { "YESNO", 5, "GSPOSP option",
3831  "NO", (char*)0, 8, 2, _GEANT_CREATE_SPARA_YESNO_range, 2,
3832  _GEANT_CREATE_SPARA_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
3833  &_GEANT_CREATE_SPARA_YESNO_type };
3834 static KmParameter *_GEANT_CREATE_SPARA_parameters[] = {
3835  &_GEANT_CREATE_SPARA_NAME, &_GEANT_CREATE_SPARA_NUMED,
3836  &_GEANT_CREATE_SPARA_HALFX, &_GEANT_CREATE_SPARA_HALFY,
3837  &_GEANT_CREATE_SPARA_HALFZ, &_GEANT_CREATE_SPARA_AXIS,
3838  &_GEANT_CREATE_SPARA_PHI, &_GEANT_CREATE_SPARA_THETA,
3839  &_GEANT_CREATE_SPARA_YESNO };
3840 static KmCommand _GEANT_CREATE_SPARA = {  (KmCommand*)0,
3841  "/GEANT/CREATE/SPARA", "SPARA", 0, 2, 9, 8, _GEANT_CREATE_SPARA_parameters,
3842  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
3843  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3844  
3845 static KmParameter _GEANT_CREATE_SSPHE_NAME = { "NAME", 4, "Volume name",
3846  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3847  KmTYPE_CHAR,  (void*)0 };
3848 static KmParInt    _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
3849  (char*)0, (char*)0, 0 };
3850 static KmParameter _GEANT_CREATE_SSPHE_NUMED = { "NUMED", 5,
3851  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3852  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SSPHE_NUMED_type };
3853 static KmParReal   _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
3854  (char*)0, (char*)0, 0 };
3855 static KmParameter _GEANT_CREATE_SSPHE_INRAD = { "INRAD", 5, "Inside Radius",
3856  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3857  KmTYPE_REAL, &_GEANT_CREATE_SSPHE_INRAD_type };
3858 static KmParReal   _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
3859  (char*)0, (char*)0, 0 };
3860 static KmParameter _GEANT_CREATE_SSPHE_OUTRAD = { "OUTRAD", 6,
3861  "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3862  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_OUTRAD_type };
3863 static KmParReal   _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
3864  "360.", 0 };
3865 static KmParameter _GEANT_CREATE_SSPHE_SPHI = { "SPHI", 4,
3866  "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3867  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_SPHI_type };
3868 static KmParReal   _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
3869  "360.", 0 };
3870 static KmParameter _GEANT_CREATE_SSPHE_EPHI = { "EPHI", 4,
3871  "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3872  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_EPHI_type };
3873 static KmParReal   _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
3874  (char*)0, (char*)0, 0 };
3875 static KmParameter _GEANT_CREATE_SSPHE_STHETA = { "STHETA", 6,
3876  "Start of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3877  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_STHETA_type };
3878 static KmParReal   _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
3879  (char*)0, (char*)0, 0 };
3880 static KmParameter _GEANT_CREATE_SSPHE_ETHETA = { "ETHETA", 6,
3881  "End of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3882  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_ETHETA_type };
3883 static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
3884 static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
3885 static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
3886  _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
3887 static KmParameter _GEANT_CREATE_SSPHE_YESNO = { "YESNO", 5, "GSPOSP option",
3888  "NO", (char*)0, 8, 2, _GEANT_CREATE_SSPHE_YESNO_range, 2,
3889  _GEANT_CREATE_SSPHE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
3890  &_GEANT_CREATE_SSPHE_YESNO_type };
3891 static KmParameter *_GEANT_CREATE_SSPHE_parameters[] = {
3892  &_GEANT_CREATE_SSPHE_NAME, &_GEANT_CREATE_SSPHE_NUMED,
3893  &_GEANT_CREATE_SSPHE_INRAD, &_GEANT_CREATE_SSPHE_OUTRAD,
3894  &_GEANT_CREATE_SSPHE_SPHI, &_GEANT_CREATE_SSPHE_EPHI,
3895  &_GEANT_CREATE_SSPHE_STHETA, &_GEANT_CREATE_SSPHE_ETHETA,
3896  &_GEANT_CREATE_SSPHE_YESNO };
3897 static KmCommand _GEANT_CREATE_SSPHE = { &_GEANT_CREATE_SPARA,
3898  "/GEANT/CREATE/SSPHE", "SSPHE", 0, 2, 9, 8, _GEANT_CREATE_SSPHE_parameters,
3899  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
3900  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3901  
3902 static KmParameter _GEANT_CREATE_SCONS_NAME = { "NAME", 4, "Volume name",
3903  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3904  KmTYPE_CHAR,  (void*)0 };
3905 static KmParInt    _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
3906  (char*)0, (char*)0, 0 };
3907 static KmParameter _GEANT_CREATE_SCONS_NUMED = { "NUMED", 5,
3908  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3909  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONS_NUMED_type };
3910 static KmParReal   _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
3911  (char*)0, (char*)0, 0 };
3912 static KmParameter _GEANT_CREATE_SCONS_INRDW = { "INRDW", 5,
3913  "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3914  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRDW_type };
3915 static KmParReal   _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
3916  (char*)0, (char*)0, 0 };
3917 static KmParameter _GEANT_CREATE_SCONS_OUTRDW = { "OUTRDW", 6,
3918  "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3919  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRDW_type };
3920 static KmParReal   _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
3921  (char*)0, (char*)0, 0 };
3922 static KmParameter _GEANT_CREATE_SCONS_INRUP = { "INRUP", 5,
3923  "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3924  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRUP_type };
3925 static KmParReal   _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
3926  (char*)0, (char*)0, 0 };
3927 static KmParameter _GEANT_CREATE_SCONS_OUTRUP = { "OUTRUP", 6,
3928  "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3929  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRUP_type };
3930 static KmParReal   _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
3931  (char*)0, (char*)0, 0 };
3932 static KmParameter _GEANT_CREATE_SCONS_HALFZ = { "HALFZ", 5, "Half Z length",
3933  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3934  KmTYPE_REAL, &_GEANT_CREATE_SCONS_HALFZ_type };
3935 static KmParReal   _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
3936  "360.", 0 };
3937 static KmParameter _GEANT_CREATE_SCONS_SPHI = { "SPHI", 4,
3938  "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3939  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_SPHI_type };
3940 static KmParReal   _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
3941  "360.", 0 };
3942 static KmParameter _GEANT_CREATE_SCONS_EPHI = { "EPHI", 4,
3943  "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
3944  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_EPHI_type };
3945 static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
3946 static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
3947 static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
3948  _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
3949 static KmParameter _GEANT_CREATE_SCONS_YESNO = { "YESNO", 5, "GSPOSP option",
3950  "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONS_YESNO_range, 2,
3951  _GEANT_CREATE_SCONS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
3952  &_GEANT_CREATE_SCONS_YESNO_type };
3953 static KmParameter *_GEANT_CREATE_SCONS_parameters[] = {
3954  &_GEANT_CREATE_SCONS_NAME, &_GEANT_CREATE_SCONS_NUMED,
3955  &_GEANT_CREATE_SCONS_INRDW, &_GEANT_CREATE_SCONS_OUTRDW,
3956  &_GEANT_CREATE_SCONS_INRUP, &_GEANT_CREATE_SCONS_OUTRUP,
3957  &_GEANT_CREATE_SCONS_HALFZ, &_GEANT_CREATE_SCONS_SPHI,
3958  &_GEANT_CREATE_SCONS_EPHI, &_GEANT_CREATE_SCONS_YESNO };
3959 static KmCommand _GEANT_CREATE_SCONS = { &_GEANT_CREATE_SSPHE,
3960  "/GEANT/CREATE/SCONS", "SCONS", 0, 2, 10, 9, _GEANT_CREATE_SCONS_parameters,
3961  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
3962  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
3963  
3964 static KmParameter _GEANT_CREATE_SCONE_NAME = { "NAME", 4, "Volume name",
3965  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3966  KmTYPE_CHAR,  (void*)0 };
3967 static KmParInt    _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
3968  (char*)0, (char*)0, 0 };
3969 static KmParameter _GEANT_CREATE_SCONE_NUMED = { "NUMED", 5,
3970  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
3971  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONE_NUMED_type };
3972 static KmParReal   _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
3973  (char*)0, (char*)0, 0 };
3974 static KmParameter _GEANT_CREATE_SCONE_INRDW = { "INRDW", 5,
3975  "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3976  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRDW_type };
3977 static KmParReal   _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
3978  (char*)0, (char*)0, 0 };
3979 static KmParameter _GEANT_CREATE_SCONE_OUTRDW = { "OUTRDW", 6,
3980  "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3981  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRDW_type };
3982 static KmParReal   _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
3983  (char*)0, (char*)0, 0 };
3984 static KmParameter _GEANT_CREATE_SCONE_INRUP = { "INRUP", 5,
3985  "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3986  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRUP_type };
3987 static KmParReal   _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
3988  (char*)0, (char*)0, 0 };
3989 static KmParameter _GEANT_CREATE_SCONE_OUTRUP = { "OUTRUP", 6,
3990  "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
3991  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRUP_type };
3992 static KmParReal   _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
3993  (char*)0, (char*)0, 0 };
3994 static KmParameter _GEANT_CREATE_SCONE_HALFZ = { "HALFZ", 5, "Half Z length",
3995  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
3996  KmTYPE_REAL, &_GEANT_CREATE_SCONE_HALFZ_type };
3997 static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
3998 static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
3999 static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
4000  _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
4001 static KmParameter _GEANT_CREATE_SCONE_YESNO = { "YESNO", 5, "GSPOSP option",
4002  "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONE_YESNO_range, 2,
4003  _GEANT_CREATE_SCONE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4004  &_GEANT_CREATE_SCONE_YESNO_type };
4005 static KmParameter *_GEANT_CREATE_SCONE_parameters[] = {
4006  &_GEANT_CREATE_SCONE_NAME, &_GEANT_CREATE_SCONE_NUMED,
4007  &_GEANT_CREATE_SCONE_INRDW, &_GEANT_CREATE_SCONE_OUTRDW,
4008  &_GEANT_CREATE_SCONE_INRUP, &_GEANT_CREATE_SCONE_OUTRUP,
4009  &_GEANT_CREATE_SCONE_HALFZ, &_GEANT_CREATE_SCONE_YESNO };
4010 static KmCommand _GEANT_CREATE_SCONE = { &_GEANT_CREATE_SCONS,
4011  "/GEANT/CREATE/SCONE", "SCONE", 0, 2, 8, 7, _GEANT_CREATE_SCONE_parameters,
4012  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4013  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4014  
4015 static KmParameter _GEANT_CREATE_STUBS_NAME = { "NAME", 4, "Volume name",
4016  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4017  KmTYPE_CHAR,  (void*)0 };
4018 static KmParInt    _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
4019  (char*)0, (char*)0, 0 };
4020 static KmParameter _GEANT_CREATE_STUBS_NUMED = { "NUMED", 5,
4021  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4022  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBS_NUMED_type };
4023 static KmParReal   _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
4024  (char*)0, (char*)0, 0 };
4025 static KmParameter _GEANT_CREATE_STUBS_INRAD = { "INRAD", 5, "Inside Radius",
4026  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4027  KmTYPE_REAL, &_GEANT_CREATE_STUBS_INRAD_type };
4028 static KmParReal   _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
4029  (char*)0, (char*)0, 0 };
4030 static KmParameter _GEANT_CREATE_STUBS_OUTRAD = { "OUTRAD", 6,
4031  "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4032  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_OUTRAD_type };
4033 static KmParReal   _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
4034  (char*)0, (char*)0, 0 };
4035 static KmParameter _GEANT_CREATE_STUBS_HALFZ = { "HALFZ", 5, "Half Z length",
4036  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4037  KmTYPE_REAL, &_GEANT_CREATE_STUBS_HALFZ_type };
4038 static KmParReal   _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
4039  "360.", 0 };
4040 static KmParameter _GEANT_CREATE_STUBS_SPHI = { "SPHI", 4,
4041  "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4042  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_SPHI_type };
4043 static KmParReal   _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
4044  "360.", 0 };
4045 static KmParameter _GEANT_CREATE_STUBS_EPHI = { "EPHI", 4,
4046  "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4047  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_EPHI_type };
4048 static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
4049 static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
4050 static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
4051  _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
4052 static KmParameter _GEANT_CREATE_STUBS_YESNO = { "YESNO", 5, "GSPOSP option",
4053  "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBS_YESNO_range, 2,
4054  _GEANT_CREATE_STUBS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4055  &_GEANT_CREATE_STUBS_YESNO_type };
4056 static KmParameter *_GEANT_CREATE_STUBS_parameters[] = {
4057  &_GEANT_CREATE_STUBS_NAME, &_GEANT_CREATE_STUBS_NUMED,
4058  &_GEANT_CREATE_STUBS_INRAD, &_GEANT_CREATE_STUBS_OUTRAD,
4059  &_GEANT_CREATE_STUBS_HALFZ, &_GEANT_CREATE_STUBS_SPHI,
4060  &_GEANT_CREATE_STUBS_EPHI, &_GEANT_CREATE_STUBS_YESNO };
4061 static KmCommand _GEANT_CREATE_STUBS = { &_GEANT_CREATE_SCONE,
4062  "/GEANT/CREATE/STUBS", "STUBS", 0, 2, 8, 7, _GEANT_CREATE_STUBS_parameters,
4063  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4064  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4065  
4066 static KmParameter _GEANT_CREATE_STUBE_NAME = { "NAME", 4, "Volume name",
4067  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4068  KmTYPE_CHAR,  (void*)0 };
4069 static KmParInt    _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
4070  (char*)0, (char*)0, 0 };
4071 static KmParameter _GEANT_CREATE_STUBE_NUMED = { "NUMED", 5,
4072  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4073  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBE_NUMED_type };
4074 static KmParReal   _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
4075  (char*)0, (char*)0, 0 };
4076 static KmParameter _GEANT_CREATE_STUBE_INRAD = { "INRAD", 5, "Inside Radius",
4077  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4078  KmTYPE_REAL, &_GEANT_CREATE_STUBE_INRAD_type };
4079 static KmParReal   _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
4080  (char*)0, (char*)0, 0 };
4081 static KmParameter _GEANT_CREATE_STUBE_OUTRAD = { "OUTRAD", 6,
4082  "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4083  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBE_OUTRAD_type };
4084 static KmParReal   _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
4085  (char*)0, (char*)0, 0 };
4086 static KmParameter _GEANT_CREATE_STUBE_HALFZ = { "HALFZ", 5, "Half Z length",
4087  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4088  KmTYPE_REAL, &_GEANT_CREATE_STUBE_HALFZ_type };
4089 static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
4090 static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
4091 static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
4092  _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
4093 static KmParameter _GEANT_CREATE_STUBE_YESNO = { "YESNO", 5, "GSPOSP option",
4094  "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBE_YESNO_range, 2,
4095  _GEANT_CREATE_STUBE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4096  &_GEANT_CREATE_STUBE_YESNO_type };
4097 static KmParameter *_GEANT_CREATE_STUBE_parameters[] = {
4098  &_GEANT_CREATE_STUBE_NAME, &_GEANT_CREATE_STUBE_NUMED,
4099  &_GEANT_CREATE_STUBE_INRAD, &_GEANT_CREATE_STUBE_OUTRAD,
4100  &_GEANT_CREATE_STUBE_HALFZ, &_GEANT_CREATE_STUBE_YESNO };
4101 static KmCommand _GEANT_CREATE_STUBE = { &_GEANT_CREATE_STUBS,
4102  "/GEANT/CREATE/STUBE", "STUBE", 0, 2, 6, 5, _GEANT_CREATE_STUBE_parameters,
4103  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4104  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4105  
4106 static KmParameter _GEANT_CREATE_STRD2_NAME = { "NAME", 4, "Volume name",
4107  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4108  KmTYPE_CHAR,  (void*)0 };
4109 static KmParInt    _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
4110  (char*)0, (char*)0, 0 };
4111 static KmParameter _GEANT_CREATE_STRD2_NUMED = { "NUMED", 5,
4112  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4113  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD2_NUMED_type };
4114 static KmParReal   _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
4115  (char*)0, (char*)0, 0 };
4116 static KmParameter _GEANT_CREATE_STRD2_HLFDWX = { "HLFDWX", 6,
4117  "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4118  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWX_type };
4119 static KmParReal   _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
4120  (char*)0, (char*)0, 0 };
4121 static KmParameter _GEANT_CREATE_STRD2_HLFUPX = { "HLFUPX", 6,
4122  "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4123  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPX_type };
4124 static KmParReal   _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
4125  (char*)0, (char*)0, 0 };
4126 static KmParameter _GEANT_CREATE_STRD2_HLFDWY = { "HLFDWY", 6,
4127  "Half Y length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4128  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWY_type };
4129 static KmParReal   _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
4130  (char*)0, (char*)0, 0 };
4131 static KmParameter _GEANT_CREATE_STRD2_HLFUPY = { "HLFUPY", 6,
4132  "Half Y length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4133  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPY_type };
4134 static KmParReal   _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
4135  (char*)0, (char*)0, 0 };
4136 static KmParameter _GEANT_CREATE_STRD2_HALFZ = { "HALFZ", 5, "Half Z length",
4137  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4138  KmTYPE_REAL, &_GEANT_CREATE_STRD2_HALFZ_type };
4139 static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
4140 static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
4141 static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
4142  _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
4143 static KmParameter _GEANT_CREATE_STRD2_YESNO = { "YESNO", 5, "GSPOSP option",
4144  "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD2_YESNO_range, 2,
4145  _GEANT_CREATE_STRD2_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4146  &_GEANT_CREATE_STRD2_YESNO_type };
4147 static KmParameter *_GEANT_CREATE_STRD2_parameters[] = {
4148  &_GEANT_CREATE_STRD2_NAME, &_GEANT_CREATE_STRD2_NUMED,
4149  &_GEANT_CREATE_STRD2_HLFDWX, &_GEANT_CREATE_STRD2_HLFUPX,
4150  &_GEANT_CREATE_STRD2_HLFDWY, &_GEANT_CREATE_STRD2_HLFUPY,
4151  &_GEANT_CREATE_STRD2_HALFZ, &_GEANT_CREATE_STRD2_YESNO };
4152 static KmCommand _GEANT_CREATE_STRD2 = { &_GEANT_CREATE_STUBE,
4153  "/GEANT/CREATE/STRD2", "STRD2", 0, 2, 8, 7, _GEANT_CREATE_STRD2_parameters,
4154  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4155  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4156  
4157 static KmParameter _GEANT_CREATE_STRD1_NAME = { "NAME", 4, "Volume name",
4158  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4159  KmTYPE_CHAR,  (void*)0 };
4160 static KmParInt    _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
4161  (char*)0, (char*)0, 0 };
4162 static KmParameter _GEANT_CREATE_STRD1_NUMED = { "NUMED", 5,
4163  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4164  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD1_NUMED_type };
4165 static KmParReal   _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
4166  (char*)0, (char*)0, 0 };
4167 static KmParameter _GEANT_CREATE_STRD1_HLFDWX = { "HLFDWX", 6,
4168  "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4169  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFDWX_type };
4170 static KmParReal   _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
4171  (char*)0, (char*)0, 0 };
4172 static KmParameter _GEANT_CREATE_STRD1_HLFUPX = { "HLFUPX", 6,
4173  "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4174  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFUPX_type };
4175 static KmParReal   _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
4176  (char*)0, (char*)0, 0 };
4177 static KmParameter _GEANT_CREATE_STRD1_HALFY = { "HALFY", 5, "Half Y length",
4178  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4179  KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFY_type };
4180 static KmParReal   _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
4181  (char*)0, (char*)0, 0 };
4182 static KmParameter _GEANT_CREATE_STRD1_HALFZ = { "HALFZ", 5, "Half Z length",
4183  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4184  KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFZ_type };
4185 static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
4186 static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
4187 static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
4188  _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
4189 static KmParameter _GEANT_CREATE_STRD1_YESNO = { "YESNO", 5, "GSPOSP option",
4190  "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD1_YESNO_range, 2,
4191  _GEANT_CREATE_STRD1_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4192  &_GEANT_CREATE_STRD1_YESNO_type };
4193 static KmParameter *_GEANT_CREATE_STRD1_parameters[] = {
4194  &_GEANT_CREATE_STRD1_NAME, &_GEANT_CREATE_STRD1_NUMED,
4195  &_GEANT_CREATE_STRD1_HLFDWX, &_GEANT_CREATE_STRD1_HLFUPX,
4196  &_GEANT_CREATE_STRD1_HALFY, &_GEANT_CREATE_STRD1_HALFZ,
4197  &_GEANT_CREATE_STRD1_YESNO };
4198 static KmCommand _GEANT_CREATE_STRD1 = { &_GEANT_CREATE_STRD2,
4199  "/GEANT/CREATE/STRD1", "STRD1", 0, 2, 7, 6, _GEANT_CREATE_STRD1_parameters,
4200  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4201  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4202  
4203 static KmParameter _GEANT_CREATE_SBOX_NAME = { "NAME", 4, "Volume name",
4204  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4205  KmTYPE_CHAR,  (void*)0 };
4206 static KmParInt    _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
4207  (char*)0, (char*)0, 0 };
4208 static KmParameter _GEANT_CREATE_SBOX_NUMED = { "NUMED", 5,
4209  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4210  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SBOX_NUMED_type };
4211 static KmParReal   _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
4212  (char*)0, (char*)0, 0 };
4213 static KmParameter _GEANT_CREATE_SBOX_HALFX = { "HALFX", 5, "Half X length",
4214  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4215  KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFX_type };
4216 static KmParReal   _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
4217  (char*)0, (char*)0, 0 };
4218 static KmParameter _GEANT_CREATE_SBOX_HALFY = { "HALFY", 5, "Half Y length",
4219  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4220  KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFY_type };
4221 static KmParReal   _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
4222  (char*)0, (char*)0, 0 };
4223 static KmParameter _GEANT_CREATE_SBOX_HALFZ = { "HALFZ", 5, "Half Z length",
4224  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4225  KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFZ_type };
4226 static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
4227 static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
4228 static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
4229  _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
4230 static KmParameter _GEANT_CREATE_SBOX_YESNO = { "YESNO", 5, "GSPOSP option",
4231  "NO", (char*)0, 8, 2, _GEANT_CREATE_SBOX_YESNO_range, 2,
4232  _GEANT_CREATE_SBOX_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
4233  &_GEANT_CREATE_SBOX_YESNO_type };
4234 static KmParameter *_GEANT_CREATE_SBOX_parameters[] = {
4235  &_GEANT_CREATE_SBOX_NAME, &_GEANT_CREATE_SBOX_NUMED,
4236  &_GEANT_CREATE_SBOX_HALFX, &_GEANT_CREATE_SBOX_HALFY,
4237  &_GEANT_CREATE_SBOX_HALFZ, &_GEANT_CREATE_SBOX_YESNO };
4238 static KmCommand _GEANT_CREATE_SBOX = { &_GEANT_CREATE_STRD1,
4239  "/GEANT/CREATE/SBOX", "SBOX", 0, 2, 6, 5, _GEANT_CREATE_SBOX_parameters, 0,
4240  0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
4241  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4242  
4243 static char *_GEANT_CREATE_guidance[] = {
4244  "It creates volumes of the given shape interactively.",
4245  "CALL GSVOLU(name,shape,numed,par,npar,ivolu)", "where par is a KUIP vector"
4246  };
4247 static KmMenu _GEANT_CREATE = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/CREATE",
4248  "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance, 0, (char**)0, 0,
4249  (char**)0 };
4250  
4251 static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
4252 static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE,  (KmMenu*)0,
4253  "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
4254  _GEANT_GEOMETRY_guidance, 0, (char**)0, 0, (char**)0 };
4255  
4256 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
4257  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
4258  
4259   klnkmenu( &_GEANT, 950303 );
4260 }
4261  
4262  
4263 #ifdef F77_LCASE
4264 #  define gkcont_ gkcont
4265 #  define gxcont_ gxcont
4266 #endif
4267  
4268 #ifdef F77_UCASE
4269 #  define gkcont_ GKCONT
4270 #  define gxcont_ GXCONT
4271 #endif
4272  
4273 #ifdef IBM370
4274 #  pragma linkage(GKCONT,FORTRAN)
4275 #  pragma linkage(GXCONT,FORTRAN)
4276 #endif
4277  
4278 extern void gkcont_();
4279 extern void gxcont_();
4280  
4281 void gkcont_()
4282 {
4283  
4284 static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
4285 static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
4286 static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
4287  _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
4288 static KmParameter _GEANT_CONTROL_DEBUG_IDEB = { "IDEB", 4, "Debug option",
4289  "ON", (char*)0, 8, 2, _GEANT_CONTROL_DEBUG_IDEB_range, 2,
4290  _GEANT_CONTROL_DEBUG_IDEB_range, (KmParFlag)0, KmTYPE_OPTION,
4291  &_GEANT_CONTROL_DEBUG_IDEB_type };
4292 static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
4293  &_GEANT_CONTROL_DEBUG_IDEB };
4294 static char *_GEANT_CONTROL_DEBUG_guidance[] = { "If ideb='ON  ' then :",
4295  " idebug=1, idemin=1, idemax=1000000, itime=1", "else :",
4296  " idebug=0, idemin=0, idemax=0" };
4297 static KmCommand _GEANT_CONTROL_DEBUG = {  (KmCommand*)0,
4298  "/GEANT/CONTROL/DEBUG", "DEBUG", 0, 2, 1, 0, _GEANT_CONTROL_DEBUG_parameters,
4299  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
4300  _GEANT_CONTROL_DEBUG_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4301  (char*)0, (int*)0 };
4302  
4303 static KmParInt    _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
4304  (char*)0, (char*)0, 0 };
4305 static KmParameter _GEANT_CONTROL_PRKINE_NUMB = { "NUMB", 4, "Track number",
4306  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4307  &_GEANT_CONTROL_PRKINE_NUMB_type };
4308 static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
4309  &_GEANT_CONTROL_PRKINE_NUMB };
4310 static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
4311 static KmCommand _GEANT_CONTROL_PRKINE = { &_GEANT_CONTROL_DEBUG,
4312  "/GEANT/CONTROL/PRKINE", "PRKINE", 0, 2, 1, 1,
4313  _GEANT_CONTROL_PRKINE_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4314  (pCharFunc*)0, 1, _GEANT_CONTROL_PRKINE_guidance, 0, (char**)0, 0, (char**)0,
4315  0, (char**)0, (char*)0, (int*)0 };
4316  
4317 static KmParInt    _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
4318  (char*)0, (char*)0, 0 };
4319 static KmParameter _GEANT_CONTROL_PPART_NUMB = { "NUMB", 4, "Particle number",
4320  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4321  &_GEANT_CONTROL_PPART_NUMB_type };
4322 static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
4323  &_GEANT_CONTROL_PPART_NUMB };
4324 static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
4325 static KmCommand _GEANT_CONTROL_PPART = { &_GEANT_CONTROL_PRKINE,
4326  "/GEANT/CONTROL/PPART", "PPART", 0, 2, 1, 1, _GEANT_CONTROL_PPART_parameters,
4327  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4328  _GEANT_CONTROL_PPART_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4329  (char*)0, (int*)0 };
4330  
4331 static KmParInt    _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
4332  (char*)0, (char*)0, 0 };
4333 static KmParameter _GEANT_CONTROL_SPART_IPART = { "IPART", 5,
4334  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4335  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SPART_IPART_type };
4336 static KmParameter _GEANT_CONTROL_SPART_NAPART = { "NAPART", 6,
4337  "Particle name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4338  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
4339 static KmParInt    _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
4340  (char*)0, (char*)0, 0 };
4341 static KmParameter _GEANT_CONTROL_SPART_ITRTYP = { "ITRTYP", 6, " ", (char*)0,
4342  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4343  &_GEANT_CONTROL_SPART_ITRTYP_type };
4344 static KmParReal   _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
4345  (char*)0, (char*)0, 0 };
4346 static KmParameter _GEANT_CONTROL_SPART_AMASS = { "AMASS", 5, "Mass",
4347  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4348  KmTYPE_REAL, &_GEANT_CONTROL_SPART_AMASS_type };
4349 static KmParReal   _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
4350  (char*)0, (char*)0, 0 };
4351 static KmParameter _GEANT_CONTROL_SPART_CHARGE = { "CHARGE", 6, "Charge",
4352  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4353  KmTYPE_REAL, &_GEANT_CONTROL_SPART_CHARGE_type };
4354 static KmParReal   _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
4355  (char*)0, (char*)0, 0 };
4356 static KmParameter _GEANT_CONTROL_SPART_TLIFE = { "TLIFE", 5, "Lifetime",
4357  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4358  KmTYPE_REAL, &_GEANT_CONTROL_SPART_TLIFE_type };
4359 static KmParReal   _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
4360  (char*)0, (char*)0, 0 };
4361 static KmParameter _GEANT_CONTROL_SPART_UBUF = { "UBUF", 4, " ", (char*)0,
4362  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4363  &_GEANT_CONTROL_SPART_UBUF_type };
4364 static KmParInt    _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
4365  (char*)0, (char*)0, 0 };
4366 static KmParameter _GEANT_CONTROL_SPART_NWBUF = { "NWBUF", 5, " ", (char*)0,
4367  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4368  &_GEANT_CONTROL_SPART_NWBUF_type };
4369 static KmParReal   _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
4370  (char*)0, (char*)0, 0 };
4371 static KmParameter _GEANT_CONTROL_SPART_BRATIO = { "BRATIO", 6,
4372  "Branching ratios", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4373  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SPART_BRATIO_type };
4374 static KmParInt    _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
4375  (char*)0, (char*)0, 0 };
4376 static KmParameter _GEANT_CONTROL_SPART_MODE = { "MODE", 4, "Decay mode",
4377  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4378  &_GEANT_CONTROL_SPART_MODE_type };
4379 static KmParameter *_GEANT_CONTROL_SPART_parameters[] = {
4380  &_GEANT_CONTROL_SPART_IPART, &_GEANT_CONTROL_SPART_NAPART,
4381  &_GEANT_CONTROL_SPART_ITRTYP, &_GEANT_CONTROL_SPART_AMASS,
4382  &_GEANT_CONTROL_SPART_CHARGE, &_GEANT_CONTROL_SPART_TLIFE,
4383  &_GEANT_CONTROL_SPART_UBUF, &_GEANT_CONTROL_SPART_NWBUF,
4384  &_GEANT_CONTROL_SPART_BRATIO, &_GEANT_CONTROL_SPART_MODE };
4385 static char *_GEANT_CONTROL_SPART_guidance[] = {
4386  "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
4387  "CALL GSDK(ipart,bratio,mode)" };
4388 static KmCommand _GEANT_CONTROL_SPART = { &_GEANT_CONTROL_PPART,
4389  "/GEANT/CONTROL/SPART", "SPART", 0, 2, 10, 10,
4390  _GEANT_CONTROL_SPART_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4391  (pCharFunc*)0, 2, _GEANT_CONTROL_SPART_guidance, 0, (char**)0, 0, (char**)0,
4392  0, (char**)0, (char*)0, (int*)0 };
4393  
4394 static KmParInt    _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
4395  (char*)0, (char*)0, 0 };
4396 static KmParameter _GEANT_CONTROL_STPAR_ITMED = { "ITMED", 5, "Medium number",
4397  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4398  &_GEANT_CONTROL_STPAR_ITMED_type };
4399 static KmParameter _GEANT_CONTROL_STPAR_CHPAR = { "CHPAR", 5,
4400  "Cut or mechanism", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4401  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
4402 static KmParReal   _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
4403  (char*)0, (char*)0, 0 };
4404 static KmParameter _GEANT_CONTROL_STPAR_PARVAL = { "PARVAL", 6, "Value",
4405  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4406  KmTYPE_REAL, &_GEANT_CONTROL_STPAR_PARVAL_type };
4407 static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
4408  &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
4409  &_GEANT_CONTROL_STPAR_PARVAL };
4410 static char *_GEANT_CONTROL_STPAR_guidance[] = {
4411  "CALL GSTPAR(itmed,chpar,parval)" };
4412 static KmCommand _GEANT_CONTROL_STPAR = { &_GEANT_CONTROL_SPART,
4413  "/GEANT/CONTROL/STPAR", "STPAR", 0, 2, 3, 3, _GEANT_CONTROL_STPAR_parameters,
4414  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4415  _GEANT_CONTROL_STPAR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4416  (char*)0, (int*)0 };
4417  
4418 static KmParInt    _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
4419  (char*)0, (char*)0, 0 };
4420 static KmParameter _GEANT_CONTROL_DRMAT_IMATE = { "IMATE", 5,
4421  "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4422  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IMATE_type };
4423 static KmParInt    _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
4424  (char*)0, (char*)0, 0 };
4425 static KmParameter _GEANT_CONTROL_DRMAT_IPART = { "IPART", 5,
4426  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4427  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IPART_type };
4428 static KmParameter _GEANT_CONTROL_DRMAT_MECAN = { "MECAN", 5,
4429  "List of mechanism", "ALL", (char*)0, 20, 0, (char**)0, 0, (char**)0,
4430  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
4431 static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
4432  &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
4433  &_GEANT_CONTROL_DRMAT_MECAN };
4434 static char *_GEANT_CONTROL_DRMAT_guidance[] = {
4435  "CALL GDRMAT(imate,ipart,mecan,nmec)",
4436  "If MECAN = 'ALL' all the mechanisms are plotted. If the material number",
4437  "is negative, the cross sections relative to material ABS(IMATE) will",
4438  "be plotted in barns rather than in 1/cm.",
4439  "Note that it is not possible to plot anything if GSTMED has not been\
4440  called", "for the material number IMATE." };
4441 static KmCommand _GEANT_CONTROL_DRMAT = { &_GEANT_CONTROL_STPAR,
4442  "/GEANT/CONTROL/DRMAT", "DRMAT", 0, 2, 3, 2, _GEANT_CONTROL_DRMAT_parameters,
4443  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
4444  _GEANT_CONTROL_DRMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4445  (char*)0, (int*)0 };
4446  
4447 static KmParInt    _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
4448  (char*)0, (char*)0, 0 };
4449 static KmParameter _GEANT_CONTROL_PLMAT_IMATE = { "IMATE", 5,
4450  "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4451  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IMATE_type };
4452 static KmParInt    _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
4453  (char*)0, (char*)0, 0 };
4454 static KmParameter _GEANT_CONTROL_PLMAT_IPART = { "IPART", 5,
4455  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4456  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IPART_type };
4457 static KmParameter _GEANT_CONTROL_PLMAT_MECAN = { "MECAN", 5, "Mechanism",
4458  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4459  KmTYPE_CHAR,  (void*)0 };
4460 static KmParInt    _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
4461  (char*)0, (char*)0, 0 };
4462 static KmParameter _GEANT_CONTROL_PLMAT_IDM = { "IDM", 3, "ID mode option",
4463  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4464  &_GEANT_CONTROL_PLMAT_IDM_type };
4465 static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
4466  &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
4467  &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
4468 static char *_GEANT_CONTROL_PLMAT_guidance[] = {
4469  "CALL GPLMAT(imate,ipart,mecan,nekbin,elow,idm)",
4470  " IDM convention for histogramming mode :",
4471  " IDM.gt.0  fill, print,   keep   histogram(s)",
4472  " IDM.eq.0  fill, print,   delete histogram(s)",
4473  " IDM.lt.0  fill, noprint, keep   histogram(s)",
4474  "If MECAN = 'ALL' all the mechanisms are histogrammed. If the material\
4475  number",
4476  "is negative, the cross sections relative to material ABS(IMATE) will",
4477  "be histogrammed in barns rather than in 1/cm." };
4478 static KmCommand _GEANT_CONTROL_PLMAT = { &_GEANT_CONTROL_DRMAT,
4479  "/GEANT/CONTROL/PLMAT", "PLMAT", 0, 2, 4, 3, _GEANT_CONTROL_PLMAT_parameters,
4480  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
4481  _GEANT_CONTROL_PLMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4482  (char*)0, (int*)0 };
4483  
4484 static KmParInt    _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
4485  (char*)0, (char*)0, 0 };
4486 static KmParameter _GEANT_CONTROL_PRMAT_IMATE = { "IMATE", 5,
4487  "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4488  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IMATE_type };
4489 static KmParInt    _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
4490  (char*)0, (char*)0, 0 };
4491 static KmParameter _GEANT_CONTROL_PRMAT_IPART = { "IPART", 5,
4492  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4493  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IPART_type };
4494 static KmParameter _GEANT_CONTROL_PRMAT_MECAN = { "MECAN", 5, "Mechanism",
4495  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4496  KmTYPE_CHAR,  (void*)0 };
4497 static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
4498  &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
4499  &_GEANT_CONTROL_PRMAT_MECAN };
4500 static char *_GEANT_CONTROL_PRMAT_guidance[] = {
4501  " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
4502 static KmCommand _GEANT_CONTROL_PRMAT = { &_GEANT_CONTROL_PLMAT,
4503  "/GEANT/CONTROL/PRMAT", "PRMAT", 0, 2, 3, 3, _GEANT_CONTROL_PRMAT_parameters,
4504  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4505  _GEANT_CONTROL_PRMAT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4506  (char*)0, (int*)0 };
4507  
4508 static KmParInt    _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
4509  (char*)0, (char*)0, 0 };
4510 static KmParameter _GEANT_CONTROL_PMATE_NUMB = { "NUMB", 4, "Material number",
4511  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4512  &_GEANT_CONTROL_PMATE_NUMB_type };
4513 static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
4514  &_GEANT_CONTROL_PMATE_NUMB };
4515 static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
4516 static KmCommand _GEANT_CONTROL_PMATE = { &_GEANT_CONTROL_PRMAT,
4517  "/GEANT/CONTROL/PMATE", "PMATE", 0, 2, 1, 1, _GEANT_CONTROL_PMATE_parameters,
4518  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4519  _GEANT_CONTROL_PMATE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4520  (char*)0, (int*)0 };
4521  
4522 static KmParInt    _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
4523  (char*)0, (char*)0, 0 };
4524 static KmParameter _GEANT_CONTROL_SMIXT_IMAT = { "IMAT", 4, "Material number",
4525  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4526  &_GEANT_CONTROL_SMIXT_IMAT_type };
4527 static KmParameter _GEANT_CONTROL_SMIXT_NAMATE = { "NAMATE", 6,
4528  "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4529  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
4530 static KmParReal   _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
4531  (char*)0, (char*)0, 0 };
4532 static KmParameter _GEANT_CONTROL_SMIXT_A = { "A", 1, "Atomic weight",
4533  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4534  KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_A_type };
4535 static KmParReal   _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
4536  (char*)0, (char*)0, 0 };
4537 static KmParameter _GEANT_CONTROL_SMIXT_Z = { "Z", 1, "Atomic number",
4538  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4539  KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_Z_type };
4540 static KmParReal   _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
4541  (char*)0, (char*)0, 0 };
4542 static KmParameter _GEANT_CONTROL_SMIXT_DENS = { "DENS", 4, "Density",
4543  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4544  KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_DENS_type };
4545 static KmParInt    _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
4546  (char*)0, (char*)0, 0 };
4547 static KmParameter _GEANT_CONTROL_SMIXT_NLMAT = { "NLMAT", 5, "Flag for WMAT",
4548  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4549  &_GEANT_CONTROL_SMIXT_NLMAT_type };
4550 static KmParReal   _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
4551  (char*)0, (char*)0, 0 };
4552 static KmParameter _GEANT_CONTROL_SMIXT_WMAT = { "WMAT", 4,
4553  "Relative weights or n. of atoms in molecule", (char*)0, (char*)0, 12, 0,
4554  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4555  &_GEANT_CONTROL_SMIXT_WMAT_type };
4556 static KmParameter *_GEANT_CONTROL_SMIXT_parameters[] = {
4557  &_GEANT_CONTROL_SMIXT_IMAT, &_GEANT_CONTROL_SMIXT_NAMATE,
4558  &_GEANT_CONTROL_SMIXT_A, &_GEANT_CONTROL_SMIXT_Z, &_GEANT_CONTROL_SMIXT_DENS,
4559  &_GEANT_CONTROL_SMIXT_NLMAT, &_GEANT_CONTROL_SMIXT_WMAT };
4560 static char *_GEANT_CONTROL_SMIXT_guidance[] = {
4561  " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
4562 static KmCommand _GEANT_CONTROL_SMIXT = { &_GEANT_CONTROL_PMATE,
4563  "/GEANT/CONTROL/SMIXT", "SMIXT", 0, 2, 7, 7, _GEANT_CONTROL_SMIXT_parameters,
4564  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4565  _GEANT_CONTROL_SMIXT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4566  (char*)0, (int*)0 };
4567  
4568 static KmParInt    _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
4569  (char*)0, (char*)0, 0 };
4570 static KmParameter _GEANT_CONTROL_SMATE_IMAT = { "IMAT", 4, "Material number",
4571  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4572  &_GEANT_CONTROL_SMATE_IMAT_type };
4573 static KmParameter _GEANT_CONTROL_SMATE_NAMATE = { "NAMATE", 6,
4574  "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
4575  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
4576 static KmParReal   _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
4577  (char*)0, (char*)0, 0 };
4578 static KmParameter _GEANT_CONTROL_SMATE_A = { "A", 1, "Atomic weight",
4579  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4580  KmTYPE_REAL, &_GEANT_CONTROL_SMATE_A_type };
4581 static KmParReal   _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
4582  (char*)0, (char*)0, 0 };
4583 static KmParameter _GEANT_CONTROL_SMATE_Z = { "Z", 1, "Atomic number",
4584  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4585  KmTYPE_REAL, &_GEANT_CONTROL_SMATE_Z_type };
4586 static KmParReal   _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
4587  (char*)0, (char*)0, 0 };
4588 static KmParameter _GEANT_CONTROL_SMATE_DENS = { "DENS", 4, "Density",
4589  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4590  KmTYPE_REAL, &_GEANT_CONTROL_SMATE_DENS_type };
4591 static KmParReal   _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
4592  (char*)0, (char*)0, 0 };
4593 static KmParameter _GEANT_CONTROL_SMATE_RADL = { "RADL", 4,
4594  "Radiation lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4595  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_RADL_type };
4596 static KmParReal   _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
4597  (char*)0, (char*)0, 0 };
4598 static KmParameter _GEANT_CONTROL_SMATE_ABSL = { "ABSL", 4,
4599  "Absorption lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
4600  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_ABSL_type };
4601 static KmParReal   _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
4602  (char*)0, (char*)0, 0 };
4603 static KmParameter _GEANT_CONTROL_SMATE_UBUF = { "UBUF", 4, " ", (char*)0,
4604  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4605  &_GEANT_CONTROL_SMATE_UBUF_type };
4606 static KmParInt    _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
4607  (char*)0, (char*)0, 0 };
4608 static KmParameter _GEANT_CONTROL_SMATE_NWBUF = { "NWBUF", 5, " ", (char*)0,
4609  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4610  &_GEANT_CONTROL_SMATE_NWBUF_type };
4611 static KmParameter *_GEANT_CONTROL_SMATE_parameters[] = {
4612  &_GEANT_CONTROL_SMATE_IMAT, &_GEANT_CONTROL_SMATE_NAMATE,
4613  &_GEANT_CONTROL_SMATE_A, &_GEANT_CONTROL_SMATE_Z, &_GEANT_CONTROL_SMATE_DENS,
4614  &_GEANT_CONTROL_SMATE_RADL, &_GEANT_CONTROL_SMATE_ABSL,
4615  &_GEANT_CONTROL_SMATE_UBUF, &_GEANT_CONTROL_SMATE_NWBUF };
4616 static char *_GEANT_CONTROL_SMATE_guidance[] = {
4617  " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
4618 static KmCommand _GEANT_CONTROL_SMATE = { &_GEANT_CONTROL_SMIXT,
4619  "/GEANT/CONTROL/SMATE", "SMATE", 0, 2, 9, 9, _GEANT_CONTROL_SMATE_parameters,
4620  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4621  _GEANT_CONTROL_SMATE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4622  (char*)0, (int*)0 };
4623  
4624 static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
4625  "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4626  (void*)0 };
4627 static KmParameter _GEANT_CONTROL_PDIGI_CHUDET = { "CHUDET", 6,
4628  "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4629  KmTYPE_CHAR,  (void*)0 };
4630 static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
4631  &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
4632 static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
4633  };
4634 static KmCommand _GEANT_CONTROL_PDIGI = { &_GEANT_CONTROL_SMATE,
4635  "/GEANT/CONTROL/PDIGI", "PDIGI", 0, 2, 2, 0, _GEANT_CONTROL_PDIGI_parameters,
4636  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4637  _GEANT_CONTROL_PDIGI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4638  (char*)0, (int*)0 };
4639  
4640 static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
4641  "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4642  (void*)0 };
4643 static KmParameter _GEANT_CONTROL_PHITS_CHUDET = { "CHUDET", 6,
4644  "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4645  KmTYPE_CHAR,  (void*)0 };
4646 static KmParInt    _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
4647  (char*)0, (char*)0, 0 };
4648 static KmParameter _GEANT_CONTROL_PHITS_NUMHI = { "NUMHI", 5, "Hit number",
4649  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4650  &_GEANT_CONTROL_PHITS_NUMHI_type };
4651 static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
4652  &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
4653  &_GEANT_CONTROL_PHITS_NUMHI };
4654 static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
4655  };
4656 static KmCommand _GEANT_CONTROL_PHITS = { &_GEANT_CONTROL_PDIGI,
4657  "/GEANT/CONTROL/PHITS", "PHITS", 0, 2, 3, 0, _GEANT_CONTROL_PHITS_parameters,
4658  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4659  _GEANT_CONTROL_PHITS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4660  (char*)0, (int*)0 };
4661  
4662 static KmParInt    _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
4663  (char*)0, (char*)0, 0 };
4664 static KmParameter _GEANT_CONTROL_OUTPUT_LP_LOUT = { "LOUT", 4,
4665  "New output unit", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4666  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_OUTPUT_LP_LOUT_type };
4667 static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
4668  &_GEANT_CONTROL_OUTPUT_LP_LOUT };
4669 static char *_GEANT_CONTROL_OUTPUT_LP_guidance[] = {
4670  "To change lout in /GCUNIT/",
4671  "Note: unit numbers 5,11,12,13,14,15 are reserved and cannot be used." };
4672 static KmCommand _GEANT_CONTROL_OUTPUT_LP = { &_GEANT_CONTROL_PHITS,
4673  "/GEANT/CONTROL/OUTPUT_LP", "OUTPUT_LP", 0, 2, 1, 1,
4674  _GEANT_CONTROL_OUTPUT_LP_parameters, 0, 0, gxcont_, (IntFunc*)0,
4675  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_OUTPUT_LP_guidance, 0,
4676  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4677  
4678 static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
4679  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4680  (void*)0 };
4681 static KmParInt    _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
4682  (char*)0, (char*)0, 0 };
4683 static KmParameter _GEANT_CONTROL_PRINT_NUMBER = { "NUMBER", 6, "Number", "0",
4684  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4685  &_GEANT_CONTROL_PRINT_NUMBER_type };
4686 static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
4687  &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
4688 static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
4689 static KmCommand _GEANT_CONTROL_PRINT = { &_GEANT_CONTROL_OUTPUT_LP,
4690  "/GEANT/CONTROL/PRINT", "PRINT", 0, 2, 2, 2, _GEANT_CONTROL_PRINT_parameters,
4691  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4692  _GEANT_CONTROL_PRINT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4693  (char*)0, (int*)0 };
4694  
4695 static KmParInt    _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
4696  (char*)0, (char*)0, 0 };
4697 static KmParameter _GEANT_CONTROL_MZLOGL_LEVEL = { "LEVEL", 5, "MZ log level",
4698  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4699  &_GEANT_CONTROL_MZLOGL_LEVEL_type };
4700 static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
4701  &_GEANT_CONTROL_MZLOGL_LEVEL };
4702 static char *_GEANT_CONTROL_MZLOGL_guidance[] = {
4703  "Set the log level for the MZ package of ZEBRA: CALL MZLOGL(0,level)",
4704  " LEVEL = -3   no messages at all", "         -2   error messages only",
4705  "         -1   terse logging", "          0   normal",
4706  "         +1   log rare events", "         +2   log calls to MZ routines" };
4707 static KmCommand _GEANT_CONTROL_MZLOGL = { &_GEANT_CONTROL_PRINT,
4708  "/GEANT/CONTROL/MZLOGL", "MZLOGL", 0, 2, 1, 1,
4709  _GEANT_CONTROL_MZLOGL_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4710  (pCharFunc*)0, 7, _GEANT_CONTROL_MZLOGL_guidance, 0, (char**)0, 0, (char**)0,
4711  0, (char**)0, (char*)0, (int*)0 };
4712  
4713 static KmParInt    _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
4714  (char*)0, (char*)0, 0 };
4715 static KmParameter _GEANT_CONTROL_SWITCH_ISWI = { "ISWI", 4, "Switch number",
4716  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4717  &_GEANT_CONTROL_SWITCH_ISWI_type };
4718 static KmParInt    _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
4719  (char*)0, (char*)0, 0 };
4720 static KmParameter _GEANT_CONTROL_SWITCH_IVAL = { "IVAL", 4,
4721  "New switch value", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4722  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SWITCH_IVAL_type };
4723 static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
4724  &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
4725 static char *_GEANT_CONTROL_SWITCH_guidance[] = {
4726  "Change one element of array ISWIT(10) in /GCFLAG/" };
4727 static KmCommand _GEANT_CONTROL_SWITCH = { &_GEANT_CONTROL_MZLOGL,
4728  "/GEANT/CONTROL/SWITCH", "SWITCH", 0, 2, 2, 2,
4729  _GEANT_CONTROL_SWITCH_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
4730  (pCharFunc*)0, 1, _GEANT_CONTROL_SWITCH_guidance, 0, (char**)0, 0, (char**)0,
4731  0, (char**)0, (char*)0, (int*)0 };
4732  
4733 static KmParInt    _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
4734  (char*)0, (char*)0, 0 };
4735 static KmParameter _GEANT_CONTROL_RNDM_ISEED1 = { "ISEED1", 6,
4736  "First seed for the random number generator", (char*)0, (char*)0, 8, 0,
4737  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4738  &_GEANT_CONTROL_RNDM_ISEED1_type };
4739 static KmParInt    _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
4740  (char*)0, (char*)0, 0 };
4741 static KmParameter _GEANT_CONTROL_RNDM_ISEED2 = { "ISEED2", 6,
4742  "Second seed for the random number generator", (char*)0, (char*)0, 8, 0,
4743  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4744  &_GEANT_CONTROL_RNDM_ISEED2_type };
4745 static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
4746  &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
4747 static char *_GEANT_CONTROL_RNDM_guidance[] = {
4748  "Set the seeds for the random number generator. If no numbers are",
4749  "given, the currents seeds are printed." };
4750 static KmCommand _GEANT_CONTROL_RNDM = { &_GEANT_CONTROL_SWITCH,
4751  "/GEANT/CONTROL/RNDM", "RNDM", 0, 2, 2, 0, _GEANT_CONTROL_RNDM_parameters, 0,
4752  0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
4753  _GEANT_CONTROL_RNDM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4754  (char*)0, (int*)0 };
4755  
4756 static KmParInt    _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
4757  (char*)0, (char*)0, 0 };
4758 static KmParameter _GEANT_CONTROL_TRIGGER_N = { "N", 1, "Number of events",
4759  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4760  &_GEANT_CONTROL_TRIGGER_N_type };
4761 static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
4762  &_GEANT_CONTROL_TRIGGER_N };
4763 static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
4764  "Start one or more new events." };
4765 static KmCommand _GEANT_CONTROL_TRIGGER = { &_GEANT_CONTROL_RNDM,
4766  "/GEANT/CONTROL/TRIGGER", "TRIGGER", 0, 2, 1, 0,
4767  _GEANT_CONTROL_TRIGGER_parameters, 0, 0, gxcont_, (IntFunc*)0,
4768  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_CONTROL_TRIGGER_guidance, 0,
4769  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4770  
4771 static char *_GEANT_CONTROL_TRACK_guidance[] = {
4772  "Restart tracking, clearing the track and hit",
4773  "banks, but keeping the kinematics." };
4774 static KmCommand _GEANT_CONTROL_TRACK = { &_GEANT_CONTROL_TRIGGER,
4775  "/GEANT/CONTROL/TRACK", "TRACK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxcont_,
4776  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_TRACK_guidance,
4777  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4778  
4779 static KmParReal   _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
4780  (char*)0, (char*)0, 0 };
4781 static KmParameter _GEANT_CONTROL_GTIME_TIMINT = { "TIMINT", 6,
4782  "Total time after initialisation", (char*)0, (char*)0, 12, 0, (char**)0, 0,
4783  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_GTIME_TIMINT_type };
4784 static KmParReal   _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
4785  (char*)0, (char*)0, 0 };
4786 static KmParameter _GEANT_CONTROL_GTIME_TIMEND = { "TIMEND", 6,
4787  "Time reserved for the termination phase", (char*)0, (char*)0, 12, 0,
4788  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
4789  &_GEANT_CONTROL_GTIME_TIMEND_type };
4790 static KmParInt    _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
4791  (char*)0, (char*)0, 0 };
4792 static KmParameter _GEANT_CONTROL_GTIME_ITIME = { "ITIME", 5,
4793  "Frequency of control printing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
4794  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_GTIME_ITIME_type };
4795 static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
4796  &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
4797  &_GEANT_CONTROL_GTIME_ITIME };
4798 static char *_GEANT_CONTROL_GTIME_guidance[] = {
4799  "These commands have limited use in the interactive version. In",
4800  "particular the value of TIMINT is disregarded by GEANT." };
4801 static KmCommand _GEANT_CONTROL_GTIME = { &_GEANT_CONTROL_TRACK,
4802  "/GEANT/CONTROL/GTIME", "GTIME", 0, 2, 3, 3, _GEANT_CONTROL_GTIME_parameters,
4803  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
4804  _GEANT_CONTROL_GTIME_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4805  (char*)0, (int*)0 };
4806  
4807 static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
4808 static KmParInt    _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
4809  (char*)0, (char*)0, 0 };
4810 static KmParameter _GEANT_CONTROL_SORD_ISTORD = { "ISTORD", 6,
4811  "Flag to control user ordering of the stack", "1", (char*)0, 8, 2,
4812  _GEANT_CONTROL_SORD_ISTORD_range, 2, _GEANT_CONTROL_SORD_ISTORD_range,
4813  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SORD_ISTORD_type };
4814 static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
4815  &_GEANT_CONTROL_SORD_ISTORD };
4816 static char *_GEANT_CONTROL_SORD_guidance[] = {
4817  "If ISTORD is set to 1, the particle with the highest value of the",
4818  "user weight UPWGHT will be selected to be tracked next." };
4819 static KmCommand _GEANT_CONTROL_SORD = { &_GEANT_CONTROL_GTIME,
4820  "/GEANT/CONTROL/SORD", "SORD", 0, 2, 1, 1, _GEANT_CONTROL_SORD_parameters, 0,
4821  0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
4822  _GEANT_CONTROL_SORD_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4823  (char*)0, (int*)0 };
4824  
4825 static KmParInt    _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
4826  (char*)0, (char*)0, 0 };
4827 static KmParameter _GEANT_CONTROL_RUNG_IDRUN = { "IDRUN", 5,
4828  "User run number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
4829  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDRUN_type };
4830 static KmParInt    _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
4831  (char*)0, (char*)0, 0 };
4832 static KmParameter _GEANT_CONTROL_RUNG_IDEVT = { "IDEVT", 5,
4833  "User starting event number", (char*)0, (char*)0, 8, 0, (char**)0, 0,
4834  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDEVT_type };
4835 static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
4836  &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
4837 static char *_GEANT_CONTROL_RUNG_guidance[] = {
4838  "Set the run number and the starting value for the user event number." };
4839 static KmCommand _GEANT_CONTROL_RUNG = { &_GEANT_CONTROL_SORD,
4840  "/GEANT/CONTROL/RUNG", "RUNG", 0, 2, 2, 2, _GEANT_CONTROL_RUNG_parameters, 0,
4841  0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4842  _GEANT_CONTROL_RUNG_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4843  (char*)0, (int*)0 };
4844  
4845 static KmParInt    _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
4846  (char*)0, (char*)0, 0 };
4847 static KmParameter _GEANT_CONTROL_KINE_IKINE = { "IKINE", 5, "IKINE", "1",
4848  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4849  &_GEANT_CONTROL_KINE_IKINE_type };
4850 static KmParReal   _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
4851  (char*)0, (char*)0, 0 };
4852 static KmParameter _GEANT_CONTROL_KINE_PKINE1 = { "PKINE1", 6, "PKINE(1)",
4853  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4854  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE1_type };
4855 static KmParReal   _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
4856  (char*)0, (char*)0, 0 };
4857 static KmParameter _GEANT_CONTROL_KINE_PKINE2 = { "PKINE2", 6, "PKINE(2)",
4858  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4859  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE2_type };
4860 static KmParReal   _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
4861  (char*)0, (char*)0, 0 };
4862 static KmParameter _GEANT_CONTROL_KINE_PKINE3 = { "PKINE3", 6, "PKINE(3)",
4863  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4864  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE3_type };
4865 static KmParReal   _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
4866  (char*)0, (char*)0, 0 };
4867 static KmParameter _GEANT_CONTROL_KINE_PKINE4 = { "PKINE4", 6, "PKINE(4)",
4868  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4869  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE4_type };
4870 static KmParReal   _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
4871  (char*)0, (char*)0, 0 };
4872 static KmParameter _GEANT_CONTROL_KINE_PKINE5 = { "PKINE5", 6, "PKINE(5)",
4873  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4874  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE5_type };
4875 static KmParReal   _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
4876  (char*)0, (char*)0, 0 };
4877 static KmParameter _GEANT_CONTROL_KINE_PKINE6 = { "PKINE6", 6, "PKINE(6)",
4878  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4879  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE6_type };
4880 static KmParReal   _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
4881  (char*)0, (char*)0, 0 };
4882 static KmParameter _GEANT_CONTROL_KINE_PKINE7 = { "PKINE7", 6, "PKINE(7)",
4883  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4884  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE7_type };
4885 static KmParReal   _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
4886  (char*)0, (char*)0, 0 };
4887 static KmParameter _GEANT_CONTROL_KINE_PKINE8 = { "PKINE8", 6, "PKINE(8)",
4888  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4889  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE8_type };
4890 static KmParReal   _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
4891  (char*)0, (char*)0, 0 };
4892 static KmParameter _GEANT_CONTROL_KINE_PKINE9 = { "PKINE9", 6, "PKINE(9)",
4893  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4894  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE9_type };
4895 static KmParReal   _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
4896  (char*)0, (char*)0, 0 };
4897 static KmParameter _GEANT_CONTROL_KINE_PKINE10 = { "PKINE10", 7, "PKINE(10)",
4898  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4899  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE10_type };
4900 static KmParameter *_GEANT_CONTROL_KINE_parameters[] = {
4901  &_GEANT_CONTROL_KINE_IKINE, &_GEANT_CONTROL_KINE_PKINE1,
4902  &_GEANT_CONTROL_KINE_PKINE2, &_GEANT_CONTROL_KINE_PKINE3,
4903  &_GEANT_CONTROL_KINE_PKINE4, &_GEANT_CONTROL_KINE_PKINE5,
4904  &_GEANT_CONTROL_KINE_PKINE6, &_GEANT_CONTROL_KINE_PKINE7,
4905  &_GEANT_CONTROL_KINE_PKINE8, &_GEANT_CONTROL_KINE_PKINE9,
4906  &_GEANT_CONTROL_KINE_PKINE10 };
4907 static char *_GEANT_CONTROL_KINE_guidance[] = {
4908  "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
4909 static KmCommand _GEANT_CONTROL_KINE = { &_GEANT_CONTROL_RUNG,
4910  "/GEANT/CONTROL/KINE", "KINE", 0, 2, 11, 1, _GEANT_CONTROL_KINE_parameters,
4911  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
4912  _GEANT_CONTROL_KINE_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
4913  (char*)0, (int*)0 };
4914  
4915 static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
4916 static KmMenu _GEANT_CONTROL = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/CONTROL",
4917  "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance, 0, (char**)0,
4918  0, (char**)0 };
4919  
4920 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
4921  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
4922  
4923   klnkmenu( &_GEANT, 950303 );
4924 }
4925  
4926  
4927 #ifdef F77_LCASE
4928 #  define gkdz_ gkdz
4929 #  define gxdz_ gxdz
4930 #endif
4931  
4932 #ifdef F77_UCASE
4933 #  define gkdz_ GKDZ
4934 #  define gxdz_ GXDZ
4935 #endif
4936  
4937 #ifdef IBM370
4938 #  pragma linkage(GKDZ,FORTRAN)
4939 #  pragma linkage(GXDZ,FORTRAN)
4940 #endif
4941  
4942 extern void gkdz_();
4943 extern void gxdz_();
4944  
4945 void gkdz_()
4946 {
4947  
4948 static KmParameter _GEANT_DZ_DIRZ_PATH = { "PATH", 4,
4949  "Name of the RZ directory to analyse", (char*)0, (char*)0, 20, 0, (char**)0,
4950  0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
4951 static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
4952 static char *_GEANT_DZ_DIRZ_guidance[] = {
4953  "Facility to display RZ directory trees.",
4954  " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
4955 static KmCommand _GEANT_DZ_DIRZ = {  (KmCommand*)0, "/GEANT/DZ/DIRZ", "DIRZ",
4956  0, 2, 1, 0, _GEANT_DZ_DIRZ_parameters, 0, 0, gxdz_, (IntFunc*)0,
4957  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DIRZ_guidance, 0, (char**)0, 0,
4958  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4959  
4960 static KmParameter _GEANT_DZ_DISP_BANK = { "BANK", 4, "Name of the bank",
4961  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
4962  KmTYPE_CHAR,  (void*)0 };
4963 static KmParameter _GEANT_DZ_DISP_PATH = { "PATH", 4, "Name of the doc file",
4964  " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4965  (void*)0 };
4966 static KmParInt    _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
4967  (char*)0, (char*)0, 0 };
4968 static KmParameter _GEANT_DZ_DISP_NUMBER = { "NUMBER", 6,
4969  "Number of the bank", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
4970  (KmParFlag)0, KmTYPE_INT, &_GEANT_DZ_DISP_NUMBER_type };
4971 static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
4972  &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
4973 static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
4974  " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
4975 static KmCommand _GEANT_DZ_DISP = { &_GEANT_DZ_DIRZ, "/GEANT/DZ/DISP", "DISP",
4976  0, 2, 3, 1, _GEANT_DZ_DISP_parameters, 0, 0, gxdz_, (IntFunc*)0,
4977  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DISP_guidance, 0, (char**)0, 0,
4978  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4979  
4980 static KmParInt    _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
4981  (char*)0, 0 };
4982 static KmParameter _GEANT_DZ_DDIV_IDIV = { "IDIV", 4, "Division number", "2",
4983  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
4984  &_GEANT_DZ_DDIV_IDIV_type };
4985 static KmParameter _GEANT_DZ_DDIV_PATH = { "PATH", 4, "Name of the doc file",
4986  " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
4987  (void*)0 };
4988 static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
4989  &_GEANT_DZ_DDIV_PATH };
4990 static char *_GEANT_DZ_DDIV_guidance[] = {
4991  "Facility to display the layout of stores and divisions.",
4992  " CALL DZDDIV(idiv,LDUMMY,path,'IN',1,0,1,IWTYPE)" };
4993 static KmCommand _GEANT_DZ_DDIV = { &_GEANT_DZ_DISP, "/GEANT/DZ/DDIV", "DDIV",
4994  0, 2, 2, 0, _GEANT_DZ_DDIV_parameters, 0, 0, gxdz_, (IntFunc*)0,
4995  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DDIV_guidance, 0, (char**)0, 0,
4996  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
4997  
4998 static KmParInt    _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
4999 static KmParameter _GEANT_DZ_STORE_IXSTOR = { "IXSTOR", 6, "Store number",
5000  "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5001  &_GEANT_DZ_STORE_IXSTOR_type };
5002 static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
5003 static char *_GEANT_DZ_STORE_guidance[] = {
5004  "Display the structure of the ZEBRA store IXSTOR.",
5005  "Output the parameters characterizing the store, followed by a",
5006  "list of all divisions and all link areas associated with the store in",
5007  "question." };
5008 static KmCommand _GEANT_DZ_STORE = { &_GEANT_DZ_DDIV, "/GEANT/DZ/STORE",
5009  "STORE", 0, 2, 1, 0, _GEANT_DZ_STORE_parameters, 0, 0, gxdz_, (IntFunc*)0,
5010  (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_DZ_STORE_guidance, 0, (char**)0, 0,
5011  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5012  
5013 static KmParInt    _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
5014 static KmParameter _GEANT_DZ_VERIFY_IDIV = { "IDIV", 4, "Division number ",
5015  "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5016  &_GEANT_DZ_VERIFY_IDIV_type };
5017 static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
5018  };
5019 static KmParameter _GEANT_DZ_VERIFY_CHOPT = { "CHOPT", 5, "Options", "CLSU",
5020  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5021  &_GEANT_DZ_VERIFY_CHOPT_type };
5022 static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
5023  &_GEANT_DZ_VERIFY_CHOPT };
5024 static char *_GEANT_DZ_VERIFY_guidance[] = {
5025  "Check the structure of one or more ZEBRA divisions.",
5026  "The verification detail depends on the settings in CHOPT.",
5027  " CHOPT='C' Check chaining of banks only",
5028  " CHOPT='L' Check validity of the structural links (implies 'C')",
5029  " CHOPT='S' Check the store parameters",
5030  " CHOPT='U' Check the validity of the up and origin (implies 'C')",
5031  " CHOPT='F' Errors are considered fatal and generate a call to ZFATAL" };
5032 static KmCommand _GEANT_DZ_VERIFY = { &_GEANT_DZ_STORE, "/GEANT/DZ/VERIFY",
5033  "VERIFY", 0, 2, 2, 0, _GEANT_DZ_VERIFY_parameters, 0, 0, gxdz_, (IntFunc*)0,
5034  (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DZ_VERIFY_guidance, 0, (char**)0, 0,
5035  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5036  
5037 static KmParInt    _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
5038 static KmParameter _GEANT_DZ_SNAP_IDIV = { "IDIV", 4, "Division number ", "2",
5039  (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5040  &_GEANT_DZ_SNAP_IDIV_type };
5041 static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5042 static KmParameter _GEANT_DZ_SNAP_CHOPT = { "CHOPT", 5, "Options", "M",
5043  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5044  &_GEANT_DZ_SNAP_CHOPT_type };
5045 static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
5046  &_GEANT_DZ_SNAP_CHOPT };
5047 static char *_GEANT_DZ_SNAP_guidance[] = { "Snap of one or more divisions.",
5048  "Provides a snapshot of one or more divisions in a ZEBRA store.",
5049  "The kind of information provided is controlled by CHOPT.",
5050  " CHOPT='M' Print Map entry for each bank",
5051  " CHOPT='E' Extend map entry to dump all links of each bank",
5052  "           (otherwise only as many links as will fit on a line)",
5053  " CHOPT='F' Full. Dump all active banks, links and data",
5054  " CHOPT='K' Kill. Dropped banks to be treated as active",
5055  "           (dropped banks are not normally dumped under D or F option)",
5056  " CHOPT='L' Dump all Link areas associated with the store",
5057  " CHOPT='W' Dump the Working space, links and data",
5058  " CHOPT='Z' Dump the information in hexadecimal." };
5059 static KmCommand _GEANT_DZ_SNAP = { &_GEANT_DZ_VERIFY, "/GEANT/DZ/SNAP",
5060  "SNAP", 0, 2, 2, 0, _GEANT_DZ_SNAP_parameters, 0, 0, gxdz_, (IntFunc*)0,
5061  (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SNAP_guidance, 0, (char**)0, 0,
5062  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5063  
5064 static KmParameter _GEANT_DZ_SHOW_NAME = { "NAME", 4, "Bank name", (char*)0,
5065  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5066  (void*)0 };
5067 static KmParInt    _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
5068  (char*)0, (char*)0, 0 };
5069 static KmParameter _GEANT_DZ_SHOW_NUMBER = { "NUMBER", 6, "Bank number", "1",
5070  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5071  &_GEANT_DZ_SHOW_NUMBER_type };
5072 static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5073 static KmParameter _GEANT_DZ_SHOW_CHOPT = { "CHOPT", 5, "Options", "BSV",
5074  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5075  &_GEANT_DZ_SHOW_CHOPT_type };
5076 static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
5077  &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
5078 static char *_GEANT_DZ_SHOW_guidance[] = {
5079  "Display the contents of a bank or a data structure",
5080  "identified by its NAME and NUMBER.",
5081  "The output format of the data part is controlled by the internal",
5082  "or external I/O characteristic.", " CHOPT='B' Print the bank.",
5083  " CHOPT='S' Print the bank contents from left to right Sideways",
5084  "           with up to ten elements per line.",
5085  " CHOPT='V' Print the vertical (down) structure.",
5086  " CHOPT='D' Print the bank contents from top to bottom Downwards",
5087  "           with five elements per line.",
5088  " CHOPT='L' Print the linear structure.",
5089  " CHOPT='Z' Print the data part of each bank in hexadecimal format" };
5090 static KmCommand _GEANT_DZ_SHOW = { &_GEANT_DZ_SNAP, "/GEANT/DZ/SHOW", "SHOW",
5091  0, 2, 3, 1, _GEANT_DZ_SHOW_parameters, 0, 0, gxdz_, (IntFunc*)0,
5092  (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SHOW_guidance, 0, (char**)0, 0,
5093  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5094  
5095 static KmParameter _GEANT_DZ_SURV_NAME = { "NAME", 4, "Bank name", (char*)0,
5096  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5097  (void*)0 };
5098 static KmParInt    _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
5099  (char*)0, (char*)0, 0 };
5100 static KmParameter _GEANT_DZ_SURV_NUMBER = { "NUMBER", 6, "Bank number", "1",
5101  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5102  &_GEANT_DZ_SURV_NUMBER_type };
5103 static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
5104  &_GEANT_DZ_SURV_NUMBER };
5105 static char *_GEANT_DZ_SURV_guidance[] = {
5106  "Print a survey of the structure identified by NAME, NUMBER." };
5107 static KmCommand _GEANT_DZ_SURV = { &_GEANT_DZ_SHOW, "/GEANT/DZ/SURV", "SURV",
5108  0, 2, 2, 1, _GEANT_DZ_SURV_parameters, 0, 0, gxdz_, (IntFunc*)0,
5109  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_DZ_SURV_guidance, 0, (char**)0, 0,
5110  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5111  
5112 static KmMenu _GEANT_DZ = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
5113  &_GEANT_DZ_SURV, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5114  
5115 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
5116  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5117  
5118   klnkmenu( &_GEANT, 950303 );
5119 }
5120  
5121  
5122 #ifdef F77_LCASE
5123 #  define gkfz_ gkfz
5124 #  define gxfz_ gxfz
5125 #endif
5126  
5127 #ifdef F77_UCASE
5128 #  define gkfz_ GKFZ
5129 #  define gxfz_ GXFZ
5130 #endif
5131  
5132 #ifdef IBM370
5133 #  pragma linkage(GKFZ,FORTRAN)
5134 #  pragma linkage(GXFZ,FORTRAN)
5135 #endif
5136  
5137 extern void gkfz_();
5138 extern void gxfz_();
5139  
5140 void gkfz_()
5141 {
5142  
5143 static KmParInt    _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
5144  (char*)0, (char*)0, 0 };
5145 static KmParameter _GEANT_FZ_FZCLOSE_LUN = { "LUN", 3,
5146  "Fortran unit of the FZ to close", (char*)0, (char*)0, 8, 0, (char**)0, 0,
5147  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZCLOSE_LUN_type };
5148 static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
5149  };
5150 static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
5151  "       CALL GCLOSE(LUN,IER)" };
5152 static KmCommand _GEANT_FZ_FZCLOSE = {  (KmCommand*)0, "/GEANT/FZ/FZCLOSE",
5153  "FZCLOSE", 0, 2, 1, 1, _GEANT_FZ_FZCLOSE_parameters, 0, 0, gxfz_,
5154  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZCLOSE_guidance, 0,
5155  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5156  
5157 static KmParInt    _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
5158  (char*)0, 0 };
5159 static KmParameter _GEANT_FZ_FZOUT_LUN = { "LUN", 3,
5160  "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
5161  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_LUN_type };
5162 static KmParameter _GEANT_FZ_FZOUT_KEYSU = { "KEYSU", 5,
5163  "Name of the data structure to be saved", (char*)0, (char*)0, 20, 0,
5164  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
5165 static KmParInt    _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
5166  (char*)0, (char*)0, 0 };
5167 static KmParameter _GEANT_FZ_FZOUT_IDENT = { "IDENT", 5,
5168  "Version of the data structure to be saved", "1", (char*)0, 8, 0, (char**)0,
5169  0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_IDENT_type };
5170 static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
5171  &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
5172 static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
5173  "       CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
5174 static KmCommand _GEANT_FZ_FZOUT = { &_GEANT_FZ_FZCLOSE, "/GEANT/FZ/FZOUT",
5175  "FZOUT", 0, 2, 3, 2, _GEANT_FZ_FZOUT_parameters, 0, 0, gxfz_, (IntFunc*)0,
5176  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZOUT_guidance, 0, (char**)0, 0,
5177  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5178  
5179 static KmParInt    _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
5180  (char*)0, 0 };
5181 static KmParameter _GEANT_FZ_FZOPEN_LUN = { "LUN", 3,
5182  "Fortran unit with which to open the file", (char*)0, (char*)0, 8, 0,
5183  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LUN_type
5184  };
5185 static KmParameter _GEANT_FZ_FZOPEN_FILE = { "FILE", 4,
5186  "Name of the file to be opened", (char*)0, (char*)0, 20, 0, (char**)0, 0,
5187  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
5188 static KmParameter _GEANT_FZ_FZOPEN_LUNTYP = { "LUNTYP", 6,
5189  "Type of FZ file to be opened by GOPEN", "XI", (char*)0, 20, 0, (char**)0, 0,
5190  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
5191 static KmParInt    _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
5192  (char*)0, 0 };
5193 static KmParameter _GEANT_FZ_FZOPEN_LEN = { "LEN", 3,
5194  "Recordlenght of the file", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5195  (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LEN_type };
5196 static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
5197  };
5198 static KmParameter _GEANT_FZ_FZOPEN_CHOPT = { "CHOPT", 5,
5199  "Optional parameter to specify the action", " ", (char*)0, 20, 0, (char**)0,
5200  0, (char**)0, (KmParFlag)0, KmTYPE_OPTION, &_GEANT_FZ_FZOPEN_CHOPT_type };
5201 static KmParameter *_GEANT_FZ_FZOPEN_parameters[] = { &_GEANT_FZ_FZOPEN_LUN,
5202  &_GEANT_FZ_FZOPEN_FILE, &_GEANT_FZ_FZOPEN_LUNTYP, &_GEANT_FZ_FZOPEN_LEN,
5203  &_GEANT_FZ_FZOPEN_CHOPT };
5204 static char *_GEANT_FZ_FZOPEN_guidance[] = { "Equivalent to a call to:",
5205  "       CALL GOPEN(LUN,FILE,LUNTYP,LEN,IER)",
5206  "If CHOPT = I then a call to GFIN or GFOUT will be performed in addition",
5207  "according to the value of LUNTYP, with the key INIT to save or retrieve",
5208  "the whole initialization data structure." };
5209 static KmCommand _GEANT_FZ_FZOPEN = { &_GEANT_FZ_FZOUT, "/GEANT/FZ/FZOPEN",
5210  "FZOPEN", 0, 2, 5, 4, _GEANT_FZ_FZOPEN_parameters, 0, 0, gxfz_, (IntFunc*)0,
5211  (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_FZ_FZOPEN_guidance, 0, (char**)0, 0,
5212  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5213  
5214 static KmParInt    _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
5215  (char*)0, 0 };
5216 static KmParameter _GEANT_FZ_FZIN_LUN = { "LUN", 3,
5217  "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
5218  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_LUN_type };
5219 static KmParameter _GEANT_FZ_FZIN_KEYSU = { "KEYSU", 5,
5220  "Name of the data structure to be retrieved", (char*)0, (char*)0, 20, 0,
5221  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
5222 static KmParInt    _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
5223  (char*)0, 0 };
5224 static KmParameter _GEANT_FZ_FZIN_IDENT = { "IDENT", 5,
5225  "Version of the data structure to be retrieved", "0", (char*)0, 8, 0,
5226  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_IDENT_type
5227  };
5228 static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
5229  &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
5230 static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
5231  "       CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
5232 static KmCommand _GEANT_FZ_FZIN = { &_GEANT_FZ_FZOPEN, "/GEANT/FZ/FZIN",
5233  "FZIN", 0, 2, 3, 2, _GEANT_FZ_FZIN_parameters, 0, 0, gxfz_, (IntFunc*)0,
5234  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZIN_guidance, 0, (char**)0, 0,
5235  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5236  
5237 static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
5238 static KmMenu _GEANT_FZ = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
5239  &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance, 0, (char**)0, 0, (char**)0 };
5240  
5241 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
5242  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5243  
5244   klnkmenu( &_GEANT, 950303 );
5245 }
5246  
5247  
5248 #ifdef F77_LCASE
5249 #  define gkrz_ gkrz
5250 #  define gxrz_ gxrz
5251 #endif
5252  
5253 #ifdef F77_UCASE
5254 #  define gkrz_ GKRZ
5255 #  define gxrz_ GXRZ
5256 #endif
5257  
5258 #ifdef IBM370
5259 #  pragma linkage(GKRZ,FORTRAN)
5260 #  pragma linkage(GXRZ,FORTRAN)
5261 #endif
5262  
5263 extern void gkrz_();
5264 extern void gxrz_();
5265  
5266 void gkrz_()
5267 {
5268  
5269 static KmParameter _GEANT_RZ_FREE_CHDIR = { "CHDIR", 5, "Lock identifier",
5270  "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5271  KmTYPE_CHAR,  (void*)0 };
5272 static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
5273 static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
5274 static KmCommand _GEANT_RZ_FREE = {  (KmCommand*)0, "/GEANT/RZ/FREE", "FREE",
5275  0, 2, 1, 1, _GEANT_RZ_FREE_parameters, 0, 0, gxrz_, (IntFunc*)0,
5276  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_FREE_guidance, 0, (char**)0, 0,
5277  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5278  
5279 static KmParameter _GEANT_RZ_LOCK_CHDIR = { "CHDIR", 5, "Lock identifier",
5280  "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5281  KmTYPE_CHAR,  (void*)0 };
5282 static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
5283 static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
5284 static KmCommand _GEANT_RZ_LOCK = { &_GEANT_RZ_FREE, "/GEANT/RZ/LOCK", "LOCK",
5285  0, 2, 1, 1, _GEANT_RZ_LOCK_parameters, 0, 0, gxrz_, (IntFunc*)0,
5286  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_LOCK_guidance, 0, (char**)0, 0,
5287  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5288  
5289 static KmParameter _GEANT_RZ_SCR_OBJECT = { "OBJECT", 6, "Structure name",
5290  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5291  KmTYPE_CHAR,  (void*)0 };
5292 static KmParInt    _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5293  (char*)0, 0 };
5294 static KmParameter _GEANT_RZ_SCR_IDVERS = { "IDVERS", 6, "Version number",
5295  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5296  &_GEANT_RZ_SCR_IDVERS_type };
5297 static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
5298  &_GEANT_RZ_SCR_IDVERS };
5299 static char *_GEANT_RZ_SCR_guidance[] = {
5300  "Delete entry identified by OBJECT,IDVERS on RZ file.",
5301  "OBJECT may be : MATE,TMED,VOLU,ROTM,SETS,PART,SCAN, *",
5302  "If OBJECT= *    delete all entries with IDVERS." };
5303 static KmCommand _GEANT_RZ_SCR = { &_GEANT_RZ_LOCK, "/GEANT/RZ/SCR", "SCR", 0,
5304  2, 2, 1, _GEANT_RZ_SCR_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
5305  (pCharFunc*)0, 3, _GEANT_RZ_SCR_guidance, 0, (char**)0, 0, (char**)0, 0,
5306  (char**)0, (char*)0, (int*)0 };
5307  
5308 static KmParInt    _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
5309  (char*)0, (char*)0, 0 };
5310 static KmParameter _GEANT_RZ_PURGE_NKEEP = { "NKEEP", 5,
5311  "Number of cycles to keep", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5312  (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PURGE_NKEEP_type };
5313 static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
5314 static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
5315 static KmCommand _GEANT_RZ_PURGE = { &_GEANT_RZ_SCR, "/GEANT/RZ/PURGE",
5316  "PURGE", 0, 2, 1, 0, _GEANT_RZ_PURGE_parameters, 0, 0, gxrz_, (IntFunc*)0,
5317  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PURGE_guidance, 0, (char**)0, 0,
5318  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5319  
5320 static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
5321  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5322  (void*)0 };
5323 static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5324 static KmParameter _GEANT_RZ_LDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
5325  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5326  &_GEANT_RZ_LDIR_CHOPT_type };
5327 static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
5328  &_GEANT_RZ_LDIR_CHOPT };
5329 static char *_GEANT_RZ_LDIR_guidance[] = {
5330  "List the contents of a directory (memory or disk).",
5331  "To list all RZ files currently open, type 'LD //'." };
5332 static KmCommand _GEANT_RZ_LDIR = { &_GEANT_RZ_PURGE, "/GEANT/RZ/LDIR",
5333  "LDIR", 0, 2, 2, 0, _GEANT_RZ_LDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
5334  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_LDIR_guidance, 0, (char**)0, 0,
5335  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5336  
5337 static KmParameter _GEANT_RZ_OUT_OBJECT = { "OBJECT", 6, "Structure name",
5338  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5339  KmTYPE_CHAR,  (void*)0 };
5340 static KmParInt    _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5341  (char*)0, 0 };
5342 static KmParameter _GEANT_RZ_OUT_IDVERS = { "IDVERS", 6, "Version number",
5343  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5344  &_GEANT_RZ_OUT_IDVERS_type };
5345 static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5346 static KmParameter _GEANT_RZ_OUT_CHOPT = { "CHOPT", 5, "Option", " ",
5347  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5348  &_GEANT_RZ_OUT_CHOPT_type };
5349 static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
5350  &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
5351 static char *_GEANT_RZ_OUT_guidance[] = {
5352  "Write data structure identified by OBJECT,IDVERS to RZ file.",
5353  "  MATE write JMATE structure", "  TMED write JTMED structure",
5354  "  VOLU write JVOLUM structure", "  ROTM write JROTM structure",
5355  "  SETS write JSET  structure", "  PART write JPART structure",
5356  "  SCAN write LSCAN structure", "  INIT write all above data structures" };
5357 static KmCommand _GEANT_RZ_OUT = { &_GEANT_RZ_LDIR, "/GEANT/RZ/OUT", "OUT", 0,
5358  2, 3, 1, _GEANT_RZ_OUT_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
5359  (pCharFunc*)0, 9, _GEANT_RZ_OUT_guidance, 0, (char**)0, 0, (char**)0, 0,
5360  (char**)0, (char*)0, (int*)0 };
5361  
5362 static KmParameter _GEANT_RZ_IN_OBJECT = { "OBJECT", 6, "Structure name",
5363  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5364  KmTYPE_CHAR,  (void*)0 };
5365 static KmParInt    _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
5366  (char*)0, 0 };
5367 static KmParameter _GEANT_RZ_IN_IDVERS = { "IDVERS", 6, "Version number", "1",
5368  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5369  &_GEANT_RZ_IN_IDVERS_type };
5370 static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5371 static KmParameter _GEANT_RZ_IN_CHOPT = { "CHOPT", 5, "Option", " ", (char*)0,
5372  20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5373  &_GEANT_RZ_IN_CHOPT_type };
5374 static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
5375  &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
5376 static char *_GEANT_RZ_IN_guidance[] = {
5377  "Read data structure identified by OBJECT,IDVERS into memory.",
5378  "  MATE read JMATE structure", "  TMED read JTMED structure",
5379  "  VOLU read JVOLUM structure", "  ROTM read JROTM structure",
5380  "  SETS read JSET  structure", "  PART read JPART structure",
5381  "  SCAN read LSCAN structure", "  INIT read all above data structures" };
5382 static KmCommand _GEANT_RZ_IN = { &_GEANT_RZ_OUT, "/GEANT/RZ/IN", "IN", 0, 2,
5383  3, 1, _GEANT_RZ_IN_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
5384  (pCharFunc*)0, 9, _GEANT_RZ_IN_guidance, 0, (char**)0, 0, (char**)0, 0,
5385  (char**)0, (char*)0, (int*)0 };
5386  
5387 static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
5388  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5389  (void*)0 };
5390 static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5391 static KmParameter _GEANT_RZ_CDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
5392  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5393  &_GEANT_RZ_CDIR_CHOPT_type };
5394 static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
5395  &_GEANT_RZ_CDIR_CHOPT };
5396 static char *_GEANT_RZ_CDIR_guidance[] = {
5397  "Change or print the current directory.",
5398  " Ex.  CD dir1         ; make DIR1 the new CWD",
5399  "      CD //file1/dir2 ; make //FILE1/DIR2 the new CWD",
5400  "      CD              ; print the name of the CWD" };
5401 static KmCommand _GEANT_RZ_CDIR = { &_GEANT_RZ_IN, "/GEANT/RZ/CDIR", "CDIR",
5402  0, 2, 2, 0, _GEANT_RZ_CDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
5403  (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_CDIR_guidance, 0, (char**)0, 0,
5404  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5405  
5406 static KmParameter _GEANT_RZ_MDIR_CHDIR = { "CHDIR", 5, "Directory name",
5407  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
5408  KmTYPE_CHAR,  (void*)0 };
5409 static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
5410 static KmParameter _GEANT_RZ_MDIR_CHOPT = { "CHOPT", 5, "Options", " ",
5411  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
5412  &_GEANT_RZ_MDIR_CHOPT_type };
5413 static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
5414  &_GEANT_RZ_MDIR_CHOPT };
5415 static char *_GEANT_RZ_MDIR_guidance[] = {
5416  "To create a new RZ directory below the current directory.", "with",
5417  " RZTAGS(1)='Object'", " RZTAGS(2)='Idvers-NR '" };
5418 static KmCommand _GEANT_RZ_MDIR = { &_GEANT_RZ_CDIR, "/GEANT/RZ/MDIR", "MDIR",
5419  0, 2, 2, 1, _GEANT_RZ_MDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
5420  (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_MDIR_guidance, 0, (char**)0, 0,
5421  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5422  
5423 static KmParInt    _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
5424  (char*)0, 0 };
5425 static KmParameter _GEANT_RZ_REND_LUNRZ = { "LUNRZ", 5, "Logical unit number",
5426  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5427  &_GEANT_RZ_REND_LUNRZ_type };
5428 static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
5429 static char *_GEANT_RZ_REND_guidance[] = {
5430  "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
5431  " CALL GREND(LUNRZ)" };
5432 static KmCommand _GEANT_RZ_REND = { &_GEANT_RZ_MDIR, "/GEANT/RZ/REND", "REND",
5433  0, 2, 1, 1, _GEANT_RZ_REND_parameters, 0, 0, gxrz_, (IntFunc*)0,
5434  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_REND_guidance, 0, (char**)0, 0,
5435  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5436  
5437 static KmParInt    _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
5438  (char*)0, 0 };
5439 static KmParameter _GEANT_RZ_FILE_LUN = { "LUN", 3, "Logical unit number",
5440  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5441  &_GEANT_RZ_FILE_LUN_type };
5442 static KmParameter _GEANT_RZ_FILE_FNAME = { "FNAME", 5, "File name", (char*)0,
5443  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5444  (void*)0 };
5445 static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
5446 static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5447  (char*)0 };
5448 static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
5449  (int*)0, (int*)0 };
5450 static KmParameter _GEANT_RZ_FILE_CHOPT = { "CHOPT", 5, "Options", " ",
5451  (char*)0, 8, 4, _GEANT_RZ_FILE_CHOPT_range, 4, _GEANT_RZ_FILE_CHOPT_range,
5452  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_RZ_FILE_CHOPT_type };
5453 static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
5454  &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
5455 static char *_GEANT_RZ_FILE_guidance[] = { "Open a GRZ file.",
5456  " CHOPT=' ' readonly mode", " CHOPT='U' update mode",
5457  " CHOPT='N' create new file",
5458  " CHOPT='I' Read all structures from existing file",
5459  " CHOPT='O' Write all structures on file" };
5460 static KmCommand _GEANT_RZ_FILE = { &_GEANT_RZ_REND, "/GEANT/RZ/FILE", "FILE",
5461  0, 2, 3, 2, _GEANT_RZ_FILE_parameters, 0, 0, gxrz_, (IntFunc*)0,
5462  (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_RZ_FILE_guidance, 0, (char**)0, 0,
5463  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5464  
5465 static KmParInt    _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
5466  (char*)0, 0 };
5467 static KmParameter _GEANT_RZ_PQUEST_IQ1 = { "IQ1", 3,
5468  "Lower limit for IQ index", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5469  (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ1_type };
5470 static KmParInt    _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
5471  (char*)0, 0 };
5472 static KmParameter _GEANT_RZ_PQUEST_IQ2 = { "IQ2", 3,
5473  "Upper limit for IQ index", "20", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5474  (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ2_type };
5475 static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
5476  &_GEANT_RZ_PQUEST_IQ2 };
5477 static char *_GEANT_RZ_PQUEST_guidance[] = {
5478  "Print the array IQUEST in /QUEST/." };
5479 static KmCommand _GEANT_RZ_PQUEST = { &_GEANT_RZ_FILE, "/GEANT/RZ/PQUEST",
5480  "PQUEST", 0, 2, 2, 0, _GEANT_RZ_PQUEST_parameters, 0, 0, gxrz_, (IntFunc*)0,
5481  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PQUEST_guidance, 0, (char**)0, 0,
5482  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5483  
5484 static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
5485 static KmMenu _GEANT_RZ = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
5486  &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance, 0, (char**)0, 0, (char**)0 };
5487  
5488 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
5489  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5490  
5491   klnkmenu( &_GEANT, 950303 );
5492 }
5493  
5494  
5495 #ifdef F77_LCASE
5496 #  define gkscan_ gkscan
5497 #  define gxscan_ gxscan
5498 #endif
5499  
5500 #ifdef F77_UCASE
5501 #  define gkscan_ GKSCAN
5502 #  define gxscan_ GXSCAN
5503 #endif
5504  
5505 #ifdef IBM370
5506 #  pragma linkage(GKSCAN,FORTRAN)
5507 #  pragma linkage(GXSCAN,FORTRAN)
5508 #endif
5509  
5510 extern void gkscan_();
5511 extern void gxscan_();
5512  
5513 void gkscan_()
5514 {
5515  
5516 static KmParInt    _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
5517  (char*)0, (char*)0, 0 };
5518 static KmParameter _GEANT_SCAN_HSCAN_IDPHI = { "IDPHI", 5,
5519  "Histogram/phi identifier", "1000", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5520  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_HSCAN_IDPHI_type };
5521 static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
5522  "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5523  (void*)0 };
5524 static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
5525  };
5526 static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5527  (char*)0, (char*)0, (char*)0 };
5528 static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
5529  _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
5530 static KmParameter _GEANT_SCAN_HSCAN_CHOPT = { "CHOPT", 5, "List of options",
5531  "OPX", (char*)0, 8, 6, _GEANT_SCAN_HSCAN_CHOPT_range, 6,
5532  _GEANT_SCAN_HSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
5533  &_GEANT_SCAN_HSCAN_CHOPT_type };
5534 static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
5535  &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
5536  };
5537 static char *_GEANT_SCAN_HSCAN_guidance[] = {
5538  "Generates and plots an histogram of physics quantities such as",
5539  "the total number of radiation lengths or interaction lengths",
5540  "as a function of the SCAN parameter TETA for a given value of PHI.",
5541  "  CHOPT='O' histogram is generated at Exit  of VOLUME.",
5542  "  CHOPT='I' histogram is generated at Entry of VOLUME.",
5543  "  CHOPT='X' radiation lengths", "  CHOPT='L' Interaction lengths",
5544  "  CHOPT='P' Plot the histogram", "If VOLUME='XXXX' Mother volume is used.",
5545  "The histogram identifier IDPHI is used to also identify which",
5546  "PHI division to plot: IPHI=MOD(IDPHI,1000).",
5547  "If IPHI=0, then all PHI divisions are generated (not plotted)",
5548  "with histogram identifiers IDPHI+PHI division number." };
5549 static KmCommand _GEANT_SCAN_HSCAN = {  (KmCommand*)0, "/GEANT/SCAN/HSCAN",
5550  "HSCAN", 0, 2, 3, 1, _GEANT_SCAN_HSCAN_parameters, 0, 0, gxscan_,
5551  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13, _GEANT_SCAN_HSCAN_guidance,
5552  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5553  
5554 static KmParInt    _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
5555  (char*)0, 0 };
5556 static KmParameter _GEANT_SCAN_LSCAN_ID = { "ID", 2, "Lego plot identifier",
5557  "2000", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5558  &_GEANT_SCAN_LSCAN_ID_type };
5559 static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
5560  "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
5561  (void*)0 };
5562 static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
5563  };
5564 static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
5565  (char*)0, (char*)0, (char*)0 };
5566 static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
5567  _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
5568 static KmParameter _GEANT_SCAN_LSCAN_CHOPT = { "CHOPT", 5, "List of options",
5569  "OPX", (char*)0, 8, 6, _GEANT_SCAN_LSCAN_CHOPT_range, 6,
5570  _GEANT_SCAN_LSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
5571  &_GEANT_SCAN_LSCAN_CHOPT_type };
5572 static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
5573  &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
5574 static char *_GEANT_SCAN_LSCAN_guidance[] = {
5575  "Generates and plot a table of physics quantities such as",
5576  "the total number of radiation lengths or interaction lengths",
5577  "in function of the SCAN parameters TETA,PHI.",
5578  "  CHOPT='O' table is generated at Exit  of VOLUME.",
5579  "  CHOPT='I' table is generated at Entry of VOLUME.",
5580  "  CHOPT='X' radiation lengths", "  CHOPT='L' Interaction lengths",
5581  "  CHOPT='P' Plot the table", "If VOLUME='XXXX' Mother volume is used." };
5582 static KmCommand _GEANT_SCAN_LSCAN = { &_GEANT_SCAN_HSCAN,
5583  "/GEANT/SCAN/LSCAN", "LSCAN", 0, 2, 3, 1, _GEANT_SCAN_LSCAN_parameters, 0, 0,
5584  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
5585  _GEANT_SCAN_LSCAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5586  (char*)0, (int*)0 };
5587  
5588 static KmParInt    _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
5589 static KmParameter _GEANT_SCAN_PCUTS_IPARAM = { "IPARAM", 6,
5590  "Parametrization Flag", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
5591  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PCUTS_IPARAM_type };
5592 static KmParReal   _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
5593  (char*)0, (char*)0, 0 };
5594 static KmParameter _GEANT_SCAN_PCUTS_PCUTGA = { "PCUTGA", 6,
5595  "Parametrization Cut for gammas", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5596  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTGA_type };
5597 static KmParReal   _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
5598  (char*)0, (char*)0, 0 };
5599 static KmParameter _GEANT_SCAN_PCUTS_PCUTEL = { "PCUTEL", 6,
5600  "Parametrization Cut for electrons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5601  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTEL_type };
5602 static KmParReal   _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
5603  (char*)0, (char*)0, 0 };
5604 static KmParameter _GEANT_SCAN_PCUTS_PCUTHA = { "PCUTHA", 6,
5605  "Parametrization Cut for charged hadrons", (char*)0, (char*)0, 12, 0,
5606  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5607  &_GEANT_SCAN_PCUTS_PCUTHA_type };
5608 static KmParReal   _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
5609  (char*)0, (char*)0, 0 };
5610 static KmParameter _GEANT_SCAN_PCUTS_PCUTNE = { "PCUTNE", 6,
5611  "Parametrization Cut for neutral hadrons", (char*)0, (char*)0, 12, 0,
5612  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5613  &_GEANT_SCAN_PCUTS_PCUTNE_type };
5614 static KmParReal   _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
5615  (char*)0, (char*)0, 0 };
5616 static KmParameter _GEANT_SCAN_PCUTS_PCUTMU = { "PCUTMU", 6,
5617  "Parametrization Cut for muons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5618  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTMU_type };
5619 static KmParameter *_GEANT_SCAN_PCUTS_parameters[] = {
5620  &_GEANT_SCAN_PCUTS_IPARAM, &_GEANT_SCAN_PCUTS_PCUTGA,
5621  &_GEANT_SCAN_PCUTS_PCUTEL, &_GEANT_SCAN_PCUTS_PCUTHA,
5622  &_GEANT_SCAN_PCUTS_PCUTNE, &_GEANT_SCAN_PCUTS_PCUTMU };
5623 static char *_GEANT_SCAN_PCUTS_guidance[] = {
5624  "Control parametrization at tracking time.",
5625  "     IPARAM=0       No parametrization is performed",
5626  "     IPARAM=1       Parametrization is performed",
5627  "If parametrization is active and a particle falls below its",
5628  "parametrization cut, then the particle will be replaced by",
5629  "a parametrized shower which will be tracked in the SCAN", "geometry." };
5630 static KmCommand _GEANT_SCAN_PCUTS = { &_GEANT_SCAN_LSCAN,
5631  "/GEANT/SCAN/PCUTS", "PCUTS", 0, 2, 6, 0, _GEANT_SCAN_PCUTS_parameters, 0, 0,
5632  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
5633  _GEANT_SCAN_PCUTS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5634  (char*)0, (int*)0 };
5635  
5636 static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
5637 static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
5638 static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
5639  _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
5640 static KmParameter _GEANT_SCAN_STURN_CHOPT = { "CHOPT", 5,
5641  "SCAN mode setting", (char*)0, (char*)0, 8, 3, _GEANT_SCAN_STURN_CHOPT_range,
5642  3, _GEANT_SCAN_STURN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
5643  &_GEANT_SCAN_STURN_CHOPT_type };
5644 static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
5645  &_GEANT_SCAN_STURN_CHOPT };
5646 static char *_GEANT_SCAN_STURN_guidance[] = {
5647  "Switch on/off SCAN mode. If SCAN mode is on, SCAN geantinos",
5648  "are generated and tracked to fill (or complete) the current",
5649  "scan data structure. If SCAN mode is off, normal kinematics",
5650  "generation and tracking will take place. If INIT is given,",
5651  "the current SCAN data structure (if any) will be dropped",
5652  "and SCAN mode will be turned on." };
5653 static KmCommand _GEANT_SCAN_STURN = { &_GEANT_SCAN_PCUTS,
5654  "/GEANT/SCAN/STURN", "STURN", 0, 2, 1, 1, _GEANT_SCAN_STURN_parameters, 0, 0,
5655  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
5656  _GEANT_SCAN_STURN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5657  (char*)0, (int*)0 };
5658  
5659 static KmParReal   _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
5660  (char*)0, (char*)0, 0 };
5661 static KmParameter _GEANT_SCAN_SFACTORS_FACTX0 = { "FACTX0", 6,
5662  "Scale factor for SX0", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5663  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTX0_type };
5664 static KmParReal   _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
5665  (char*)0, (char*)0, 0 };
5666 static KmParameter _GEANT_SCAN_SFACTORS_FACTL = { "FACTL", 5,
5667  "Scale factor for SL", "1000.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5668  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTL_type };
5669 static KmParReal   _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
5670  (char*)0, (char*)0, 0 };
5671 static KmParameter _GEANT_SCAN_SFACTORS_FACTR = { "FACTR", 5,
5672  "Scale factor for R", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5673  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTR_type };
5674 static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
5675  &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
5676  &_GEANT_SCAN_SFACTORS_FACTR };
5677 static char *_GEANT_SCAN_SFACTORS_guidance[] = {
5678  "Set scale factors for SX0,SL and R. The given scale factors must be",
5679  "such that:", "  SX0*FACTX0 < 2**15-1 (32767)",
5680  "  SL*FACTL   < 2**10-1 (1023)", "  SR*FACTR   < 2**17-1 (131071)" };
5681 static KmCommand _GEANT_SCAN_SFACTORS = { &_GEANT_SCAN_STURN,
5682  "/GEANT/SCAN/SFACTORS", "SFACTORS", 0, 2, 3, 3,
5683  _GEANT_SCAN_SFACTORS_parameters, 0, 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0,
5684  (pCharFunc*)0, 5, _GEANT_SCAN_SFACTORS_guidance, 0, (char**)0, 0, (char**)0,
5685  0, (char**)0, (char*)0, (int*)0 };
5686  
5687 static KmParReal   _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
5688  (char*)0, (char*)0, 0 };
5689 static KmParameter _GEANT_SCAN_VERTEX_VX = { "VX", 2, "Scan X-origin", "0.",
5690  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5691  &_GEANT_SCAN_VERTEX_VX_type };
5692 static KmParReal   _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
5693  (char*)0, (char*)0, 0 };
5694 static KmParameter _GEANT_SCAN_VERTEX_VY = { "VY", 2, "Scan Y-origin", "0.",
5695  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5696  &_GEANT_SCAN_VERTEX_VY_type };
5697 static KmParReal   _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
5698  (char*)0, (char*)0, 0 };
5699 static KmParameter _GEANT_SCAN_VERTEX_VZ = { "VZ", 2, "Scan Z-origin", "0.",
5700  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5701  &_GEANT_SCAN_VERTEX_VZ_type };
5702 static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
5703  &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
5704 static char *_GEANT_SCAN_VERTEX_guidance[] = {
5705  "All Geantinos tracked will start from position VX,VY,VZ." };
5706 static KmCommand _GEANT_SCAN_VERTEX = { &_GEANT_SCAN_SFACTORS,
5707  "/GEANT/SCAN/VERTEX", "VERTEX", 0, 2, 3, 3, _GEANT_SCAN_VERTEX_parameters, 0,
5708  0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
5709  _GEANT_SCAN_VERTEX_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5710  (char*)0, (int*)0 };
5711  
5712 static KmParameter _GEANT_SCAN_SLIST_LIST = { "LIST", 4,
5713  "List of master volumes", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
5714  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
5715 static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
5716  };
5717 static char *_GEANT_SCAN_SLIST_guidance[] = {
5718  "Only boundary crossings of volumes given in LIST will be seen",
5719  "in the SCAN geometry. If no parameters are given, the current",
5720  "SCAN volumes will be listed. If a full stop (.) is given, the list",
5721  "of scan volumes will be erased." };
5722 static KmCommand _GEANT_SCAN_SLIST = { &_GEANT_SCAN_VERTEX,
5723  "/GEANT/SCAN/SLIST", "SLIST", 0, 2, 1, 1, _GEANT_SCAN_SLIST_parameters, 0, 0,
5724  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
5725  _GEANT_SCAN_SLIST_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5726  (char*)0, (int*)0 };
5727  
5728 static KmParInt    _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
5729  (char*)0, (char*)0, 0 };
5730 static KmParameter _GEANT_SCAN_TETA_NTETA = { "NTETA", 5,
5731  "Number of TETA divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5732  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_NTETA_type };
5733 static KmParReal   _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
5734  (char*)0, (char*)0, 0 };
5735 static KmParameter _GEANT_SCAN_TETA_TETMIN = { "TETMIN", 6,
5736  "Minimum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
5737  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMIN_type };
5738 static KmParReal   _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
5739  (char*)0, (char*)0, 0 };
5740 static KmParameter _GEANT_SCAN_TETA_TETMAX = { "TETMAX", 6,
5741  "Maximum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
5742  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMAX_type };
5743 static KmParInt    _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
5744 static KmParameter _GEANT_SCAN_TETA_DIVTYP = { "DIVTYP", 6,
5745  "Type of TETA division", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
5746  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_DIVTYP_type };
5747 static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
5748  &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
5749  };
5750 static char *_GEANT_SCAN_TETA_guidance[] = {
5751  "To specify number of divisions along TETA.",
5752  "If DIVTYP=1 divisions in pseudo-rapidity ETA.",
5753  "If DIVTYP=2 divisions in degrees following the THETA angle.",
5754  "If DIVTYP=3 divisions in cos(TETA).",
5755  "If no parameter is given, the current values of the parameters",
5756  "are displayed." };
5757 static KmCommand _GEANT_SCAN_TETA = { &_GEANT_SCAN_SLIST, "/GEANT/SCAN/TETA",
5758  "TETA", 0, 2, 4, 1, _GEANT_SCAN_TETA_parameters, 0, 0, gxscan_, (IntFunc*)0,
5759  (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_SCAN_TETA_guidance, 0, (char**)0, 0,
5760  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5761  
5762 static KmParInt    _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
5763  (char*)0, 0 };
5764 static KmParameter _GEANT_SCAN_PHI_NPHI = { "NPHI", 4,
5765  "Number of PHI divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
5766  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PHI_NPHI_type };
5767 static KmParReal   _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
5768  0 };
5769 static KmParameter _GEANT_SCAN_PHI_PHIMIN = { "PHIMIN", 6,
5770  "Minimum PHI in degrees", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5771  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMIN_type };
5772 static KmParReal   _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
5773  0 };
5774 static KmParameter _GEANT_SCAN_PHI_PHIMAX = { "PHIMAX", 6,
5775  "Maximum PHI in degrees", "360.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5776  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMAX_type };
5777 static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
5778  &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
5779 static char *_GEANT_SCAN_PHI_guidance[] = {
5780  "To specify number of divisions along PHI. If no parameter is",
5781  "given, the current values of the parameters are displayed." };
5782 static KmCommand _GEANT_SCAN_PHI = { &_GEANT_SCAN_TETA, "/GEANT/SCAN/PHI",
5783  "PHI", 0, 2, 3, 1, _GEANT_SCAN_PHI_parameters, 0, 0, gxscan_, (IntFunc*)0,
5784  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_SCAN_PHI_guidance, 0, (char**)0, 0,
5785  (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5786  
5787 static char *_GEANT_SCAN_guidance[] = {
5788  "To define parameters for the SCAN geometry. If the routine GUSTEP",
5789  "and GUKINE are properly instrumented (see examples in GEANX),",
5790  "when the TRI command is entered NTETA Geantinos will be",
5791  "tracked through the real detector starting at the vertex position",
5792  "defined by the command vertex. A simplified version of the geometry",
5793  "is automatically generated in (ETA,PHI) or (THETA,PHI) following",
5794  "the option given in the command TETA. The data structure LSCAN",
5795  "generated may be saved on an RZ file for subsequent processing.",
5796  "This data structure may be used for fast parametrization techniques." };
5797 static KmMenu _GEANT_SCAN = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/SCAN", "SCAN",
5798  2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance, 0, (char**)0, 0, (char**)0 };
5799  
5800 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
5801  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
5802  
5803   klnkmenu( &_GEANT, 950303 );
5804 }
5805  
5806  
5807 #ifdef F77_LCASE
5808 #  define gkphys_ gkphys
5809 #  define gxphys_ gxphys
5810 #endif
5811  
5812 #ifdef F77_UCASE
5813 #  define gkphys_ GKPHYS
5814 #  define gxphys_ GXPHYS
5815 #endif
5816  
5817 #ifdef IBM370
5818 #  pragma linkage(GKPHYS,FORTRAN)
5819 #  pragma linkage(GXPHYS,FORTRAN)
5820 #endif
5821  
5822 extern void gkphys_();
5823 extern void gxphys_();
5824  
5825 void gkphys_()
5826 {
5827  
5828 static char *_GEANT_PHYSICS_PHYSI_guidance[] = {
5829  "Call the GEANT initialisation routine GPHYSI to recompute",
5830  "the tables of cross-sections and energy loss. This command",
5831  "must be invoked after CUTS, LOSS or ERAN commands." };
5832 static KmCommand _GEANT_PHYSICS_PHYSI = {  (KmCommand*)0,
5833  "/GEANT/PHYSICS/PHYSI", "PHYSI", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxphys_,
5834  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_PHYSICS_PHYSI_guidance,
5835  0, (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
5836  
5837 static KmParInt    _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
5838  (char*)0, (char*)0, 0 };
5839 static KmParameter _GEANT_PHYSICS_DRPRT_IPART = { "IPART", 5,
5840  "GEANT particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
5841  (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IPART_type };
5842 static KmParInt    _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
5843  (char*)0, (char*)0, 0 };
5844 static KmParameter _GEANT_PHYSICS_DRPRT_IMATE = { "IMATE", 5,
5845  "GEANT material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
5846  (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IMATE_type };
5847 static KmParReal   _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
5848  (char*)0, (char*)0, 0 };
5849 static KmParameter _GEANT_PHYSICS_DRPRT_STEP = { "STEP", 4,
5850  "step length in centimeters", (char*)0, (char*)0, 12, 0, (char**)0, 0,
5851  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_DRPRT_STEP_type };
5852 static KmParInt    _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
5853  "100", 0 };
5854 static KmParameter _GEANT_PHYSICS_DRPRT_NPOINT = { "NPOINT", 6,
5855  "number of logarithmically spaced energy points", "10", (char*)0, 4, 0,
5856  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
5857  &_GEANT_PHYSICS_DRPRT_NPOINT_type };
5858 static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
5859  &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
5860  &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
5861 static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
5862  "This routine prints the relevant parameters linked with the energy loss",
5863  "fluctuation." };
5864 static KmCommand _GEANT_PHYSICS_DRPRT = { &_GEANT_PHYSICS_PHYSI,
5865  "/GEANT/PHYSICS/DRPRT", "DRPRT", 0, 2, 4, 3, _GEANT_PHYSICS_DRPRT_parameters,
5866  0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
5867  _GEANT_PHYSICS_DRPRT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5868  (char*)0, (int*)0 };
5869  
5870 static KmParReal   _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
5871  (char*)0, (char*)0, 0 };
5872 static KmParameter _GEANT_PHYSICS_CUTS_CUTGAM = { "CUTGAM", 6,
5873  "Cut for gammas", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5874  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTGAM_type };
5875 static KmParReal   _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
5876  (char*)0, (char*)0, 0 };
5877 static KmParameter _GEANT_PHYSICS_CUTS_CUTELE = { "CUTELE", 6,
5878  "Cut for electrons", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5879  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTELE_type };
5880 static KmParReal   _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
5881  (char*)0, (char*)0, 0 };
5882 static KmParameter _GEANT_PHYSICS_CUTS_CUTHAD = { "CUTHAD", 6,
5883  "Cut for charged hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5884  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTHAD_type };
5885 static KmParReal   _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
5886  (char*)0, (char*)0, 0 };
5887 static KmParameter _GEANT_PHYSICS_CUTS_CUTNEU = { "CUTNEU", 6,
5888  "Cut for neutral hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5889  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTNEU_type };
5890 static KmParReal   _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
5891  (char*)0, (char*)0, 0 };
5892 static KmParameter _GEANT_PHYSICS_CUTS_CUTMUO = { "CUTMUO", 6,
5893  "Cut for muons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5894  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTMUO_type };
5895 static KmParReal   _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
5896  (char*)0, (char*)0, 0 };
5897 static KmParameter _GEANT_PHYSICS_CUTS_BCUTE = { "BCUTE", 5,
5898  "Cut for electron brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5899  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTE_type };
5900 static KmParReal   _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
5901  (char*)0, (char*)0, 0 };
5902 static KmParameter _GEANT_PHYSICS_CUTS_BCUTM = { "BCUTM", 5,
5903  "Cut for muon brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5904  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTM_type };
5905 static KmParReal   _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
5906  (char*)0, (char*)0, 0 };
5907 static KmParameter _GEANT_PHYSICS_CUTS_DCUTE = { "DCUTE", 5,
5908  "Cut for electron delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0,
5909  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTE_type };
5910 static KmParReal   _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
5911  (char*)0, (char*)0, 0 };
5912 static KmParameter _GEANT_PHYSICS_CUTS_DCUTM = { "DCUTM", 5,
5913  "Cut for muon delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5914  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTM_type };
5915 static KmParReal   _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
5916  (char*)0, (char*)0, 0 };
5917 static KmParameter _GEANT_PHYSICS_CUTS_PPCUTM = { "PPCUTM", 6,
5918  "Cut for e+e- pairs by muons", "0.01", (char*)0, 12, 0, (char**)0, 0,
5919  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_PPCUTM_type };
5920 static KmParReal   _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
5921  (char*)0, (char*)0, 0 };
5922 static KmParameter _GEANT_PHYSICS_CUTS_TOFMAX = { "TOFMAX", 6,
5923  "Time of flight cut", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
5924  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_TOFMAX_type };
5925 static KmParReal   _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
5926  (char*)0, (char*)0, 0 };
5927 static KmParameter _GEANT_PHYSICS_CUTS_GCUTS = { "GCUTS", 5, "5 user words",
5928  "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
5929  &_GEANT_PHYSICS_CUTS_GCUTS_type };
5930 static KmParameter *_GEANT_PHYSICS_CUTS_parameters[] = {
5931  &_GEANT_PHYSICS_CUTS_CUTGAM, &_GEANT_PHYSICS_CUTS_CUTELE,
5932  &_GEANT_PHYSICS_CUTS_CUTHAD, &_GEANT_PHYSICS_CUTS_CUTNEU,
5933  &_GEANT_PHYSICS_CUTS_CUTMUO, &_GEANT_PHYSICS_CUTS_BCUTE,
5934  &_GEANT_PHYSICS_CUTS_BCUTM, &_GEANT_PHYSICS_CUTS_DCUTE,
5935  &_GEANT_PHYSICS_CUTS_DCUTM, &_GEANT_PHYSICS_CUTS_PPCUTM,
5936  &_GEANT_PHYSICS_CUTS_TOFMAX, &_GEANT_PHYSICS_CUTS_GCUTS };
5937 static char *_GEANT_PHYSICS_CUTS_guidance[] = {
5938  "To change physics cuts. If no parameter is given, the list",
5939  "of the current cuts is printed.",
5940  " If the default values (-1.) for       BCUTE ,BCUTM ,DCUTE ,DCUTM",
5941  " are not modified, they will be set to CUTGAM,CUTGAM,CUTELE,CUTELE",
5942  " respectively.", "If one of the parameters from CUTGAM to PPCUTM included",
5943  "is modified, cross-sections and energy loss tables must be",
5944  "recomputed via the command 'PHYSI'." };
5945 static KmCommand _GEANT_PHYSICS_CUTS = { &_GEANT_PHYSICS_DRPRT,
5946  "/GEANT/PHYSICS/CUTS", "CUTS", 0, 2, 12, 0, _GEANT_PHYSICS_CUTS_parameters,
5947  0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
5948  _GEANT_PHYSICS_CUTS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5949  (char*)0, (int*)0 };
5950  
5951 static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
5952 static KmParInt    _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
5953  (char*)0, (char*)0, 0 };
5954 static KmParameter _GEANT_PHYSICS_SYNC_ISYNC = { "ISYNC", 5, "Flag ISYNC",
5955  "1", (char*)0, 8, 2, _GEANT_PHYSICS_SYNC_ISYNC_range, 2,
5956  _GEANT_PHYSICS_SYNC_ISYNC_range, (KmParFlag)0, KmTYPE_INT,
5957  &_GEANT_PHYSICS_SYNC_ISYNC_type };
5958 static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
5959  &_GEANT_PHYSICS_SYNC_ISYNC };
5960 static char *_GEANT_PHYSICS_SYNC_guidance[] = {
5961  "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
5962  "      =1 synchrotron radiation." };
5963 static KmCommand _GEANT_PHYSICS_SYNC = { &_GEANT_PHYSICS_CUTS,
5964  "/GEANT/PHYSICS/SYNC", "SYNC", 0, 2, 1, 0, _GEANT_PHYSICS_SYNC_parameters, 0,
5965  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
5966  _GEANT_PHYSICS_SYNC_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5967  (char*)0, (int*)0 };
5968  
5969 static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
5970 static KmParInt    _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
5971  (char*)0, (char*)0, 0 };
5972 static KmParameter _GEANT_PHYSICS_STRA_ISTRA = { "ISTRA", 5, "Flag ISTRA",
5973  "0", (char*)0, 8, 3, _GEANT_PHYSICS_STRA_ISTRA_range, 3,
5974  _GEANT_PHYSICS_STRA_ISTRA_range, (KmParFlag)0, KmTYPE_INT,
5975  &_GEANT_PHYSICS_STRA_ISTRA_type };
5976 static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
5977  &_GEANT_PHYSICS_STRA_ISTRA };
5978 static char *_GEANT_PHYSICS_STRA_guidance[] = {
5979  "To control energy loss fluctuation model:", " ISTRA=0 Urban model;",
5980  "      =1 PAI model;", "      =2 PAI+ASHO model (not active at the moment)."
5981  };
5982 static KmCommand _GEANT_PHYSICS_STRA = { &_GEANT_PHYSICS_SYNC,
5983  "/GEANT/PHYSICS/STRA", "STRA", 0, 2, 1, 0, _GEANT_PHYSICS_STRA_parameters, 0,
5984  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
5985  _GEANT_PHYSICS_STRA_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
5986  (char*)0, (int*)0 };
5987  
5988 static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
5989 static KmParInt    _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
5990  (char*)0, (char*)0, 0 };
5991 static KmParameter _GEANT_PHYSICS_RAYL_IRAYL = { "IRAYL", 5, "Flag IRAYL",
5992  "1", (char*)0, 8, 2, _GEANT_PHYSICS_RAYL_IRAYL_range, 2,
5993  _GEANT_PHYSICS_RAYL_IRAYL_range, (KmParFlag)0, KmTYPE_INT,
5994  &_GEANT_PHYSICS_RAYL_IRAYL_type };
5995 static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
5996  &_GEANT_PHYSICS_RAYL_IRAYL };
5997 static char *_GEANT_PHYSICS_RAYL_guidance[] = {
5998  "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
5999  "      =1 Rayleigh." };
6000 static KmCommand _GEANT_PHYSICS_RAYL = { &_GEANT_PHYSICS_STRA,
6001  "/GEANT/PHYSICS/RAYL", "RAYL", 0, 2, 1, 0, _GEANT_PHYSICS_RAYL_parameters, 0,
6002  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
6003  _GEANT_PHYSICS_RAYL_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6004  (char*)0, (int*)0 };
6005  
6006 static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
6007 static KmParInt    _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
6008  (char*)0, (char*)0, 0 };
6009 static KmParameter _GEANT_PHYSICS_PHOT_IPHOT = { "IPHOT", 5, "Flag IPHOT",
6010  "1", (char*)0, 8, 3, _GEANT_PHYSICS_PHOT_IPHOT_range, 3,
6011  _GEANT_PHYSICS_PHOT_IPHOT_range, (KmParFlag)0, KmTYPE_INT,
6012  &_GEANT_PHYSICS_PHOT_IPHOT_type };
6013 static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
6014  &_GEANT_PHYSICS_PHOT_IPHOT };
6015 static char *_GEANT_PHYSICS_PHOT_guidance[] = { "To control Photo effect.",
6016  " IPHOT=0 no photo electric effect.",
6017  "      =1 Photo effect. Electron processed.",
6018  "      =2 Photo effect. No electron stored." };
6019 static KmCommand _GEANT_PHYSICS_PHOT = { &_GEANT_PHYSICS_RAYL,
6020  "/GEANT/PHYSICS/PHOT", "PHOT", 0, 2, 1, 0, _GEANT_PHYSICS_PHOT_parameters, 0,
6021  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6022  _GEANT_PHYSICS_PHOT_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6023  (char*)0, (int*)0 };
6024  
6025 static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
6026 static KmParInt    _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
6027  (char*)0, (char*)0, 0 };
6028 static KmParameter _GEANT_PHYSICS_PFIS_IPFIS = { "IPFIS", 5, "Flag IPFIS",
6029  "1", (char*)0, 8, 3, _GEANT_PHYSICS_PFIS_IPFIS_range, 3,
6030  _GEANT_PHYSICS_PFIS_IPFIS_range, (KmParFlag)0, KmTYPE_INT,
6031  &_GEANT_PHYSICS_PFIS_IPFIS_type };
6032 static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
6033  &_GEANT_PHYSICS_PFIS_IPFIS };
6034 static char *_GEANT_PHYSICS_PFIS_guidance[] = {
6035  "To control photo fission mechanism.", " IPFIS=0 no photo fission.",
6036  "      =1 Photo fission. secondaries processed.",
6037  "      =2 Photo fission. No secondaries stored." };
6038 static KmCommand _GEANT_PHYSICS_PFIS = { &_GEANT_PHYSICS_PHOT,
6039  "/GEANT/PHYSICS/PFIS", "PFIS", 0, 2, 1, 0, _GEANT_PHYSICS_PFIS_parameters, 0,
6040  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6041  _GEANT_PHYSICS_PFIS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6042  (char*)0, (int*)0 };
6043  
6044 static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
6045 static KmParInt    _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
6046  (char*)0, (char*)0, 0 };
6047 static KmParameter _GEANT_PHYSICS_PAIR_IPAIR = { "IPAIR", 5, "Flag IPAIR",
6048  "1", (char*)0, 8, 3, _GEANT_PHYSICS_PAIR_IPAIR_range, 3,
6049  _GEANT_PHYSICS_PAIR_IPAIR_range, (KmParFlag)0, KmTYPE_INT,
6050  &_GEANT_PHYSICS_PAIR_IPAIR_type };
6051 static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
6052  &_GEANT_PHYSICS_PAIR_IPAIR };
6053 static char *_GEANT_PHYSICS_PAIR_guidance[] = {
6054  "To control pair production mechanism.", " IPAIR=0 no pair production.",
6055  "      =1 Pair production. secondaries processed.",
6056  "      =2 Pair production. No secondaries stored." };
6057 static KmCommand _GEANT_PHYSICS_PAIR = { &_GEANT_PHYSICS_PFIS,
6058  "/GEANT/PHYSICS/PAIR", "PAIR", 0, 2, 1, 0, _GEANT_PHYSICS_PAIR_parameters, 0,
6059  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6060  _GEANT_PHYSICS_PAIR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6061  (char*)0, (int*)0 };
6062  
6063 static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
6064 static KmParInt    _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
6065  (char*)0, (char*)0, 0 };
6066 static KmParameter _GEANT_PHYSICS_MUNU_IMUNU = { "IMUNU", 5, "Flag IMUNU",
6067  "1", (char*)0, 8, 3, _GEANT_PHYSICS_MUNU_IMUNU_range, 3,
6068  _GEANT_PHYSICS_MUNU_IMUNU_range, (KmParFlag)0, KmTYPE_INT,
6069  &_GEANT_PHYSICS_MUNU_IMUNU_type };
6070 static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
6071  &_GEANT_PHYSICS_MUNU_IMUNU };
6072 static char *_GEANT_PHYSICS_MUNU_guidance[] = {
6073  "To control muon nuclear interactions.",
6074  " IMUNU=0 no muon-nuclear interactions.",
6075  "      =1 Nuclear interactions. Secondaries processed.",
6076  "      =2 Nuclear interactions. Secondaries not processed." };
6077 static KmCommand _GEANT_PHYSICS_MUNU = { &_GEANT_PHYSICS_PAIR,
6078  "/GEANT/PHYSICS/MUNU", "MUNU", 0, 2, 1, 0, _GEANT_PHYSICS_MUNU_parameters, 0,
6079  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6080  _GEANT_PHYSICS_MUNU_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6081  (char*)0, (int*)0 };
6082  
6083 static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
6084 static KmParInt    _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
6085  (char*)0, (char*)0, 0 };
6086 static KmParameter _GEANT_PHYSICS_MULS_IMULS = { "IMULS", 5, "Flag IMULS",
6087  "1", (char*)0, 8, 4, _GEANT_PHYSICS_MULS_IMULS_range, 4,
6088  _GEANT_PHYSICS_MULS_IMULS_range, (KmParFlag)0, KmTYPE_INT,
6089  &_GEANT_PHYSICS_MULS_IMULS_type };
6090 static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
6091  &_GEANT_PHYSICS_MULS_IMULS };
6092 static char *_GEANT_PHYSICS_MULS_guidance[] = {
6093  "To control multiple scattering.", " IMULS=0 no multiple scattering.",
6094  "      =1 Moliere or Coulomb scattering.",
6095  "      =2 Moliere or Coulomb scattering.", "      =3 Gaussian scattering." };
6096 static KmCommand _GEANT_PHYSICS_MULS = { &_GEANT_PHYSICS_MUNU,
6097  "/GEANT/PHYSICS/MULS", "MULS", 0, 2, 1, 0, _GEANT_PHYSICS_MULS_parameters, 0,
6098  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
6099  _GEANT_PHYSICS_MULS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6100  (char*)0, (int*)0 };
6101  
6102 static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
6103 static KmParInt    _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
6104  (char*)0, (char*)0, 0 };
6105 static KmParameter _GEANT_PHYSICS_LOSS_ILOSS = { "ILOSS", 5, "Flag ILOSS",
6106  "2", (char*)0, 8, 5, _GEANT_PHYSICS_LOSS_ILOSS_range, 5,
6107  _GEANT_PHYSICS_LOSS_ILOSS_range, (KmParFlag)0, KmTYPE_INT,
6108  &_GEANT_PHYSICS_LOSS_ILOSS_type };
6109 static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
6110  &_GEANT_PHYSICS_LOSS_ILOSS };
6111 static char *_GEANT_PHYSICS_LOSS_guidance[] = { "To control energy loss.",
6112  " ILOSS=0 no energy loss;", "      =1 restricted energy loss fluctuations;",
6113  "      =2 complete energy loss fluctuations;", "      =3 same as 1;",
6114  "      =4 no energy loss fluctuations.",
6115  "If the value ILOSS is changed, then cross-sections and energy loss",
6116  "tables must be recomputed via the command 'PHYSI'." };
6117 static KmCommand _GEANT_PHYSICS_LOSS = { &_GEANT_PHYSICS_MULS,
6118  "/GEANT/PHYSICS/LOSS", "LOSS", 0, 2, 1, 0, _GEANT_PHYSICS_LOSS_parameters, 0,
6119  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
6120  _GEANT_PHYSICS_LOSS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6121  (char*)0, (int*)0 };
6122  
6123 static KmParInt    _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
6124  (char*)0, (char*)0, 0 };
6125 static KmParameter _GEANT_PHYSICS_LABS_LABS = { "LABS", 4, "Flag LABS", "0",
6126  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
6127  &_GEANT_PHYSICS_LABS_LABS_type };
6128 static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
6129  &_GEANT_PHYSICS_LABS_LABS };
6130 static char *_GEANT_PHYSICS_LABS_guidance[] = {
6131  "To control absorbtion of Cerenkov photons:",
6132  "    LABS=0 no absorbtion of photons;", "    LABS=1 absorbtion of photons;" };
6133 static KmCommand _GEANT_PHYSICS_LABS = { &_GEANT_PHYSICS_LOSS,
6134  "/GEANT/PHYSICS/LABS", "LABS", 0, 2, 1, 0, _GEANT_PHYSICS_LABS_parameters, 0,
6135  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
6136  _GEANT_PHYSICS_LABS_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6137  (char*)0, (int*)0 };
6138  
6139 static KmParInt    _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
6140  (char*)0, (char*)0, 0 };
6141 static KmParameter _GEANT_PHYSICS_HADR_IHADR = { "IHADR", 5, "Flag IHADR",
6142  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
6143  &_GEANT_PHYSICS_HADR_IHADR_type };
6144 static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
6145  &_GEANT_PHYSICS_HADR_IHADR };
6146 static char *_GEANT_PHYSICS_HADR_guidance[] = {
6147  "To control hadronic interactions.", " IHADR=0 no hadronic interactions.",
6148  "      =1 Hadronic interactions. secondaries processed.",
6149  "      =2 Hadronic interactions. No secondaries stored." };
6150 static KmCommand _GEANT_PHYSICS_HADR = { &_GEANT_PHYSICS_LABS,
6151  "/GEANT/PHYSICS/HADR", "HADR", 0, 2, 1, 0, _GEANT_PHYSICS_HADR_parameters, 0,
6152  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6153  _GEANT_PHYSICS_HADR_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6154  (char*)0, (int*)0 };
6155  
6156 static KmParReal   _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
6157  (char*)0, (char*)0, 0 };
6158 static KmParameter _GEANT_PHYSICS_ERAN_EKMIN = { "EKMIN", 5,
6159  "Minimum energy of the tables", "1E-5", (char*)0, 12, 0, (char**)0, 0,
6160  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMIN_type };
6161 static KmParReal   _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
6162  (char*)0, (char*)0, 0 };
6163 static KmParameter _GEANT_PHYSICS_ERAN_EKMAX = { "EKMAX", 5,
6164  "Maximum energy of the tables", "1E+4", (char*)0, 12, 0, (char**)0, 0,
6165  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMAX_type };
6166 static KmParInt    _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
6167  0 };
6168 static KmParameter _GEANT_PHYSICS_ERAN_NEKBIN = { "NEKBIN", 6,
6169  "Number of bins in the tables", "90", (char*)0, 4, 0, (char**)0, 0,
6170  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_ERAN_NEKBIN_type };
6171 static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
6172  &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
6173  &_GEANT_PHYSICS_ERAN_NEKBIN };
6174 static char *_GEANT_PHYSICS_ERAN_guidance[] = {
6175  "To define the range and binning of internal tables." };
6176 static KmCommand _GEANT_PHYSICS_ERAN = { &_GEANT_PHYSICS_HADR,
6177  "/GEANT/PHYSICS/ERAN", "ERAN", 0, 2, 3, 0, _GEANT_PHYSICS_ERAN_parameters, 0,
6178  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
6179  _GEANT_PHYSICS_ERAN_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6180  (char*)0, (int*)0 };
6181  
6182 static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
6183 static KmParInt    _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
6184  (char*)0, (char*)0, 0 };
6185 static KmParameter _GEANT_PHYSICS_DRAY_IDRAY = { "IDRAY", 5, "Flag IDRAY",
6186  "1", (char*)0, 8, 3, _GEANT_PHYSICS_DRAY_IDRAY_range, 3,
6187  _GEANT_PHYSICS_DRAY_IDRAY_range, (KmParFlag)0, KmTYPE_INT,
6188  &_GEANT_PHYSICS_DRAY_IDRAY_type };
6189 static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
6190  &_GEANT_PHYSICS_DRAY_IDRAY };
6191 static char *_GEANT_PHYSICS_DRAY_guidance[] = {
6192  "To control delta rays mechanism.", " IDRAY=0 no delta rays.",
6193  "      =1 Delta rays. secondaries processed.",
6194  "      =2 Delta rays. No secondaries stored." };
6195 static KmCommand _GEANT_PHYSICS_DRAY = { &_GEANT_PHYSICS_ERAN,
6196  "/GEANT/PHYSICS/DRAY", "DRAY", 0, 2, 1, 0, _GEANT_PHYSICS_DRAY_parameters, 0,
6197  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6198  _GEANT_PHYSICS_DRAY_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6199  (char*)0, (int*)0 };
6200  
6201 static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
6202 static KmParInt    _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
6203  (char*)0, (char*)0, 0 };
6204 static KmParameter _GEANT_PHYSICS_DCAY_IDCAY = { "IDCAY", 5, "Flag IDCAY",
6205  "1", (char*)0, 8, 3, _GEANT_PHYSICS_DCAY_IDCAY_range, 3,
6206  _GEANT_PHYSICS_DCAY_IDCAY_range, (KmParFlag)0, KmTYPE_INT,
6207  &_GEANT_PHYSICS_DCAY_IDCAY_type };
6208 static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
6209  &_GEANT_PHYSICS_DCAY_IDCAY };
6210 static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
6211  " IDCAY=0 no decays.", "      =1 Decays. secondaries processed.",
6212  "      =2 Decays. No secondaries stored." };
6213 static KmCommand _GEANT_PHYSICS_DCAY = { &_GEANT_PHYSICS_DRAY,
6214  "/GEANT/PHYSICS/DCAY", "DCAY", 0, 2, 1, 0, _GEANT_PHYSICS_DCAY_parameters, 0,
6215  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6216  _GEANT_PHYSICS_DCAY_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6217  (char*)0, (int*)0 };
6218  
6219 static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
6220 static KmParInt    _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
6221  (char*)0, (char*)0, 0 };
6222 static KmParameter _GEANT_PHYSICS_COMP_ICOMP = { "ICOMP", 5, "Flag ICOMP",
6223  "1", (char*)0, 8, 3, _GEANT_PHYSICS_COMP_ICOMP_range, 3,
6224  _GEANT_PHYSICS_COMP_ICOMP_range, (KmParFlag)0, KmTYPE_INT,
6225  &_GEANT_PHYSICS_COMP_ICOMP_type };
6226 static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
6227  &_GEANT_PHYSICS_COMP_ICOMP };
6228 static char *_GEANT_PHYSICS_COMP_guidance[] = {
6229  "To control Compton scattering", " ICOMP=0 no Compton",
6230  "      =1 Compton. Electron processed.",
6231  "      =2 Compton. No electron stored." };
6232 static KmCommand _GEANT_PHYSICS_COMP = { &_GEANT_PHYSICS_DCAY,
6233  "/GEANT/PHYSICS/COMP", "COMP", 0, 2, 1, 0, _GEANT_PHYSICS_COMP_parameters, 0,
6234  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6235  _GEANT_PHYSICS_COMP_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6236  (char*)0, (int*)0 };
6237  
6238 static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
6239 static KmParInt    _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
6240  (char*)0, (char*)0, 0 };
6241 static KmParameter _GEANT_PHYSICS_CKOV_ICKOV = { "ICKOV", 5, "Flag ICKOV",
6242  "0", (char*)0, 8, 3, _GEANT_PHYSICS_CKOV_ICKOV_range, 3,
6243  _GEANT_PHYSICS_CKOV_ICKOV_range, (KmParFlag)0, KmTYPE_INT,
6244  &_GEANT_PHYSICS_CKOV_ICKOV_type };
6245 static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
6246  &_GEANT_PHYSICS_CKOV_ICKOV };
6247 static char *_GEANT_PHYSICS_CKOV_guidance[] = {
6248  "To control Cerenkov production", " ICOMP=0 no Cerenkov;",
6249  "      =1 Cerenkov;", "      =2 Cerenkov with primary stopped at each step."
6250  };
6251 static KmCommand _GEANT_PHYSICS_CKOV = { &_GEANT_PHYSICS_COMP,
6252  "/GEANT/PHYSICS/CKOV", "CKOV", 0, 2, 1, 0, _GEANT_PHYSICS_CKOV_parameters, 0,
6253  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6254  _GEANT_PHYSICS_CKOV_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6255  (char*)0, (int*)0 };
6256  
6257 static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
6258 static KmParInt    _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
6259  (char*)0, (char*)0, 0 };
6260 static KmParameter _GEANT_PHYSICS_BREM_IBREM = { "IBREM", 5, "Flag IBREM",
6261  "1", (char*)0, 8, 3, _GEANT_PHYSICS_BREM_IBREM_range, 3,
6262  _GEANT_PHYSICS_BREM_IBREM_range, (KmParFlag)0, KmTYPE_INT,
6263  &_GEANT_PHYSICS_BREM_IBREM_type };
6264 static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
6265  &_GEANT_PHYSICS_BREM_IBREM };
6266 static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
6267  " IBREM=0 no bremstrahlung", "      =1 bremstrahlung. Photon processed.",
6268  "      =2 bremstrahlung. No photon stored." };
6269 static KmCommand _GEANT_PHYSICS_BREM = { &_GEANT_PHYSICS_CKOV,
6270  "/GEANT/PHYSICS/BREM", "BREM", 0, 2, 1, 0, _GEANT_PHYSICS_BREM_parameters, 0,
6271  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6272  _GEANT_PHYSICS_BREM_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6273  (char*)0, (int*)0 };
6274  
6275 static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
6276 static KmParInt    _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
6277  (char*)0, (char*)0, 0 };
6278 static KmParameter _GEANT_PHYSICS_AUTO_IAUTO = { "IAUTO", 5, "Flag IAUTO",
6279  "1", (char*)0, 8, 2, _GEANT_PHYSICS_AUTO_IAUTO_range, 2,
6280  _GEANT_PHYSICS_AUTO_IAUTO_range, (KmParFlag)0, KmTYPE_INT,
6281  &_GEANT_PHYSICS_AUTO_IAUTO_type };
6282 static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
6283  &_GEANT_PHYSICS_AUTO_IAUTO };
6284 static char *_GEANT_PHYSICS_AUTO_guidance[] = {
6285  "To control automatic calculation of tracking medium parameters:",
6286  " IAUTO=0 no automatic calculation;", "      =1 automati calculation." };
6287 static KmCommand _GEANT_PHYSICS_AUTO = { &_GEANT_PHYSICS_BREM,
6288  "/GEANT/PHYSICS/AUTO", "AUTO", 0, 2, 1, 0, _GEANT_PHYSICS_AUTO_parameters, 0,
6289  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
6290  _GEANT_PHYSICS_AUTO_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6291  (char*)0, (int*)0 };
6292  
6293 static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
6294 static KmParInt    _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
6295  (char*)0, (char*)0, 0 };
6296 static KmParameter _GEANT_PHYSICS_ANNI_IANNI = { "IANNI", 5, "Flag IANNI",
6297  "1", (char*)0, 8, 3, _GEANT_PHYSICS_ANNI_IANNI_range, 3,
6298  _GEANT_PHYSICS_ANNI_IANNI_range, (KmParFlag)0, KmTYPE_INT,
6299  &_GEANT_PHYSICS_ANNI_IANNI_type };
6300 static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
6301  &_GEANT_PHYSICS_ANNI_IANNI };
6302 static char *_GEANT_PHYSICS_ANNI_guidance[] = {
6303  "To control positron annihilation.", " IANNI=0 no annihilation",
6304  "      =1 annihilation. Decays processed.",
6305  "      =2 annihilation. No decay products stored." };
6306 static KmCommand _GEANT_PHYSICS_ANNI = { &_GEANT_PHYSICS_AUTO,
6307  "/GEANT/PHYSICS/ANNI", "ANNI", 0, 2, 1, 0, _GEANT_PHYSICS_ANNI_parameters, 0,
6308  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
6309  _GEANT_PHYSICS_ANNI_guidance, 0, (char**)0, 0, (char**)0, 0, (char**)0,
6310  (char*)0, (int*)0 };
6311  
6312 static char *_GEANT_PHYSICS_guidance[] = {
6313  "Commands to set physics parameters." };
6314 static KmMenu _GEANT_PHYSICS = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/PHYSICS",
6315  "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance, 0, (char**)0,
6316  0, (char**)0 };
6317  
6318 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
6319  (KmCommand*)0, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
6320  
6321   klnkmenu( &_GEANT, 950303 );
6322 }
6323  
6324  
6325 #ifdef F77_LCASE
6326 #  define gkfort_ gkfort
6327 #  define gxfort_ gxfort
6328 #endif
6329  
6330 #ifdef F77_UCASE
6331 #  define gkfort_ GKFORT
6332 #  define gxfort_ GXFORT
6333 #endif
6334  
6335 #ifdef IBM370
6336 #  pragma linkage(GKFORT,FORTRAN)
6337 #  pragma linkage(GXFORT,FORTRAN)
6338 #endif
6339  
6340 extern void gkfort_();
6341 extern void gxfort_();
6342  
6343 void gkfort_()
6344 {
6345  
6346 static KmParameter _FORTRAN_FORTRAN_FNAME = { "FNAME", 5, "File name",
6347  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
6348  KmTYPE_CHAR,  (void*)0 };
6349 static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
6350  };
6351 static char *_FORTRAN_FORTRAN_guidance[] = {
6352  "The routines in the file FNAME will be compiled by COMIS.",
6353  "If routines with names: UGEOM,GUKINE,GUOUT,UGLAST are found,",
6354  "then they will be automatically called by GXINT instead of",
6355  "the routines with the same names compiled with the standard",
6356  "Fortran compiler and linked with the application.",
6357  "The user callable routines from the GEANT library as well as",
6358  "routines from PACKLIB (HBOOK,HPLOT,HIGZ,ZEBRA) may be called",
6359  "from these user routines. All GEANT common blocks may be", "referenced.",
6360  "In case where the routine UGEOM is called several times,",
6361  "it is important to DROP all the initialisation data structures",
6362  "JVOLUM,JMATE,JTMED,etc already in memory by using the routine GIDROP.",
6363  " Example of an interactive session where the routine UGEOM is modified:",
6364  "", "   GEANT > Edit ugeom.for", "   GEANT > Fortran ugeom.for",
6365  "   GEANT > Call GIDROP", "   GEANT > Call UGEOM", "   GEANT > Dtree",
6366  "   GEANT > Edit ugeom.for", "   GEANT > Fortran ugeom.for",
6367  "   GEANT > Call GIDROP", "   GEANT > Call UGEOM", "   GEANT > Dtree",
6368  "If FNAME='-', calls to user routines is reset and standard",
6369  "routines called instead." };
6370 static KmCommand _FORTRAN_FORTRAN = {  (KmCommand*)0, "/FORTRAN/FORTRAN",
6371  "FORTRAN", 0, 1, 1, 1, _FORTRAN_FORTRAN_parameters, 0, 0, gxfort_,
6372  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26, _FORTRAN_FORTRAN_guidance, 0,
6373  (char**)0, 0, (char**)0, 0, (char**)0, (char*)0, (int*)0 };
6374  
6375 static KmMenu _FORTRAN = {  (KmMenu*)0,  (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
6376  &_FORTRAN_FORTRAN, 0, (char**)0, 0, (char**)0, 0, (char**)0 };
6377  
6378   klnkmenu( &_FORTRAN, 950303 );
6379 }
6380  
6381 #endif
6382 #if defined(CERNLIB_KUIP95A)
6383  
6384 /*CMZ :          21/03/95  18.51.56  by  S.Giani*/
6385 /*-- Author :*/
6386 /*
6387  * This file has been generated by the KUIP compiler.  Do NOT change it!
6388  *
6389  * KUIP header: 921023      Generation date: Tue Mar 21 18:51:54 1995
6390  *
6391  * Input file: g321x.doc
6392  */
6393  
6394 #if !defined(F77_LCASE) && !defined(F77_UCASE) && !defined(F77_USCORE)
6395 #  if defined(__EXTENDED__) && !defined(IBM370) && !defined(_IBMR2)
6396 #    define IBM370
6397 #  endif
6398 #  if defined(CRAY) || defined(IBM370) || defined(vms)
6399 #    define F77_UCASE
6400 #  else
6401 #    if ( defined(apollo) || defined(__apollo) ) && defined(APOFTN)
6402 #      define F77_LCASE
6403 #    else
6404 #      define F77_USCORE
6405 #    endif
6406 #  endif
6407 #endif
6408  
6409 typedef int     IntFunc();
6410 typedef char*   CharFunc();
6411 typedef char** pCharFunc();
6412 typedef void    SUBROUTINE();
6413 #ifdef IBM370
6414 #  pragma linkage(SUBROUTINE,FORTRAN)
6415 #endif
6416  
6417 extern void klnkmenu();
6418 extern void klnkbrcl();
6419 extern void klnkkmcl();
6420 extern void klnkicon();
6421 extern void klnkbutt();
6422  
6423 typedef unsigned long KmPixmap; /* Pixmap from <X11/X.h>                   */
6424  typedef void *KmWidget;         /* Widget from <X11/Intrinsic.h>           */
6425  typedef void *KmCalldata;       /* XmAnyCallbackStruct from <Motif/Xm.h>   */
6426                                  /*                                         */
6427  typedef enum {                  /*                                         */
6428    BRACT_OPEN = 0,               /*                                         */
6429    BRACT_ROOT = 1,               /*                                         */
6430    BRACT_CONT = 2,               /*                                         */
6431    BRACT_GRAF = 3                /*                                         */
6432  } BrActTag;                     /*                                         */
6433                                  /*                                         */
6434  typedef enum {                  /*                                         */
6435    BrActUpdate    = 0x01,        /* browser window has to be updated ('!')  */
6436    BrActSeparator = 0x02,        /* put separator in menu ('/')             */
6437    BrActToggle    = 0x04,        /* register as toggle button               */
6438    BrActToggleOn  = 0x08,        /* toggle state is on                      */
6439    BrActSensitive = 0x10         /* button is sensitive                     */
6440  } BrActFlag;                    /*                                         */
6441                                  /*                                         */
6442  
6443 typedef struct _BrAction {      /*                                         */
6444   struct _BrAction *next;       /* link to next action binding             */
6445   BrActFlag   flags;            /*                                         */
6446   char       *text;             /* text line in menu                       */
6447   char       *user_text;        /* user text overriding CDF text (malloced)*/
6448   char       *accel;            /* accelerator                             */
6449   char       *exec;             /* action commands                         */
6450   SUBROUTINE *call_F;           /* action routine                          */
6451   IntFunc    *call_C;           /* action function                         */
6452   BrActTag    tag;              /* for which window the action is defined  */
6453   struct _BrClass *class;       /* pointer to BrClass in case of open menu */
6454  } BrAction;                     /*                                         */
6455                                  /*                                         */
6456  typedef struct _BrClass {       /*                                         */
6457    struct _BrClass *next;        /* link to next browsable class            */
6458    char       *name;             /* unique identifier name                  */
6459    char       *title;            /* title for popup menu (maybe NULL)       */
6460    SUBROUTINE *scan_km_F;        /* user function scanning the directory    */
6461    pCharFunc  *scan_km_C;        /* user function scanning the directory    */
6462    SUBROUTINE *scan_br_F;        /* user function scanning for browsables   */
6463    pCharFunc  *scan_br_C;        /* user function scanning for browsables   */
6464    BrAction   *root;             /* list of actions in root window          */
6465    BrAction   *open;             /* list of actions in open menu            */
6466  } BrClass;                      /*                                         */
6467                                  /*                                         */
6468  
6469 typedef struct _KmIcon {        /*                                         */
6470   struct _KmIcon *next;         /* link to next icon                       */
6471   char       *name;             /* unique identifier name                  */
6472   int         width;            /* width of the pixmap                     */
6473   int         height;           /* height of the pixmap                    */
6474   char       *bitmap;           /* bitmap data                             */
6475   KmPixmap    pix;              /* filled in Motif part                    */
6476   KmPixmap    hi_pix;           /* high lighted pixmap                     */
6477  } KmIcon;                       /*                                         */
6478                                  /*                                         */
6479  typedef struct _KmClass {       /*                                         */
6480    struct _KmClass *next;        /* link to next object class               */
6481    int         is_dir;           /* flag if class has is a directory        */
6482    char       *name;             /* unique identifier name                  */
6483    char       *title;            /* title for popup menu (maybe NULL)       */
6484    char       *big_icon;         /* name of the big icon                    */
6485    KmIcon     *bicon;            /* pointer to the big icon structure       */
6486    char       *sm_icon;          /* name of the small icon                  */
6487    KmIcon     *sicon;            /* pointer to the small icon structure     */
6488    SUBROUTINE *user_icon_F;      /* user function to return icon bitmap     */
6489    IntFunc    *user_icon_C;      /* user function to return icon bitmap     */
6490    BrAction   *cont;             /* list of actions in content window       */
6491    BrAction   *graf;             /* list of actions in graphics window      */
6492    int         obj_count;        /* number of objects in content window     */
6493  } KmClass;                      /*                                         */
6494                                  /*                                         */
6495  
6496 typedef enum {                  /*                                         */
6497   KmButtSensitive       = 0x00, /* sensitive button                        */
6498   KmButtNonSensitive    = 0x01, /* non-sensitive button ('NS')             */
6499   KmButtToggleSensitive = 0x02, /* toggle-sensitive button ('TS')          */
6500   KmButtSensitivityMask = 0x03, /* mask for sensitivity type               */
6501   KmButtSeparator       = 0x04, /* put separator in menu ('/')             */
6502   KmButtBrowser         = 0x08  /* button is in main browser ('BR')        */
6503  } KmButtFlag;                   /*                                         */
6504                                  /*                                         */
6505  typedef struct _KmButton {      /*                                         */
6506    struct _KmButton *next;       /* button label or menu item               */
6507    char       *menu;             /* menu name or NULL for buttons           */
6508    char       *label;            /* button label or menu item               */
6509    SUBROUTINE *call_F;           /* callback routine (FORTRAN)              */
6510    IntFunc    *call_C;           /* callback routine (C)                    */
6511    char       *action;           /* name of callback routine                */
6512    char       *mnemo;            /* button mnemonic                         */
6513    char       *accel;            /* button accelerator                      */
6514    char       *accel_text;       /* button accelerator text                 */
6515    KmButtFlag  flags;            /* sensitivity type etc.                   */
6516    KmWidget    widget;           /* Motif widget ID                         */
6517  } KmButton;                     /*                                         */
6518                                  /*                                         */
6519  
6520 extern struct {                        /*
6521     */   /* indirect calls to avoid linking HIGZ
6522     */   IntFunc    *graf_info_C;      /* pass display, open and close
6523  (ixmotif)  */   SUBROUTINE *graf_size_F;      /* resize window (IGRSIZ)
6524             */   SUBROUTINE *graf_pick_F;      /* identifying graphics objects
6525  (IGOBJ)    */   SUBROUTINE *graf_attr_F;      /* set attributes (IGSET)
6526             */   SUBROUTINE *graf_close_F;     /* close workstation (ICLWK)
6527             */   /* optional routines for Motif customization
6528             */   pCharFunc  *user_FallBk_C;    /* get application fallbacks
6529             */   IntFunc    *user_TopWid_C;    /* pass toplevel widget
6530  identifiers        */ } klnkaddr;                     /*
6531                     */
6532  
6533 typedef enum {                  /*                                         */
6534   KmFLAG_FORGET = 0x01,         /* last value is not kept for Motif panels */
6535   KmFLAG_MINUS  = 0x02,         /* -VALUE is not an abbrev for CHOPT=VALUE */
6536   KmFLAG_QUOTE  = 0x04,         /* do not remove quotes                    */
6537   KmFLAG_VARARG = 0x08,         /* append additional args to this param.   */
6538   KmFLAG_CONST  = 0x10,         /* do not allow to assign a value          */
6539   KmFLAG_HIDDEN = 0x20,         /* do not show in menus                    */
6540   KmFLAG_SEPARATE = 0x40        /* treat arguments as separate tokens      */
6541  } KmParFlag;                    /*                                         */
6542                                  /*                                         */
6543  typedef enum {                  /*                                         */
6544    KmTYPE_CHAR   = 'C',          /* character string                        */
6545    KmTYPE_FILE   = 'F',          /* file name                               */
6546    KmTYPE_INT    = 'I',          /* integer                                 */
6547    KmTYPE_OPTION = 'O',          /* option                                  */
6548    KmTYPE_REAL   = 'R'           /* real                                    */
6549  } KmParType;                    /*                                         */
6550                                  /*                                         */
6551  
6552 typedef struct {                /* file name                               */
6553   char         *filter_default; /* filter wildcard                         */
6554   char         *filter_current; /* current filter                          */
6555  } KmParFile;                    /*                                         */
6556                                  /*                                         */
6557  typedef struct {                /*                                         */
6558    char         *range_lower;    /* lower value of range                    */
6559    char         *range_upper;    /* upper value of range                    */
6560    char         *slider_lower;   /* lower limit for slider                  */
6561    char         *slider_upper;   /* upper limit for slider                  */
6562    int           decimals;       /* number of decimals used for slider      */
6563  } KmParInt;                     /*                                         */
6564                                  /*                                         */
6565  typedef struct {                /* option                                  */
6566    char        **text;           /* explanations (parallel to range_value)  */
6567    int          *mutex;          /* mutex group to which text belongs       */
6568    int          *radio;          /* radio group to which text belongs       */
6569  } KmParOption;                  /*                                         */
6570                                  /*                                         */
6571  
6572 typedef KmParInt KmParReal;     /* real and int have the same fields       */
6573                                 /*                                         */
6574  typedef struct {                /*                                         */
6575    char         *name;           /* parameter name                          */
6576    int           abbrev;         /* minimum length that name is recognized  */
6577    char         *prompt;         /* prompt string                           */
6578    char         *dfault;         /* default value                           */
6579    char         *last;           /* last value for Motif panel (malloced)   */
6580    int           width;          /* width of input field                    */
6581    int           range_count;    /* number of items in range_value          */
6582    char        **range_value;    /* list of allowed values                  */
6583    int           select_count;   /* number of items in select_count         */
6584    char        **select_value;   /* list of values for selection box        */
6585    KmParFlag     flags;          /* special flags                           */
6586    KmParType     type;           /* parameter type                          */
6587    void        *ptype;           /* structure pointer selected by type      */
6588  } KmParameter;                  /*                                         */
6589                                  /*                                         */
6590  
6591 typedef struct _KmCommand {     /*                                         */
6592   struct _KmCommand *next;      /* link to next command                    */
6593   char         *path;           /* command path                            */
6594   char         *name;           /* command name                            */
6595   int           hidden;         /* flag if command is invisible            */
6596   int           level;          /* depth of submenus                       */
6597   int           total;          /* total number of parameters              */
6598   int           mandatory;      /* number of mandatory parameters          */
6599   KmParameter **par;            /* list of total parameter descriptions    */
6600   int           list_par;       /* index+1 of parameter taking a list      */
6601   int           xcount;         /* count number of action calls            */
6602   SUBROUTINE   *action_F;       /* action routine                          */
6603   IntFunc      *action_C;       /* action routine                          */
6604   SUBROUTINE   *user_help_F;    /* user help routine                       */
6605   pCharFunc    *user_help_C;    /* user help routine                       */
6606   int          nguidance;       /* number of lines in guidance text        */
6607   char        **guidance;       /* help text                               */
6608   int           argc;           /* number of arguments entered             */
6609   char        **argv;           /* argc argument values                    */
6610   char         *argline;        /* argument line as entered                */
6611   int          *argoffs;        /* argc offsets into argline for KUGETE    */
6612  } KmCommand;                    /*                                         */
6613                                  /*                                         */
6614  
6615 typedef struct _KmMenu {        /*                                         */
6616   struct _KmMenu *next;         /* link to next menu                       */
6617   struct _KmMenu *down;         /* link to submenu                         */
6618   char         *path;           /* path of parent menu                     */
6619   char         *name;           /* menu name                               */
6620   int           level;          /* depth of submenus                       */
6621   KmCommand    *cmds;           /* link to first command                   */
6622   int          nguidance;       /* number of lines in guidance text        */
6623   char        **guidance;       /* help text                               */
6624  } KmMenu;                       /*                                         */
6625                                  /*                                         */
6626  extern void klnkbrcl();         /*                                         */
6627  extern void klnkicon();         /*                                         */
6628  extern void klnkkmcl();         /*                                         */
6629  extern void klnkmenu();         /*                                         */
6630                                  /*                                         */
6631  
6632 #ifdef F77_LCASE
6633 #  define gkdraw_ gkdraw
6634 #  define gxdraw_ gxdraw
6635 #  define gxpick_ gxpick
6636 #endif
6637  
6638 #ifdef F77_UCASE
6639 #  define gkdraw_ GKDRAW
6640 #  define gxdraw_ GXDRAW
6641 #  define gxpick_ GXPICK
6642 #endif
6643  
6644 #ifdef IBM370
6645 #  pragma linkage(GKDRAW,FORTRAN)
6646 #  pragma linkage(GXDRAW,FORTRAN)
6647 #  pragma linkage(GXPICK,FORTRAN)
6648 #endif
6649  
6650 extern void gkdraw_();
6651 extern void gxdraw_();
6652 extern void gxpick_();
6653  
6654 void gkdraw_()
6655 {
6656  
6657 static KmParReal   _GEANT_CVOL_VALCUT_XCUT_type = { (char*)0, (char*)0,
6658  (char*)0, (char*)0, 0 };
6659 static KmParameter _GEANT_CVOL_VALCUT_XCUT = { "XCUT", 4,
6660  "x coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
6661  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_XCUT_type };
6662 static KmParReal   _GEANT_CVOL_VALCUT_YCUT_type = { (char*)0, (char*)0,
6663  (char*)0, (char*)0, 0 };
6664 static KmParameter _GEANT_CVOL_VALCUT_YCUT = { "YCUT", 4,
6665  "y coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
6666  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_YCUT_type };
6667 static KmParReal   _GEANT_CVOL_VALCUT_ZCUT_type = { (char*)0, (char*)0,
6668  (char*)0, (char*)0, 0 };
6669 static KmParameter _GEANT_CVOL_VALCUT_ZCUT = { "ZCUT", 4,
6670  "z coordinate of cutted value", "0.", (char*)0, 12, 0, (char**)0, 0,
6671  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_VALCUT_ZCUT_type };
6672 static KmParameter *_GEANT_CVOL_VALCUT_parameters[] = {
6673  &_GEANT_CVOL_VALCUT_XCUT, &_GEANT_CVOL_VALCUT_YCUT, &_GEANT_CVOL_VALCUT_ZCUT
6674  };
6675 static char *_GEANT_CVOL_VALCUT_guidance[] = {
6676  "It allows the cutting in the ray-tracing. All the volumes are cutted",
6677  "from XCUT to +BIG along the x axis, from YCUT to +BIG along the y axis",
6678  "and from ZCUT to +BIG along the z axis." };
6679 static KmCommand _GEANT_CVOL_VALCUT = {  (KmCommand*)0, "/GEANT/CVOL/VALCUT",
6680  "VALCUT", 0, 2, 3, 3, _GEANT_CVOL_VALCUT_parameters, 0, 0, gxdraw_,
6681  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_CVOL_VALCUT_guidance,
6682  0, (char**)0, (char*)0, (int*)0 };
6683  
6684 static KmParameter _GEANT_CVOL_SPHE_CNVV = { "CNVV", 4,
6685  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
6686  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6687 static KmParReal   _GEANT_CVOL_SPHE_RMAX_type = { (char*)0, (char*)0,
6688  (char*)0, (char*)0, 0 };
6689 static KmParameter _GEANT_CVOL_SPHE_RMAX = { "RMAX", 4,
6690  " External radius of sphere             ", "0.1", (char*)0, 12, 0, (char**)0,
6691  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_SPHE_RMAX_type };
6692 static KmParReal   _GEANT_CVOL_SPHE_XMED_type = { (char*)0, (char*)0,
6693  (char*)0, (char*)0, 0 };
6694 static KmParameter _GEANT_CVOL_SPHE_XMED = { "XMED", 4,
6695  " Center X coordinate                   ", "-10000.", (char*)0, 12, 0,
6696  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6697  &_GEANT_CVOL_SPHE_XMED_type };
6698 static KmParReal   _GEANT_CVOL_SPHE_YMED_type = { (char*)0, (char*)0,
6699  (char*)0, (char*)0, 0 };
6700 static KmParameter _GEANT_CVOL_SPHE_YMED = { "YMED", 4,
6701  " Center Y coordinate                   ", "-10000.", (char*)0, 12, 0,
6702  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6703  &_GEANT_CVOL_SPHE_YMED_type };
6704 static KmParReal   _GEANT_CVOL_SPHE_ZMED_type = { (char*)0, (char*)0,
6705  (char*)0, (char*)0, 0 };
6706 static KmParameter _GEANT_CVOL_SPHE_ZMED = { "ZMED", 4,
6707  " Center Z coordinate                   ", "-10000.", (char*)0, 12, 0,
6708  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6709  &_GEANT_CVOL_SPHE_ZMED_type };
6710 static KmParameter *_GEANT_CVOL_SPHE_parameters[] = { &_GEANT_CVOL_SPHE_CNVV,
6711  &_GEANT_CVOL_SPHE_RMAX, &_GEANT_CVOL_SPHE_XMED, &_GEANT_CVOL_SPHE_YMED,
6712  &_GEANT_CVOL_SPHE_ZMED };
6713 static char *_GEANT_CVOL_SPHE_guidance[] = {
6714  "This command performs a boolean subtraction between the volume",
6715  "CNVV and a sphere; the sphere has the given parameters and is placed in",
6716  "the MARS according to the given coordinates of its center.",
6717  "See also CVOL. The following commands clip by a sphere,",
6718  "positioned according to the given parameters, the volume specified",
6719  "by NAME (a valid string for the NAME of the volume",
6720  "can be found using the DTREE command).", "EXAMPLE -", " dopt hide on",
6721  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
6722  " sphe * 500 0 0 500", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
6723 static KmCommand _GEANT_CVOL_SPHE = { &_GEANT_CVOL_VALCUT, "/GEANT/CVOL/SPHE",
6724  "SPHE", 0, 2, 5, 1, _GEANT_CVOL_SPHE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6725  (SUBROUTINE*)0, (pCharFunc*)0, 15, _GEANT_CVOL_SPHE_guidance, 0, (char**)0,
6726  (char*)0, (int*)0 };
6727  
6728 static KmParameter _GEANT_CVOL_CONE_CNVV = { "CNVV", 4,
6729  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
6730  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6731 static KmParReal   _GEANT_CVOL_CONE_RMAX1_type = { (char*)0, (char*)0,
6732  (char*)0, (char*)0, 0 };
6733 static KmParameter _GEANT_CVOL_CONE_RMAX1 = { "RMAX1", 5,
6734  " Min external radius                   ", "0.1", (char*)0, 12, 0, (char**)0,
6735  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX1_type };
6736 static KmParReal   _GEANT_CVOL_CONE_RMAX2_type = { (char*)0, (char*)0,
6737  (char*)0, (char*)0, 0 };
6738 static KmParameter _GEANT_CVOL_CONE_RMAX2 = { "RMAX2", 5,
6739  " Max external radius                   ", "0.1", (char*)0, 12, 0, (char**)0,
6740  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_RMAX2_type };
6741 static KmParReal   _GEANT_CVOL_CONE_ZDEM_type = { (char*)0, (char*)0,
6742  (char*)0, (char*)0, 0 };
6743 static KmParameter _GEANT_CVOL_CONE_ZDEM = { "ZDEM", 4,
6744  " Half length of cone axis              ", "0.1", (char*)0, 12, 0, (char**)0,
6745  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_CONE_ZDEM_type };
6746 static KmParReal   _GEANT_CVOL_CONE_XMED_type = { (char*)0, (char*)0,
6747  (char*)0, (char*)0, 0 };
6748 static KmParameter _GEANT_CVOL_CONE_XMED = { "XMED", 4,
6749  " Center X coordinate                   ", "-10000.", (char*)0, 12, 0,
6750  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6751  &_GEANT_CVOL_CONE_XMED_type };
6752 static KmParReal   _GEANT_CVOL_CONE_YMED_type = { (char*)0, (char*)0,
6753  (char*)0, (char*)0, 0 };
6754 static KmParameter _GEANT_CVOL_CONE_YMED = { "YMED", 4,
6755  " Center Y coordinate                   ", "-10000.", (char*)0, 12, 0,
6756  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6757  &_GEANT_CVOL_CONE_YMED_type };
6758 static KmParReal   _GEANT_CVOL_CONE_ZMED_type = { (char*)0, (char*)0,
6759  (char*)0, (char*)0, 0 };
6760 static KmParameter _GEANT_CVOL_CONE_ZMED = { "ZMED", 4,
6761  " Center Z coordinate                   ", "-10000.", (char*)0, 12, 0,
6762  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6763  &_GEANT_CVOL_CONE_ZMED_type };
6764 static KmParameter *_GEANT_CVOL_CONE_parameters[] = { &_GEANT_CVOL_CONE_CNVV,
6765  &_GEANT_CVOL_CONE_RMAX1, &_GEANT_CVOL_CONE_RMAX2, &_GEANT_CVOL_CONE_ZDEM,
6766  &_GEANT_CVOL_CONE_XMED, &_GEANT_CVOL_CONE_YMED, &_GEANT_CVOL_CONE_ZMED };
6767 static char *_GEANT_CVOL_CONE_guidance[] = {
6768  "This command performs a boolean subtraction between the volume",
6769  "CNVV and a cone; the cone has the given parameters and is placed in",
6770  "the MARS according to the given coordinates of its center.",
6771  "See also CVOL.", "The following commands will clip by a cone,",
6772  "positioned according the given parameters, the volume specified",
6773  "by NAME (a valid string for the NAME of the volume",
6774  "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
6775  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
6776  " cone * 1 750 1000 0 0 1000", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
6777 static KmCommand _GEANT_CVOL_CONE = { &_GEANT_CVOL_SPHE, "/GEANT/CVOL/CONE",
6778  "CONE", 0, 2, 7, 1, _GEANT_CVOL_CONE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6779  (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_CONE_guidance, 0, (char**)0,
6780  (char*)0, (int*)0 };
6781  
6782 static KmParameter _GEANT_CVOL_TUBE_CNVV = { "CNVV", 4,
6783  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
6784  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6785 static KmParReal   _GEANT_CVOL_TUBE_RMAX_type = { (char*)0, (char*)0,
6786  (char*)0, (char*)0, 0 };
6787 static KmParameter _GEANT_CVOL_TUBE_RMAX = { "RMAX", 4,
6788  " External radius of tube               ", "0.1", (char*)0, 12, 0, (char**)0,
6789  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_RMAX_type };
6790 static KmParReal   _GEANT_CVOL_TUBE_ZDEM_type = { (char*)0, (char*)0,
6791  (char*)0, (char*)0, 0 };
6792 static KmParameter _GEANT_CVOL_TUBE_ZDEM = { "ZDEM", 4,
6793  " Half length of tube axis              ", "0.1", (char*)0, 12, 0, (char**)0,
6794  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CVOL_TUBE_ZDEM_type };
6795 static KmParReal   _GEANT_CVOL_TUBE_XMED_type = { (char*)0, (char*)0,
6796  (char*)0, (char*)0, 0 };
6797 static KmParameter _GEANT_CVOL_TUBE_XMED = { "XMED", 4,
6798  " Center X coordinate                   ", "-10000.", (char*)0, 12, 0,
6799  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6800  &_GEANT_CVOL_TUBE_XMED_type };
6801 static KmParReal   _GEANT_CVOL_TUBE_YMED_type = { (char*)0, (char*)0,
6802  (char*)0, (char*)0, 0 };
6803 static KmParameter _GEANT_CVOL_TUBE_YMED = { "YMED", 4,
6804  " Center Y coordinate                   ", "-10000.", (char*)0, 12, 0,
6805  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6806  &_GEANT_CVOL_TUBE_YMED_type };
6807 static KmParReal   _GEANT_CVOL_TUBE_ZMED_type = { (char*)0, (char*)0,
6808  (char*)0, (char*)0, 0 };
6809 static KmParameter _GEANT_CVOL_TUBE_ZMED = { "ZMED", 4,
6810  " Center Z coordinate                   ", "-10000.", (char*)0, 12, 0,
6811  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6812  &_GEANT_CVOL_TUBE_ZMED_type };
6813 static KmParameter *_GEANT_CVOL_TUBE_parameters[] = { &_GEANT_CVOL_TUBE_CNVV,
6814  &_GEANT_CVOL_TUBE_RMAX, &_GEANT_CVOL_TUBE_ZDEM, &_GEANT_CVOL_TUBE_XMED,
6815  &_GEANT_CVOL_TUBE_YMED, &_GEANT_CVOL_TUBE_ZMED };
6816 static char *_GEANT_CVOL_TUBE_guidance[] = {
6817  "This command performs a boolean subtraction between the volume",
6818  "CNVV and a tube; the tube has the given parameters and is placed in",
6819  "the MARS according the given coordinates of its center.", "See also CVOL.",
6820  "The following commands will clip, by a tube,",
6821  "positioned according to the given parameters, the volume specified",
6822  "by NAME (a valid string for the NAME of the volume",
6823  "can be found using the DTREE command).", " EXAMPLE -", " dopt hide on",
6824  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " next",
6825  " tube * 500 1000 500 0 0", " draw NAME 40 40 0 10 10 .01 .01", " box ." };
6826 static KmCommand _GEANT_CVOL_TUBE = { &_GEANT_CVOL_CONE, "/GEANT/CVOL/TUBE",
6827  "TUBE", 0, 2, 6, 1, _GEANT_CVOL_TUBE_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6828  (SUBROUTINE*)0, (pCharFunc*)0, 16, _GEANT_CVOL_TUBE_guidance, 0, (char**)0,
6829  (char*)0, (int*)0 };
6830  
6831 static KmParameter _GEANT_CVOL_BOX_CNNV = { "CNNV", 4,
6832  " Name of volume to be clipped          ", "*   ", (char*)0, 20, 0,
6833  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6834 static KmParReal   _GEANT_CVOL_BOX_XMIN_type = { (char*)0, (char*)0, (char*)0,
6835  (char*)0, 0 };
6836 static KmParameter _GEANT_CVOL_BOX_XMIN = { "XMIN", 4,
6837  " Lower limit of the Shape X coordinate ", "-10000.", (char*)0, 12, 0,
6838  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6839  &_GEANT_CVOL_BOX_XMIN_type };
6840 static KmParReal   _GEANT_CVOL_BOX_XMAX_type = { (char*)0, (char*)0, (char*)0,
6841  (char*)0, 0 };
6842 static KmParameter _GEANT_CVOL_BOX_XMAX = { "XMAX", 4,
6843  " Upper limit of the Shape X coordinate ", "-9999.", (char*)0, 12, 0,
6844  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6845  &_GEANT_CVOL_BOX_XMAX_type };
6846 static KmParReal   _GEANT_CVOL_BOX_YMIN_type = { (char*)0, (char*)0, (char*)0,
6847  (char*)0, 0 };
6848 static KmParameter _GEANT_CVOL_BOX_YMIN = { "YMIN", 4,
6849  " Lower limit of the Shape Y coordinate ", "-10000.", (char*)0, 12, 0,
6850  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6851  &_GEANT_CVOL_BOX_YMIN_type };
6852 static KmParReal   _GEANT_CVOL_BOX_YMAX_type = { (char*)0, (char*)0, (char*)0,
6853  (char*)0, 0 };
6854 static KmParameter _GEANT_CVOL_BOX_YMAX = { "YMAX", 4,
6855  " Upper limit of the Shape Y coordinate ", "-9999.", (char*)0, 12, 0,
6856  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6857  &_GEANT_CVOL_BOX_YMAX_type };
6858 static KmParReal   _GEANT_CVOL_BOX_ZMIN_type = { (char*)0, (char*)0, (char*)0,
6859  (char*)0, 0 };
6860 static KmParameter _GEANT_CVOL_BOX_ZMIN = { "ZMIN", 4,
6861  " Lower limit of the Shape Z coordinate ", "-10000.", (char*)0, 12, 0,
6862  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6863  &_GEANT_CVOL_BOX_ZMIN_type };
6864 static KmParReal   _GEANT_CVOL_BOX_ZMAX_type = { (char*)0, (char*)0, (char*)0,
6865  (char*)0, 0 };
6866 static KmParameter _GEANT_CVOL_BOX_ZMAX = { "ZMAX", 4,
6867  " Upper limit of the Shape Z coordinate ", "-9999.", (char*)0, 12, 0,
6868  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
6869  &_GEANT_CVOL_BOX_ZMAX_type };
6870 static KmParameter *_GEANT_CVOL_BOX_parameters[] = { &_GEANT_CVOL_BOX_CNNV,
6871  &_GEANT_CVOL_BOX_XMIN, &_GEANT_CVOL_BOX_XMAX, &_GEANT_CVOL_BOX_YMIN,
6872  &_GEANT_CVOL_BOX_YMAX, &_GEANT_CVOL_BOX_ZMIN, &_GEANT_CVOL_BOX_ZMAX };
6873 static char *_GEANT_CVOL_BOX_guidance[] = {
6874  "This command performs a boolean subtraction between the volume",
6875  "CNVV and a box placed in the MARS according the values of the given",
6876  "coordinates. See also CVOL.", "The following commands will clip by a box,",
6877  "with a vertex at the origin, the volume specified by NAME (a valid",
6878  "string for the NAME of the volume can be found using the DTREE command).",
6879  " EXAMPLE -", " dopt hide on", " satt * seen -2",
6880  " draw NAME 40 40 0 10 10 .01 .01", " next",
6881  " box NAME 0 1000 0 1000 0 1000", " draw NAME 40 40 0 10 10 .01 .01",
6882  " box ." };
6883 static KmCommand _GEANT_CVOL_BOX = { &_GEANT_CVOL_TUBE, "/GEANT/CVOL/BOX",
6884  "BOX", 0, 2, 7, 1, _GEANT_CVOL_BOX_parameters, 0, 0, gxdraw_, (IntFunc*)0,
6885  (SUBROUTINE*)0, (pCharFunc*)0, 14, _GEANT_CVOL_BOX_guidance, 0, (char**)0,
6886  (char*)0, (int*)0 };
6887  
6888 static KmParameter _GEANT_DRAWING_DUVIEW_NAME = { "NAME", 4, "Detector name",
6889  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
6890  KmTYPE_CHAR,  (void*)0 };
6891 static KmParameter _GEANT_DRAWING_DUVIEW_TYPE = { "TYPE", 4, "View name",
6892  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
6893  KmTYPE_CHAR,  (void*)0 };
6894 static KmParameter _GEANT_DRAWING_DUVIEW_CPXTYP = { "CPXTYP", 6,
6895  "Complexity name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
6896  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6897 static KmParInt    _GEANT_DRAWING_DUVIEW_IVIEW_type = { (char*)0, (char*)0,
6898  (char*)0, (char*)0, 0 };
6899 static KmParameter _GEANT_DRAWING_DUVIEW_IVIEW = { "IVIEW", 5,
6900  "View number where picture is stored", "0", (char*)0, 8, 0, (char**)0, 0,
6901  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DUVIEW_IVIEW_type };
6902 static KmParameter *_GEANT_DRAWING_DUVIEW_parameters[] = {
6903  &_GEANT_DRAWING_DUVIEW_NAME, &_GEANT_DRAWING_DUVIEW_TYPE,
6904  &_GEANT_DRAWING_DUVIEW_CPXTYP, &_GEANT_DRAWING_DUVIEW_IVIEW };
6905 static char *_GEANT_DRAWING_DUVIEW_guidance[] = {
6906  " CALL GUVIEW(name,type,cpxtyp,iview)" };
6907 static KmCommand _GEANT_DRAWING_DUVIEW = {  (KmCommand*)0,
6908  "/GEANT/DRAWING/DUVIEW", "DUVIEW", 0, 2, 4, 3,
6909  _GEANT_DRAWING_DUVIEW_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
6910  (pCharFunc*)0, 1, _GEANT_DRAWING_DUVIEW_guidance, 0, (char**)0, (char*)0,
6911  (int*)0 };
6912  
6913 static KmParameter _GEANT_DRAWING_DCHIT_CHUSET = { "CHUSET", 6,
6914  "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6915  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6916 static KmParameter _GEANT_DRAWING_DCHIT_CHUDET = { "CHUDET", 6,
6917  "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6918  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6919 static KmParInt    _GEANT_DRAWING_DCHIT_ITRA_type = { (char*)0, (char*)0,
6920  (char*)0, (char*)0, 0 };
6921 static KmParameter _GEANT_DRAWING_DCHIT_ITRA = { "ITRA", 4,
6922  "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
6923  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ITRA_type };
6924 static KmParInt    _GEANT_DRAWING_DCHIT_ISYMB_type = { (char*)0, (char*)0,
6925  (char*)0, (char*)0, 0 };
6926 static KmParameter _GEANT_DRAWING_DCHIT_ISYMB = { "ISYMB", 5,
6927  "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
6928  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_ISYMB_type };
6929 static KmParReal   _GEANT_DRAWING_DCHIT_SIZMAX_type = { (char*)0, (char*)0,
6930  (char*)0, (char*)0, 0 };
6931 static KmParameter _GEANT_DRAWING_DCHIT_SIZMAX = { "SIZMAX", 6,
6932  "Maximum character size (cm)", "1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
6933  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_SIZMAX_type };
6934 static KmParInt    _GEANT_DRAWING_DCHIT_IHIT_type = { (char*)0, (char*)0,
6935  (char*)0, (char*)0, 0 };
6936 static KmParameter _GEANT_DRAWING_DCHIT_IHIT = { "IHIT", 4,
6937  "Index of array HITS", "4", (char*)0, 8, 0, (char**)0, 0, (char**)0,
6938  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DCHIT_IHIT_type };
6939 static KmParReal   _GEANT_DRAWING_DCHIT_HITMIN_type = { (char*)0, (char*)0,
6940  (char*)0, (char*)0, 0 };
6941 static KmParameter _GEANT_DRAWING_DCHIT_HITMIN = { "HITMIN", 6,
6942  "Lower boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
6943  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMIN_type };
6944 static KmParReal   _GEANT_DRAWING_DCHIT_HITMAX_type = { (char*)0, (char*)0,
6945  (char*)0, (char*)0, 0 };
6946 static KmParameter _GEANT_DRAWING_DCHIT_HITMAX = { "HITMAX", 6,
6947  "Upper boundary of HITS(IHIT)", "0", (char*)0, 12, 0, (char**)0, 0,
6948  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCHIT_HITMAX_type };
6949 static KmParameter *_GEANT_DRAWING_DCHIT_parameters[] = {
6950  &_GEANT_DRAWING_DCHIT_CHUSET, &_GEANT_DRAWING_DCHIT_CHUDET,
6951  &_GEANT_DRAWING_DCHIT_ITRA, &_GEANT_DRAWING_DCHIT_ISYMB,
6952  &_GEANT_DRAWING_DCHIT_SIZMAX, &_GEANT_DRAWING_DCHIT_IHIT,
6953  &_GEANT_DRAWING_DCHIT_HITMIN, &_GEANT_DRAWING_DCHIT_HITMAX };
6954 static char *_GEANT_DRAWING_DCHIT_guidance[] = {
6955  " CALL GDCHIT(chuset,chudet,itra,isymb,sizmax,ihit,hitmin,hitmax)",
6956  "The character plotted at each hit point may be chosen via",
6957  "CSYMB; isymb is composed as:",
6958  "      -1   (small) hardware points             (fast)",
6959  "       0   software crosses                    (default)",
6960  " 840,850   empty/full circles                  (slow)",
6961  " 841,851   empty/full squares                  (slow)",
6962  " 842,852   empty/full triangles (up)           (slow)",
6963  " 843,853   empty diamond/full triangle (down)  (slow)",
6964  " 844,854   empty/full stars                    (slow)",
6965  "Except for isymb=-1 the SIZE of the character on the screen",
6966  "is a function of HITS(IHIT), the array containing the calorimeter",
6967  "quantity, with HITMIN and HITMAX defining its range.",
6968  "The maximum character size (used in overflow) is SIZMAX.",
6969  " SIZE = SIZMAX * ( HITS(IHIT) - HITMIN ) / HITMAX" };
6970 static KmCommand _GEANT_DRAWING_DCHIT = { &_GEANT_DRAWING_DUVIEW,
6971  "/GEANT/DRAWING/DCHIT", "DCHIT", 0, 2, 8, 0, _GEANT_DRAWING_DCHIT_parameters,
6972  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 15,
6973  _GEANT_DRAWING_DCHIT_guidance, 0, (char**)0, (char*)0, (int*)0 };
6974  
6975 static KmParameter _GEANT_DRAWING_KHITS_CHUSET = { "CHUSET", 6,
6976  "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6977  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6978 static KmParameter _GEANT_DRAWING_KHITS_CHUDET = { "CHUDET", 6,
6979  "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
6980  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
6981 static KmParReal   _GEANT_DRAWING_KHITS_EPSILO_type = { (char*)0, (char*)0,
6982  (char*)0, (char*)0, 0 };
6983 static KmParameter _GEANT_DRAWING_KHITS_EPSILO = { "EPSILO", 6,
6984  "Pick aperture", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
6985  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_KHITS_EPSILO_type };
6986 static KmParameter *_GEANT_DRAWING_KHITS_parameters[] = {
6987  &_GEANT_DRAWING_KHITS_CHUSET, &_GEANT_DRAWING_KHITS_CHUDET,
6988  &_GEANT_DRAWING_KHITS_EPSILO };
6989 static char *_GEANT_DRAWING_KHITS_guidance[] = {
6990  " CALL GKHITS(chuset,chudet,epsilo)",
6991  "The picking of hit points requires the appropriate JSET data structure",
6992  "have been filled",
6993  "and is  repeated until the character typed is 'Q' or 'q' (GKS) or the",
6994  "right button of the mouse is clicked (X11).",
6995  "If the character typed to pick is 'K' or 'k' then the",
6996  "kinematics of the corresponding track is also printed.",
6997  "The search is made of all the hits of all tracks in",
6998  "detector CHUDET of set CHUSET.",
6999  "EPSILO is the pick aperture; if EPSILO<0 its absolute value is taken",
7000  "and in addition the pick aperture is drawn; if EPSILO=0",
7001  "there is an infinite pick aperture and",
7002  "over all the hits the one nearest to the pick point is taken." };
7003 static KmCommand _GEANT_DRAWING_KHITS = { &_GEANT_DRAWING_DCHIT,
7004  "/GEANT/DRAWING/KHITS", "KHITS", 0, 2, 3, 0, _GEANT_DRAWING_KHITS_parameters,
7005  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
7006  _GEANT_DRAWING_KHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7007  
7008 static KmParameter _GEANT_DRAWING_DHITS_CHUSET = { "CHUSET", 6,
7009  "User set identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7010  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7011 static KmParameter _GEANT_DRAWING_DHITS_CHUDET = { "CHUDET", 6,
7012  "User detector identifier", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7013  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7014 static KmParInt    _GEANT_DRAWING_DHITS_ITRA_type = { (char*)0, (char*)0,
7015  (char*)0, (char*)0, 0 };
7016 static KmParameter _GEANT_DRAWING_DHITS_ITRA = { "ITRA", 4,
7017  "Number of the selected track", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
7018  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ITRA_type };
7019 static KmParInt    _GEANT_DRAWING_DHITS_ISYMB_type = { (char*)0, (char*)0,
7020  (char*)0, (char*)0, 0 };
7021 static KmParameter _GEANT_DRAWING_DHITS_ISYMB = { "ISYMB", 5,
7022  "Character selection number", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
7023  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DHITS_ISYMB_type };
7024 static KmParReal   _GEANT_DRAWING_DHITS_SSYMB_type = { (char*)0, (char*)0,
7025  (char*)0, (char*)0, 0 };
7026 static KmParameter _GEANT_DRAWING_DHITS_SSYMB = { "SSYMB", 5,
7027  "Size of characters (cm)", "0.1", (char*)0, 12, 0, (char**)0, 0, (char**)0,
7028  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHITS_SSYMB_type };
7029 static KmParameter *_GEANT_DRAWING_DHITS_parameters[] = {
7030  &_GEANT_DRAWING_DHITS_CHUSET, &_GEANT_DRAWING_DHITS_CHUDET,
7031  &_GEANT_DRAWING_DHITS_ITRA, &_GEANT_DRAWING_DHITS_ISYMB,
7032  &_GEANT_DRAWING_DHITS_SSYMB };
7033 static char *_GEANT_DRAWING_DHITS_guidance[] = {
7034  "CALL GDHITS(chuset,chudet,itra,isymb,ssymb).",
7035  "The character plotted at each hit point may be chosen by isymb :",
7036  "      -1   (small) hardware points             (fast)",
7037  "       0   software crosses                    (default)",
7038  "   840,850   empty/full circles                  (slow)",
7039  "   841,851   empty/full squares                  (slow)",
7040  "   842,852   empty/full triangles (up)           (slow)",
7041  "   843,853   empty diamond/full triangle (down)  (slow)",
7042  "   844,854   empty/full stars                    (slow)",
7043  "Except for isymb=-1, the size of the character on the screen can be",
7044  "chosen by SSYMB cm. The hit colour will follow the value of TXCI (text",
7045  "colour) for isymb>0, the value of PMCI (polymarkers colour) for isymb<0,",
7046  "the value of PLCI (polyline colour) for isymb=0." };
7047 static KmCommand _GEANT_DRAWING_DHITS = { &_GEANT_DRAWING_KHITS,
7048  "/GEANT/DRAWING/DHITS", "DHITS", 0, 2, 5, 0, _GEANT_DRAWING_DHITS_parameters,
7049  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
7050  _GEANT_DRAWING_DHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7051  
7052 static KmParInt    _GEANT_DRAWING_DPART_ITRA_type = { (char*)0, (char*)0,
7053  (char*)0, (char*)0, 0 };
7054 static KmParameter _GEANT_DRAWING_DPART_ITRA = { "ITRA", 4, "Track number",
7055  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7056  &_GEANT_DRAWING_DPART_ITRA_type };
7057 static KmParInt    _GEANT_DRAWING_DPART_ISEL_type = { (char*)0, (char*)0,
7058  (char*)0, (char*)0, 0 };
7059 static KmParameter _GEANT_DRAWING_DPART_ISEL = { "ISEL", 4, "Option flag",
7060  "11", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7061  &_GEANT_DRAWING_DPART_ISEL_type };
7062 static KmParReal   _GEANT_DRAWING_DPART_SIZE_type = { (char*)0, (char*)0,
7063  (char*)0, (char*)0, 0 };
7064 static KmParameter _GEANT_DRAWING_DPART_SIZE = { "SIZE", 4,
7065  "Character size (cm) for particle names", "0.25", (char*)0, 12, 0, (char**)0,
7066  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DPART_SIZE_type };
7067 static KmParameter *_GEANT_DRAWING_DPART_parameters[] = {
7068  &_GEANT_DRAWING_DPART_ITRA, &_GEANT_DRAWING_DPART_ISEL,
7069  &_GEANT_DRAWING_DPART_SIZE };
7070 static char *_GEANT_DRAWING_DPART_guidance[] = {
7071  " CALL GDPART(itra,isel,size)", " isel=x1 to draw the track number",
7072  " isel=1x to draw the particle name" };
7073 static KmCommand _GEANT_DRAWING_DPART = { &_GEANT_DRAWING_DHITS,
7074  "/GEANT/DRAWING/DPART", "DPART", 0, 2, 3, 0, _GEANT_DRAWING_DPART_parameters,
7075  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
7076  _GEANT_DRAWING_DPART_guidance, 0, (char**)0, (char*)0, (int*)0 };
7077  
7078 static KmParReal   _GEANT_DRAWING_KXYZ_EPSILO_type = { (char*)0, (char*)0,
7079  (char*)0, (char*)0, 0 };
7080 static KmParameter _GEANT_DRAWING_KXYZ_EPSILO = { "EPSILO", 6, "Delta angle",
7081  "0.25", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7082  &_GEANT_DRAWING_KXYZ_EPSILO_type };
7083 static KmParameter *_GEANT_DRAWING_KXYZ_parameters[] = {
7084  &_GEANT_DRAWING_KXYZ_EPSILO };
7085 static char *_GEANT_DRAWING_KXYZ_guidance[] = { " CALL GKXYZ(epsilo)",
7086  "The picking of track points requires the JXYZ data structure",
7087  "and is  repeated until the character typed is 'Q' or 'q' (GKS)",
7088  "or the right button of the mouse is clicked (X11).",
7089  "EPSILO is the delta angle used for picking; if EPSILO=0",
7090  "there is no optimization performed and",
7091  "over all the track points the one nearest to the pick", "point is taken." };
7092 static KmCommand _GEANT_DRAWING_KXYZ = { &_GEANT_DRAWING_DPART,
7093  "/GEANT/DRAWING/KXYZ", "KXYZ", 0, 2, 1, 0, _GEANT_DRAWING_KXYZ_parameters, 0,
7094  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
7095  _GEANT_DRAWING_KXYZ_guidance, 0, (char**)0, (char*)0, (int*)0 };
7096  
7097 static KmParInt    _GEANT_DRAWING_DXYZ_ITRA_type = { (char*)0, (char*)0,
7098  (char*)0, (char*)0, 0 };
7099 static KmParameter _GEANT_DRAWING_DXYZ_ITRA = { "ITRA", 4, "Track number",
7100  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7101  &_GEANT_DRAWING_DXYZ_ITRA_type };
7102 static KmParameter *_GEANT_DRAWING_DXYZ_parameters[] = {
7103  &_GEANT_DRAWING_DXYZ_ITRA };
7104 static char *_GEANT_DRAWING_DXYZ_guidance[] = { " CALL GDXYZ(itra)",
7105  "Draw tracks previously stored via GSXYZ." };
7106 static KmCommand _GEANT_DRAWING_DXYZ = { &_GEANT_DRAWING_KXYZ,
7107  "/GEANT/DRAWING/DXYZ", "DXYZ", 0, 2, 1, 0, _GEANT_DRAWING_DXYZ_parameters, 0,
7108  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
7109  _GEANT_DRAWING_DXYZ_guidance, 0, (char**)0, (char*)0, (int*)0 };
7110  
7111 static KmParReal   _GEANT_DRAWING_ZOOM_ZFU_type = { (char*)0, (char*)0,
7112  (char*)0, (char*)0, 0 };
7113 static KmParameter _GEANT_DRAWING_ZOOM_ZFU = { "ZFU", 3,
7114  "Zoom factor for U-coord. (horizontal)", "2.", (char*)0, 12, 0, (char**)0, 0,
7115  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFU_type };
7116 static KmParReal   _GEANT_DRAWING_ZOOM_ZFV_type = { (char*)0, (char*)0,
7117  (char*)0, (char*)0, 0 };
7118 static KmParameter _GEANT_DRAWING_ZOOM_ZFV = { "ZFV", 3,
7119  "Zoom factor for V-coord. (vertical)", "2.", (char*)0, 12, 0, (char**)0, 0,
7120  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_ZOOM_ZFV_type };
7121 static KmParInt    _GEANT_DRAWING_ZOOM_ISEL_type = { (char*)0, (char*)0,
7122  (char*)0, (char*)0, 0 };
7123 static KmParameter _GEANT_DRAWING_ZOOM_ISEL = { "ISEL", 4, "Options", "1",
7124  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7125  &_GEANT_DRAWING_ZOOM_ISEL_type };
7126 static KmParReal   _GEANT_DRAWING_ZOOM_UZ0_type = { "0.", "20.", "0.", "20.",
7127  0 };
7128 static KmParameter _GEANT_DRAWING_ZOOM_UZ0 = { "UZ0", 3,
7129  "U-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
7130  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7131  &_GEANT_DRAWING_ZOOM_UZ0_type };
7132 static KmParReal   _GEANT_DRAWING_ZOOM_VZ0_type = { "0.", "20.", "0.", "20.",
7133  0 };
7134 static KmParameter _GEANT_DRAWING_ZOOM_VZ0 = { "VZ0", 3,
7135  "V-coord. of the centre of zoom rectangle", "10.", (char*)0, 12, 0,
7136  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7137  &_GEANT_DRAWING_ZOOM_VZ0_type };
7138 static KmParReal   _GEANT_DRAWING_ZOOM_U0_type = { "0.", "20.", "0.", "20.", 0
7139  };
7140 static KmParameter _GEANT_DRAWING_ZOOM_U0 = { "U0", 2,
7141  "U-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
7142  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7143  &_GEANT_DRAWING_ZOOM_U0_type };
7144 static KmParReal   _GEANT_DRAWING_ZOOM_V0_type = { "0.", "20.", "0.", "20.", 0
7145  };
7146 static KmParameter _GEANT_DRAWING_ZOOM_V0 = { "V0", 2,
7147  "V-coord. of the centre of resulting zoomed rectangle", "10.", (char*)0, 12,
7148  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7149  &_GEANT_DRAWING_ZOOM_V0_type };
7150 static KmParameter *_GEANT_DRAWING_ZOOM_parameters[] = {
7151  &_GEANT_DRAWING_ZOOM_ZFU, &_GEANT_DRAWING_ZOOM_ZFV,
7152  &_GEANT_DRAWING_ZOOM_ISEL, &_GEANT_DRAWING_ZOOM_UZ0,
7153  &_GEANT_DRAWING_ZOOM_VZ0, &_GEANT_DRAWING_ZOOM_U0, &_GEANT_DRAWING_ZOOM_V0 };
7154 static char *_GEANT_DRAWING_ZOOM_guidance[] = {
7155  " CALL GDZOOM(zfu,zfv,uz0,vz0,u0,v0)",
7156  "This command sets the zoom parameters that will be used by",
7157  "subsequent calls to the drawing routines. Each zoom operation is always",
7158  "relative to the status of the current zoom parameters.",
7159  "The scale factors in u,v are respectively  zfu,zfv.",
7160  "zfu=0 (or zfv=0) will act as a reset (i.e. unzoomed viewing).",
7161  "The zoom is computed around uz0,vz0 (user coordinates),",
7162  "and the resulting picture will be centered at u0,v0.",
7163  "The use of the space bar is replaced by the left button of the mouse",
7164  "running with X11:", "If isel=0 :", " 1. position the cursor at (uz0,vz0)",
7165  " 2. type the space bar (GKS)", "(u0,v0 are chosen at centre of screen)",
7166  "If isel=1 :", " 1. position the cursor at first corner of zoom rectangle",
7167  " 2. type the space bar (GKS)",
7168  " 3. position the cursor at second corner of zoom rectangle",
7169  " 4. type the space bar (GKS)",
7170  "(zfu,zfv are chosen according to the zoom rectangle;",
7171  "uz0,vz0 are chosen at the centre of the zoom rectangle;",
7172  "u0,v0 are chosen at centre of screen)", "If isel=2 :",
7173  " 1. position the cursor at (uz0,vz0)", " 2. type the space bar (GKS)",
7174  " 3. position the cursor at (u0,v0)", " 4. type the space bar (GKS)",
7175  "If isel=1000+n and running with X-windows:",
7176  " 1. n must be the identifier of an active view bank",
7177  " 2. clicking on the left button of the mouse will display",
7178  "    a zoomed view (computed around the cursor position) of",
7179  "    the previous drawing in a new window",
7180  " 3. it is now possible to iterate the zooming from the new window",
7181  " 4. clicking on the right button will return the control to the",
7182  "    main window",
7183  " 5. clicking on the left button it is possible to open new windows",
7184  "    zooming in other points of the detector",
7185  " 6. clicking on the right button when the main window is active",
7186  "    will return the control to the 'command mode'." };
7187 static KmCommand _GEANT_DRAWING_ZOOM = { &_GEANT_DRAWING_DXYZ,
7188  "/GEANT/DRAWING/ZOOM", "ZOOM", 0, 2, 7, 0, _GEANT_DRAWING_ZOOM_parameters, 0,
7189  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 39,
7190  _GEANT_DRAWING_ZOOM_guidance, 0, (char**)0, (char*)0, (int*)0 };
7191  
7192 static KmParInt    _GEANT_DRAWING_LENS_KNUM_type = { (char*)0, (char*)0,
7193  (char*)0, (char*)0, 0 };
7194 static KmParameter _GEANT_DRAWING_LENS_KNUM = { "KNUM", 4,
7195  "View bank identifier", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
7196  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_LENS_KNUM_type };
7197 static KmParameter _GEANT_DRAWING_LENS_KSAM = { "KSAM", 4,
7198  "Sample mode         ", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7199  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7200 static KmParameter *_GEANT_DRAWING_LENS_parameters[] = {
7201  &_GEANT_DRAWING_LENS_KNUM, &_GEANT_DRAWING_LENS_KSAM };
7202 static char *_GEANT_DRAWING_LENS_guidance[] = {
7203  "Interactive zooming for detectors and events when running",
7204  "with X-windows. Using this command, when showing the contents of a",
7205  "view bank, it is possible to click (left button) in two points of the",
7206  "drawing (which will represent the left upper corner and the right",
7207  "bottom corner of the part to be zoomed). After the second click",
7208  "a new 'window' will appear to fit the frame defined",
7209  "by the two clicks and it will show a zoomed view as seen from a",
7210  "lens with those dimensions. Clicking now the central button will",
7211  "translate the lens over the drawing, while clicking the right button",
7212  "will stop it. Moreover, clicking the left button of the",
7213  "mouse, the lens will increase (or decrease) its magnification",
7214  "power according to the backward-to-forward movement of the mouse.",
7215  "A click on the right button will stop this action and it is possible",
7216  "to restart the translation of the lens or, clicking",
7217  "on the right button again, to make the lens disappear. It is then possible",
7218  "to open another 'window-lens' with different dimensions. Thus,",
7219  "this command can be useful to scan detailed parts of a detector or",
7220  "to scan hits and showers for events. Clicking the right",
7221  "button when no lens is displayed will return the control to the",
7222  "'command mode'. The LENS is also available in sample mode when KSAM is",
7223  "'ON'.", "The following commands will fill a view bank and will",
7224  "allow to scan the detector and an event previously stored",
7225  "via the use of LENS (when running", "with X-windows):", " EXAMPLE -",
7226  " satt * seen 1", " dopen 1", " draw NAME 40 40 0 10 10 .01 .01", " dxyz 0",
7227  " dhits * * 0 0 .2", " dclose", " dsh 1", " lens 1 on" };
7228 static KmCommand _GEANT_DRAWING_LENS = { &_GEANT_DRAWING_ZOOM,
7229  "/GEANT/DRAWING/LENS", "LENS", 0, 2, 2, 1, _GEANT_DRAWING_LENS_parameters, 0,
7230  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 34,
7231  _GEANT_DRAWING_LENS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7232  
7233 static KmParameter _GEANT_DRAWING_PERSP_NAME = { "NAME", 4, "Volume name",
7234  "    ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7235  (void*)0 };
7236 static KmParReal   _GEANT_DRAWING_PERSP_DISTT_type = { (char*)0, (char*)0,
7237  (char*)0, (char*)0, 0 };
7238 static KmParameter _GEANT_DRAWING_PERSP_DISTT = { "DISTT", 5,
7239  "Volume distance from observer", "1000.", (char*)0, 12, 0, (char**)0, 0,
7240  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_PERSP_DISTT_type };
7241 static KmParameter _GEANT_DRAWING_PERSP_SAMP = { "SAMP", 4,
7242  "Control to the mouse", "OFF ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
7243  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7244 static KmParameter *_GEANT_DRAWING_PERSP_parameters[] = {
7245  &_GEANT_DRAWING_PERSP_NAME, &_GEANT_DRAWING_PERSP_DISTT,
7246  &_GEANT_DRAWING_PERSP_SAMP };
7247 static char *_GEANT_DRAWING_PERSP_guidance[] = {
7248  "To control the perspective according to the variation of the distance",
7249  "between the observer and the object (if PROJ has the value PERS).",
7250  "If SAMP is ON the control of the distance is given via the mouse." };
7251 static KmCommand _GEANT_DRAWING_PERSP = { &_GEANT_DRAWING_LENS,
7252  "/GEANT/DRAWING/PERSP", "PERSP", 0, 2, 3, 2, _GEANT_DRAWING_PERSP_parameters,
7253  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
7254  _GEANT_DRAWING_PERSP_guidance, 0, (char**)0, (char*)0, (int*)0 };
7255  
7256 static KmParameter _GEANT_DRAWING_MOVE3D_NAME = { "NAME", 4, "Volume name",
7257  "    ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7258  (void*)0 };
7259 static KmParReal   _GEANT_DRAWING_MOVE3D_THETA_type = { "0.", "180.", "0.",
7260  "180.", 0 };
7261 static KmParameter _GEANT_DRAWING_MOVE3D_THETA = { "THETA", 5,
7262  "Viewing angle theta (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
7263  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_THETA_type };
7264 static KmParReal   _GEANT_DRAWING_MOVE3D_PHI_type = { "0.", "360.", "0.",
7265  "360.", 0 };
7266 static KmParameter _GEANT_DRAWING_MOVE3D_PHI = { "PHI", 3,
7267  "Viewing angle phi (for 3D projection)", "40.", (char*)0, 12, 0, (char**)0,
7268  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PHI_type };
7269 static KmParReal   _GEANT_DRAWING_MOVE3D_PSI_type = { "0.", "180.", "0.",
7270  "180.", 0 };
7271 static KmParameter _GEANT_DRAWING_MOVE3D_PSI = { "PSI", 3,
7272  "Viewing angle psi (for 2D rotation)", "0.", (char*)0, 12, 0, (char**)0, 0,
7273  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_PSI_type };
7274 static KmParReal   _GEANT_DRAWING_MOVE3D_U0_type = { "0.", "20.", "0.", "20.",
7275  0 };
7276 static KmParameter _GEANT_DRAWING_MOVE3D_U0 = { "U0", 2,
7277  "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
7278  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_U0_type };
7279 static KmParReal   _GEANT_DRAWING_MOVE3D_V0_type = { "0.", "20.", "0.", "20.",
7280  0 };
7281 static KmParameter _GEANT_DRAWING_MOVE3D_V0 = { "V0", 2,
7282  "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
7283  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_V0_type };
7284 static KmParReal   _GEANT_DRAWING_MOVE3D_SU_type = { (char*)0, (char*)0,
7285  (char*)0, (char*)0, 0 };
7286 static KmParameter _GEANT_DRAWING_MOVE3D_SU = { "SU", 2,
7287  "Scale factor for U-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
7288  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SU_type };
7289 static KmParReal   _GEANT_DRAWING_MOVE3D_SV_type = { (char*)0, (char*)0,
7290  (char*)0, (char*)0, 0 };
7291 static KmParameter _GEANT_DRAWING_MOVE3D_SV = { "SV", 2,
7292  "Scale factor for V-coord.", "0.01", (char*)0, 12, 0, (char**)0, 0,
7293  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_MOVE3D_SV_type };
7294 static KmParReal   _GEANT_DRAWING_MOVE3D_SZ_type = { "0.1", "10.", "0.1",
7295  "10.", 1 };
7296 static KmParameter _GEANT_DRAWING_MOVE3D_SZ = { "SZ", 2, "Scale zoom factor",
7297  "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7298  &_GEANT_DRAWING_MOVE3D_SZ_type };
7299 static char *_GEANT_DRAWING_MOVE3D_NOPT_range[] = { "T", "H" };
7300 static char *_GEANT_DRAWING_MOVE3D_NOPT_text[] = { (char*)0, (char*)0 };
7301 static KmParOption _GEANT_DRAWING_MOVE3D_NOPT_type = {
7302  _GEANT_DRAWING_MOVE3D_NOPT_text, (int*)0, (int*)0 };
7303 static KmParameter _GEANT_DRAWING_MOVE3D_NOPT = { "NOPT", 4,
7304  "T=tracks,H=hits", "    ", (char*)0, 8, 2, _GEANT_DRAWING_MOVE3D_NOPT_range,
7305  2, _GEANT_DRAWING_MOVE3D_NOPT_range, (KmParFlag)0, KmTYPE_OPTION,
7306  &_GEANT_DRAWING_MOVE3D_NOPT_type };
7307 static KmParameter *_GEANT_DRAWING_MOVE3D_parameters[] = {
7308  &_GEANT_DRAWING_MOVE3D_NAME, &_GEANT_DRAWING_MOVE3D_THETA,
7309  &_GEANT_DRAWING_MOVE3D_PHI, &_GEANT_DRAWING_MOVE3D_PSI,
7310  &_GEANT_DRAWING_MOVE3D_U0, &_GEANT_DRAWING_MOVE3D_V0,
7311  &_GEANT_DRAWING_MOVE3D_SU, &_GEANT_DRAWING_MOVE3D_SV,
7312  &_GEANT_DRAWING_MOVE3D_SZ, &_GEANT_DRAWING_MOVE3D_NOPT };
7313 static char *_GEANT_DRAWING_MOVE3D_guidance[] = {
7314  "Same functionality of the command MOVE interfaced with MOTIF." };
7315 static KmCommand _GEANT_DRAWING_MOVE3D = { &_GEANT_DRAWING_PERSP,
7316  "/GEANT/DRAWING/MOVE3D", "MOVE3D", 0, 2, 10, 1,
7317  _GEANT_DRAWING_MOVE3D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
7318  (pCharFunc*)0, 1, _GEANT_DRAWING_MOVE3D_guidance, 0, (char**)0, (char*)0,
7319  (int*)0 };
7320  
7321 static KmParameter _GEANT_DRAWING_MOVE_NAME = { "NAME", 4, "Volume name",
7322  "    ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7323  (void*)0 };
7324 static KmParameter _GEANT_DRAWING_MOVE_NOPT = { "NOPT", 4,
7325  "S=sample mode,T=tracks,H=hits", "    ", (char*)0, 20, 0, (char**)0, 0,
7326  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7327 static KmParameter *_GEANT_DRAWING_MOVE_parameters[] = {
7328  &_GEANT_DRAWING_MOVE_NAME, &_GEANT_DRAWING_MOVE_NOPT };
7329 static char *_GEANT_DRAWING_MOVE_guidance[] = {
7330  "Positioning some daughter volumes inside a 'mother', it can be",
7331  "important to check if overlaps between such volumes have occurred.",
7332  "Instead of putting the drawing in a view bank, zooming, and iterating",
7333  "the process for different viewing angles of the same detector, the",
7334  "MOVE facility has been developed (for machines running with X11):",
7335  "it is sufficient to draw a view of the volumes to be analysed (after",
7336  "setting the proper SEEN, COLO, etc. attributes) and then to enter",
7337  "'MOVE' followed by the same 'NAME' used for the last command DRAW.",
7338  "The detector will appear in a panel with five buttons at the",
7339  "bottom: THETA, PHI, TRASL, ZOOM, OFF. Clicking on the left button",
7340  "of the mouse, when the cursor is inside the THETA area, will rotate the",
7341  "detector along the polar angle theta according to the",
7342  "backward-to-forward movement of the mouse",
7343  "(clicking up and down the left button if",
7344  "not in sample mode); clicking on the right button of",
7345  "the mouse will stop the rotation; clicking now on the",
7346  "left button of the mouse when inside the PHI area will activate a",
7347  "rotation along the polar angle phi. In the same way, activating the",
7348  "TRASL button, the detector can be translated in the u,v plane",
7349  "of the screen according to the 2D-movement of the mouse. Finally,",
7350  "activating the ZOOM button, the detector will be zoomed (or unzoomed)",
7351  "according to the backward-to-forward movement of the mouse. Clicking on\
7352  the", "OFF button will return the control to the 'command mode'. The MOVE",
7353  "command will work also with hidden line removal and shading options",
7354  "(when SHAD is on the background will be black);",
7355  "moreover, if the volumes are clipped, exploded, shifted, etc., they",
7356  "will be 'MOVED' with these features as well.",
7357  "Tracks and hits of a previously stored physical event can be moved",
7358  "together with the detector, allowing a dynamical 3-D analysis of the",
7359  "simulated events. Clicking the central button of the mouse when a good",
7360  "view of the event is found, will stop any movement and the mouse will",
7361  "allow the normal picking capabilities first for the tracks and then for",
7362  "the hits. After clicking of the right button, the normal",
7363  "movement will restart to find another interesting view of the event",
7364  "and to iterate the process.", "The MOVE is also available in sample mode.",
7365  "The following commands will produce a drawing of a volume",
7366  "and then will give the control to the MOVE panel; try the following",
7367  "possibilities:", " EXAMPLE 1 -", " dopt hide off", " satt * seen -2",
7368  " draw NAME 40 40 0 10 10 .01 .01", " move NAME", " EXAMPLE 2 -",
7369  " dopt hide on", " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01",
7370  " move NAME", " EXAMPLE 3 -", " dopt shad on", " satt * colo 3",
7371  " satt * fill 2", " dopt edge off", " draw NAME 40 40 0 10 10 .01 .01",
7372  " move NAME" };
7373 static KmCommand _GEANT_DRAWING_MOVE = { &_GEANT_DRAWING_MOVE3D,
7374  "/GEANT/DRAWING/MOVE", "MOVE", 0, 2, 2, 1, _GEANT_DRAWING_MOVE_parameters, 0,
7375  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 56,
7376  _GEANT_DRAWING_MOVE_guidance, 0, (char**)0, (char*)0, (int*)0 };
7377  
7378 static char *_GEANT_DRAWING_PICK_guidance[] = {
7379  "Activates graphic input to identify detector elements",
7380  "in a cut view. Clicking on the left button of the mouse when",
7381  "the cursor is in a given point of the drawing and clicking again",
7382  "(outside the detector) will produce the following effect:",
7383  "a line joininig the two points will be drawn together with",
7384  "the name and the medium number of the volume picked",
7385  "with the first clicking close to the second point." };
7386 static KmCommand _GEANT_DRAWING_PICK = { &_GEANT_DRAWING_MOVE,
7387  "/GEANT/DRAWING/PICK", "PICK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxpick_,
7388  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DRAWING_PICK_guidance,
7389  0, (char**)0, (char*)0, (int*)0 };
7390  
7391 static char *_GEANT_DRAWING_MEASURE_guidance[] = {
7392  "Position the cursor on the first point (u1,v1) and hit the space bar(GKS).",
7393  "Position the cursor on the second point (u2,v2) and hit the space\
7394  bar(GKS).",
7395  "Clicking the left button of the mouse (X11) will have the same effect as",
7396  "hiting the space bar (GKS).",
7397  "The command will compute and print the distance in space separating",
7398  "the two points on the projection view. It can be useful to measure",
7399  "distances either between volumes or between tracks or hits." };
7400 static KmCommand _GEANT_DRAWING_MEASURE = { &_GEANT_DRAWING_PICK,
7401  "/GEANT/DRAWING/MEASURE", "MEASURE", 0, 2, 0, 0, (KmParameter**)0, 0, 0,
7402  gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
7403  _GEANT_DRAWING_MEASURE_guidance, 0, (char**)0, (char*)0, (int*)0 };
7404  
7405 static KmParInt    _GEANT_DRAWING_DHEAD_ISEL_type = { (char*)0, (char*)0,
7406  (char*)0, (char*)0, 0 };
7407 static KmParameter _GEANT_DRAWING_DHEAD_ISEL = { "ISEL", 4, "Option flag",
7408  "111110", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7409  &_GEANT_DRAWING_DHEAD_ISEL_type };
7410 static KmParameter _GEANT_DRAWING_DHEAD_NAME = { "NAME", 4, "Title", " ",
7411  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7412  (void*)0 };
7413 static KmParReal   _GEANT_DRAWING_DHEAD_CHRSIZ_type = { (char*)0, (char*)0,
7414  (char*)0, (char*)0, 0 };
7415 static KmParameter _GEANT_DRAWING_DHEAD_CHRSIZ = { "CHRSIZ", 6,
7416  "Character size (cm) of title NAME", "0.6", (char*)0, 12, 0, (char**)0, 0,
7417  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DHEAD_CHRSIZ_type };
7418 static KmParameter *_GEANT_DRAWING_DHEAD_parameters[] = {
7419  &_GEANT_DRAWING_DHEAD_ISEL, &_GEANT_DRAWING_DHEAD_NAME,
7420  &_GEANT_DRAWING_DHEAD_CHRSIZ };
7421 static char *_GEANT_DRAWING_DHEAD_guidance[] = {
7422  " CALL GDHEAD(isel,name,chrsiz)", "ISEL =",
7423  " 0      to have only the header lines",
7424  " xxxxx1 to add the text name centered on top of header",
7425  " xxxx1x to add global detector name (first volume) on left",
7426  " xxx1xx to add date on right",
7427  " xx1xxx to select thick characters for text on top of header",
7428  " x1xxxx to add the text 'EVENT NR x' on top of header",
7429  " 1xxxxx to add the text 'RUN NR x' on top of header",
7430  "NOTE that ISEL=x1xxx1 or ISEL=1xxxx1 are illegal choices,",
7431  "i.e. they generate overwritten text.", "NAME is the title",
7432  "and CHRSIZ the character size in cm of text name." };
7433 static KmCommand _GEANT_DRAWING_DHEAD = { &_GEANT_DRAWING_MEASURE,
7434  "/GEANT/DRAWING/DHEAD", "DHEAD", 0, 2, 3, 0, _GEANT_DRAWING_DHEAD_parameters,
7435  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13,
7436  _GEANT_DRAWING_DHEAD_guidance, 0, (char**)0, (char*)0, (int*)0 };
7437  
7438 static KmParReal   _GEANT_DRAWING_DMAN_U_type = { (char*)0, (char*)0,
7439  (char*)0, (char*)0, 0 };
7440 static KmParameter _GEANT_DRAWING_DMAN_U = { "U", 1,
7441  "U-coord. (horizontal) of the centre of man", (char*)0, (char*)0, 12, 0,
7442  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7443  &_GEANT_DRAWING_DMAN_U_type };
7444 static KmParReal   _GEANT_DRAWING_DMAN_V_type = { (char*)0, (char*)0,
7445  (char*)0, (char*)0, 0 };
7446 static KmParameter _GEANT_DRAWING_DMAN_V = { "V", 1,
7447  "V-coord. (vertical) of the centre of man", (char*)0, (char*)0, 12, 0,
7448  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7449  &_GEANT_DRAWING_DMAN_V_type };
7450 static char *_GEANT_DRAWING_DMAN_TYPE_range[] = { "MAN", "WM1", "WM2", "WM3" };
7451 static char *_GEANT_DRAWING_DMAN_TYPE_text[] = { (char*)0, (char*)0, (char*)0,
7452  (char*)0 };
7453 static KmParOption _GEANT_DRAWING_DMAN_TYPE_type = {
7454  _GEANT_DRAWING_DMAN_TYPE_text, (int*)0, (int*)0 };
7455 static KmParameter _GEANT_DRAWING_DMAN_TYPE = { "TYPE", 4,
7456  "Man, Wm1, Wm2, Wm3", "MAN", (char*)0, 8, 4, _GEANT_DRAWING_DMAN_TYPE_range,
7457  4, _GEANT_DRAWING_DMAN_TYPE_range, (KmParFlag)0, KmTYPE_OPTION,
7458  &_GEANT_DRAWING_DMAN_TYPE_type };
7459 static KmParameter *_GEANT_DRAWING_DMAN_parameters[] = {
7460  &_GEANT_DRAWING_DMAN_U, &_GEANT_DRAWING_DMAN_V, &_GEANT_DRAWING_DMAN_TYPE };
7461 static char *_GEANT_DRAWING_DMAN_guidance[] = {
7462  " CALL GDMAN(u,v),CALL GDWMN1(u,v),CALL GDWMN2(u,v),CALL GDWMN2(u,v)",
7463  "It superimposes the picure of a man or of a woman, chosen among",
7464  "three different ones, with the same scale factors as the detector",
7465  "in the current drawing." };
7466 static KmCommand _GEANT_DRAWING_DMAN = { &_GEANT_DRAWING_DHEAD,
7467  "/GEANT/DRAWING/DMAN", "DMAN", 0, 2, 3, 3, _GEANT_DRAWING_DMAN_parameters, 0,
7468  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
7469  _GEANT_DRAWING_DMAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
7470  
7471 static KmParReal   _GEANT_DRAWING_DAXIS_X0_type = { (char*)0, (char*)0,
7472  (char*)0, (char*)0, 0 };
7473 static KmParameter _GEANT_DRAWING_DAXIS_X0 = { "X0", 2,
7474  "X-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7475  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_X0_type };
7476 static KmParReal   _GEANT_DRAWING_DAXIS_Y0_type = { (char*)0, (char*)0,
7477  (char*)0, (char*)0, 0 };
7478 static KmParameter _GEANT_DRAWING_DAXIS_Y0 = { "Y0", 2,
7479  "Y-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7480  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Y0_type };
7481 static KmParReal   _GEANT_DRAWING_DAXIS_Z0_type = { (char*)0, (char*)0,
7482  (char*)0, (char*)0, 0 };
7483 static KmParameter _GEANT_DRAWING_DAXIS_Z0 = { "Z0", 2,
7484  "Z-coord. of axis origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7485  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DAXIS_Z0_type };
7486 static KmParReal   _GEANT_DRAWING_DAXIS_DX_type = { (char*)0, (char*)0,
7487  (char*)0, (char*)0, 0 };
7488 static KmParameter _GEANT_DRAWING_DAXIS_DX = { "DX", 2, "Axis size", (char*)0,
7489  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7490  &_GEANT_DRAWING_DAXIS_DX_type };
7491 static KmParameter *_GEANT_DRAWING_DAXIS_parameters[] = {
7492  &_GEANT_DRAWING_DAXIS_X0, &_GEANT_DRAWING_DAXIS_Y0, &_GEANT_DRAWING_DAXIS_Z0,
7493  &_GEANT_DRAWING_DAXIS_DX };
7494 static char *_GEANT_DRAWING_DAXIS_guidance[] = { " CALL GDAXIS(x0,y0,z0,dx)",
7495  "This commmand superimposes the axis of the MARS on the",
7496  "current picture. It is useful for finding immediately the",
7497  "orientation of the current drawing of the detector in the space." };
7498 static KmCommand _GEANT_DRAWING_DAXIS = { &_GEANT_DRAWING_DMAN,
7499  "/GEANT/DRAWING/DAXIS", "DAXIS", 0, 2, 4, 4, _GEANT_DRAWING_DAXIS_parameters,
7500  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
7501  _GEANT_DRAWING_DAXIS_guidance, 0, (char**)0, (char*)0, (int*)0 };
7502  
7503 static KmParReal   _GEANT_DRAWING_DSCALE_U_type = { (char*)0, (char*)0,
7504  (char*)0, (char*)0, 0 };
7505 static KmParameter _GEANT_DRAWING_DSCALE_U = { "U", 1,
7506  "U-coord. (horizontal) of the centre of scale", (char*)0, (char*)0, 12, 0,
7507  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7508  &_GEANT_DRAWING_DSCALE_U_type };
7509 static KmParReal   _GEANT_DRAWING_DSCALE_V_type = { (char*)0, (char*)0,
7510  (char*)0, (char*)0, 0 };
7511 static KmParameter _GEANT_DRAWING_DSCALE_V = { "V", 1,
7512  "V-coord. (vertical) of the centre of scale", (char*)0, (char*)0, 12, 0,
7513  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7514  &_GEANT_DRAWING_DSCALE_V_type };
7515 static KmParameter *_GEANT_DRAWING_DSCALE_parameters[] = {
7516  &_GEANT_DRAWING_DSCALE_U, &_GEANT_DRAWING_DSCALE_V };
7517 static char *_GEANT_DRAWING_DSCALE_guidance[] = { " CALL GDSCAL(u,v)",
7518  "It draws a scale centered in U,V." };
7519 static KmCommand _GEANT_DRAWING_DSCALE = { &_GEANT_DRAWING_DAXIS,
7520  "/GEANT/DRAWING/DSCALE", "DSCALE", 0, 2, 2, 2,
7521  _GEANT_DRAWING_DSCALE_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
7522  (pCharFunc*)0, 2, _GEANT_DRAWING_DSCALE_guidance, 0, (char**)0, (char*)0,
7523  (int*)0 };
7524  
7525 static KmParameter _GEANT_DRAWING_DVECTOR_XVECT = { "XVECT", 5,
7526  "Vector containing X-coord. (horizontal)", (char*)0, (char*)0, 20, 0,
7527  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7528 static KmParameter _GEANT_DRAWING_DVECTOR_YVECT = { "YVECT", 5,
7529  "Vector containing Y-coord. (vertical)", (char*)0, (char*)0, 20, 0,
7530  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7531 static KmParInt    _GEANT_DRAWING_DVECTOR_NPOINT_type = { (char*)0, (char*)0,
7532  (char*)0, (char*)0, 0 };
7533 static KmParameter _GEANT_DRAWING_DVECTOR_NPOINT = { "NPOINT", 6,
7534  "Number of coord.", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
7535  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_DVECTOR_NPOINT_type };
7536 static KmParameter *_GEANT_DRAWING_DVECTOR_parameters[] = {
7537  &_GEANT_DRAWING_DVECTOR_XVECT, &_GEANT_DRAWING_DVECTOR_YVECT,
7538  &_GEANT_DRAWING_DVECTOR_NPOINT };
7539 static char *_GEANT_DRAWING_DVECTOR_guidance[] = {
7540  "Draw a polyline of 'npoint' point via",
7541  "a call to GDRAWV(xvect,yvect,npoint)",
7542  "where xvect and yvect are two KUIP vectors" };
7543 static KmCommand _GEANT_DRAWING_DVECTOR = { &_GEANT_DRAWING_DSCALE,
7544  "/GEANT/DRAWING/DVECTOR", "DVECTOR", 0, 2, 3, 3,
7545  _GEANT_DRAWING_DVECTOR_parameters, 0, 0, gxdraw_, (IntFunc*)0,
7546  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_DRAWING_DVECTOR_guidance, 0,
7547  (char**)0, (char*)0, (int*)0 };
7548  
7549 static KmParReal   _GEANT_DRAWING_DTEXT_X0_type = { "0.", "20.", "0.", "20.",
7550  0 };
7551 static KmParameter _GEANT_DRAWING_DTEXT_X0 = { "X0", 2,
7552  "X-coord. (horizontal) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
7553  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_X0_type };
7554 static KmParReal   _GEANT_DRAWING_DTEXT_Y0_type = { "0.", "20.", "0.", "20.",
7555  0 };
7556 static KmParameter _GEANT_DRAWING_DTEXT_Y0 = { "Y0", 2,
7557  "Y-coord. (vertical) of text string", "10.", (char*)0, 12, 0, (char**)0, 0,
7558  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_Y0_type };
7559 static KmParameter _GEANT_DRAWING_DTEXT_TEXT = { "TEXT", 4, "Text string",
7560  "GEANT", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7561   (void*)0 };
7562 static KmParReal   _GEANT_DRAWING_DTEXT_SIZE_type = { (char*)0, (char*)0,
7563  (char*)0, (char*)0, 0 };
7564 static KmParameter _GEANT_DRAWING_DTEXT_SIZE = { "SIZE", 4,
7565  "Character size (cm)", ".5", (char*)0, 12, 0, (char**)0, 0, (char**)0,
7566  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_SIZE_type };
7567 static KmParReal   _GEANT_DRAWING_DTEXT_ANGLE_type = { "0.", "360.", "0.",
7568  "360.", 0 };
7569 static KmParameter _GEANT_DRAWING_DTEXT_ANGLE = { "ANGLE", 5,
7570  "Rotation angle (deg)", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
7571  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DTEXT_ANGLE_type };
7572 static KmParInt    _GEANT_DRAWING_DTEXT_LWID_type = { (char*)0, (char*)0,
7573  (char*)0, (char*)0, 0 };
7574 static KmParameter _GEANT_DRAWING_DTEXT_LWID = { "LWID", 4, "Line width", "4",
7575  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7576  &_GEANT_DRAWING_DTEXT_LWID_type };
7577 static char *_GEANT_DRAWING_DTEXT_CENT_range[] = { "CENT", "LEFT", "RIGH" };
7578 static char *_GEANT_DRAWING_DTEXT_CENT_text[] = { (char*)0, (char*)0, (char*)0
7579  };
7580 static KmParOption _GEANT_DRAWING_DTEXT_CENT_type = {
7581  _GEANT_DRAWING_DTEXT_CENT_text, (int*)0, (int*)0 };
7582 static KmParameter _GEANT_DRAWING_DTEXT_CENT = { "CENT", 4,
7583  "Centering option", "CENT", (char*)0, 8, 3, _GEANT_DRAWING_DTEXT_CENT_range,
7584  3, _GEANT_DRAWING_DTEXT_CENT_range, (KmParFlag)0, KmTYPE_OPTION,
7585  &_GEANT_DRAWING_DTEXT_CENT_type };
7586 static KmParameter *_GEANT_DRAWING_DTEXT_parameters[] = {
7587  &_GEANT_DRAWING_DTEXT_X0, &_GEANT_DRAWING_DTEXT_Y0,
7588  &_GEANT_DRAWING_DTEXT_TEXT, &_GEANT_DRAWING_DTEXT_SIZE,
7589  &_GEANT_DRAWING_DTEXT_ANGLE, &_GEANT_DRAWING_DTEXT_LWID,
7590  &_GEANT_DRAWING_DTEXT_CENT };
7591 static char *_GEANT_DRAWING_DTEXT_guidance[] = {
7592  " CALL GDRAWT(x0,y0,text,size,angle,lwid,opt)",
7593  "It allows one to draw some text in the current picture.",
7594  "Now more than 160 colours are available. The text colour",
7595  "must be set via the command IGSET. The size of the",
7596  "text will follow the zooming factors in the view banks." };
7597 static KmCommand _GEANT_DRAWING_DTEXT = { &_GEANT_DRAWING_DVECTOR,
7598  "/GEANT/DRAWING/DTEXT", "DTEXT", 0, 2, 7, 7, _GEANT_DRAWING_DTEXT_parameters,
7599  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
7600  _GEANT_DRAWING_DTEXT_guidance, 0, (char**)0, (char*)0, (int*)0 };
7601  
7602 static KmParameter _GEANT_DRAWING_DFSPC_NAME = { "NAME", 4, "Volume name",
7603  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7604  KmTYPE_CHAR,  (void*)0 };
7605 static char *_GEANT_DRAWING_DFSPC_CSORT_range[] = { "Y", "N", "0", "1" };
7606 static char *_GEANT_DRAWING_DFSPC_CSORT_text[] = { (char*)0, (char*)0,
7607  (char*)0, (char*)0 };
7608 static KmParOption _GEANT_DRAWING_DFSPC_CSORT_type = {
7609  _GEANT_DRAWING_DFSPC_CSORT_text, (int*)0, (int*)0 };
7610 static KmParameter _GEANT_DRAWING_DFSPC_CSORT = { "CSORT", 5,
7611  "Alphabetic sorting flag", "N", (char*)0, 8, 4,
7612  _GEANT_DRAWING_DFSPC_CSORT_range, 4, _GEANT_DRAWING_DFSPC_CSORT_range,
7613  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CSORT_type };
7614 static char *_GEANT_DRAWING_DFSPC_CINTER_range[] = { "I", "B", "0", "1" };
7615 static char *_GEANT_DRAWING_DFSPC_CINTER_text[] = { (char*)0, (char*)0,
7616  (char*)0, (char*)0 };
7617 static KmParOption _GEANT_DRAWING_DFSPC_CINTER_type = {
7618  _GEANT_DRAWING_DFSPC_CINTER_text, (int*)0, (int*)0 };
7619 static KmParameter _GEANT_DRAWING_DFSPC_CINTER = { "CINTER", 6,
7620  "Interactive/Batch version", "I", (char*)0, 8, 4,
7621  _GEANT_DRAWING_DFSPC_CINTER_range, 4, _GEANT_DRAWING_DFSPC_CINTER_range,
7622  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DFSPC_CINTER_type };
7623 static KmParameter *_GEANT_DRAWING_DFSPC_parameters[] = {
7624  &_GEANT_DRAWING_DFSPC_NAME, &_GEANT_DRAWING_DFSPC_CSORT,
7625  &_GEANT_DRAWING_DFSPC_CINTER };
7626 static char *_GEANT_DRAWING_DFSPC_guidance[] = {
7627  " CALL GDFSPC(name,isort,inter)",
7628  "Same as DSPEC, but it will draw the specifications for all the volumes.",
7629  "If the alphabetic sorting flag is YES, all pictures will be drawn in\
7630  ascending", "alphabetic order; isort is set to 1.",
7631  "If INTERACTIVE, (inter=1), the routine will prompt the user at each plot",
7632  "before doing a clear screen, otherwise it will clear automatically",
7633  "the screen before starting a new frame." };
7634 static KmCommand _GEANT_DRAWING_DFSPC = { &_GEANT_DRAWING_DTEXT,
7635  "/GEANT/DRAWING/DFSPC", "DFSPC", 0, 2, 3, 1, _GEANT_DRAWING_DFSPC_parameters,
7636  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
7637  _GEANT_DRAWING_DFSPC_guidance, 0, (char**)0, (char*)0, (int*)0 };
7638  
7639 static KmParameter _GEANT_DRAWING_D3DSPEC_NAME = { "NAME", 4, "Volume name",
7640  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7641  KmTYPE_CHAR,  (void*)0 };
7642 static KmParReal   _GEANT_DRAWING_D3DSPEC_TETA3_type = { "0.", "180.", "0.",
7643  "180.", 0 };
7644 static KmParameter _GEANT_DRAWING_D3DSPEC_TETA3 = { "TETA3", 5, "Theta angle",
7645  "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7646  &_GEANT_DRAWING_D3DSPEC_TETA3_type };
7647 static KmParReal   _GEANT_DRAWING_D3DSPEC_PHI3_type = { "0.", "360.", "0.",
7648  "360.", 0 };
7649 static KmParameter _GEANT_DRAWING_D3DSPEC_PHI3 = { "PHI3", 4, "Phi angle",
7650  "40.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7651  &_GEANT_DRAWING_D3DSPEC_PHI3_type };
7652 static KmParReal   _GEANT_DRAWING_D3DSPEC_PSI3_type = { "0.", "360.", "0.",
7653  "360.", 0 };
7654 static KmParameter _GEANT_DRAWING_D3DSPEC_PSI3 = { "PSI3", 4, "Psi angle",
7655  "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7656  &_GEANT_DRAWING_D3DSPEC_PSI3_type };
7657 static KmParReal   _GEANT_DRAWING_D3DSPEC_U03_type = { "-40.", "40.", "-40.",
7658  "40.", 0 };
7659 static KmParameter _GEANT_DRAWING_D3DSPEC_U03 = { "U03", 3,
7660  "U-coord. (horizontal) of volume origin", "10.", (char*)0, 12, 0, (char**)0,
7661  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_U03_type };
7662 static KmParReal   _GEANT_DRAWING_D3DSPEC_V03_type = { "-40.", "40.", "-40.",
7663  "40.", 0 };
7664 static KmParameter _GEANT_DRAWING_D3DSPEC_V03 = { "V03", 3,
7665  "V-coord. (vertical) of volume origin", "10.", (char*)0, 12, 0, (char**)0, 0,
7666  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_V03_type };
7667 static KmParReal   _GEANT_DRAWING_D3DSPEC_ZM3_type = { "0.00001", "10.",
7668  "0.00001", "10.", 5 };
7669 static KmParameter _GEANT_DRAWING_D3DSPEC_ZM3 = { "ZM3", 3,
7670  "Zoom factor for current size factors", "1.", (char*)0, 12, 0, (char**)0, 0,
7671  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_D3DSPEC_ZM3_type };
7672 static KmParameter *_GEANT_DRAWING_D3DSPEC_parameters[] = {
7673  &_GEANT_DRAWING_D3DSPEC_NAME, &_GEANT_DRAWING_D3DSPEC_TETA3,
7674  &_GEANT_DRAWING_D3DSPEC_PHI3, &_GEANT_DRAWING_D3DSPEC_PSI3,
7675  &_GEANT_DRAWING_D3DSPEC_U03, &_GEANT_DRAWING_D3DSPEC_V03,
7676  &_GEANT_DRAWING_D3DSPEC_ZM3 };
7677 static char *_GEANT_DRAWING_D3DSPEC_guidance[] = {
7678  "Trough a call to GSPE3D, this command allows one to show",
7679  "the volume (3D views in real time), together with",
7680  "its geometrical specifications (if using MOTIF). The 3D drawing will",
7681  "be performed according the current values of the options HIDE and",
7682  "SHAD and according the current CVOL clipping parameters for that", "volume."
7683  };
7684 static KmCommand _GEANT_DRAWING_D3DSPEC = { &_GEANT_DRAWING_DFSPC,
7685  "/GEANT/DRAWING/D3DSPEC", "D3DSPEC", 0, 2, 7, 1,
7686  _GEANT_DRAWING_D3DSPEC_parameters, 0, 0, gxdraw_, (IntFunc*)0,
7687  (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_DRAWING_D3DSPEC_guidance, 0,
7688  (char**)0, (char*)0, (int*)0 };
7689  
7690 static KmParameter _GEANT_DRAWING_DSPEC_NAME = { "NAME", 4, "Volume name",
7691  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7692  KmTYPE_CHAR,  (void*)0 };
7693 static KmParameter *_GEANT_DRAWING_DSPEC_parameters[] = {
7694  &_GEANT_DRAWING_DSPEC_NAME };
7695 static char *_GEANT_DRAWING_DSPEC_guidance[] = {
7696  "Trough a call to GDSPEC(name), this command allows one to show three",
7697  "views of the volume (two cut-views and a 3D view), together with",
7698  "its geometrical specifications. The 3D drawing will",
7699  "be performed according the current values of the options HIDE and",
7700  "SHAD and according the current CVOL clipping parameters for that", "volume."
7701  };
7702 static KmCommand _GEANT_DRAWING_DSPEC = { &_GEANT_DRAWING_D3DSPEC,
7703  "/GEANT/DRAWING/DSPEC", "DSPEC", 0, 2, 1, 1, _GEANT_DRAWING_DSPEC_parameters,
7704  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
7705  _GEANT_DRAWING_DSPEC_guidance, 0, (char**)0, (char*)0, (int*)0 };
7706  
7707 static KmParameter _GEANT_DRAWING_DTREE_NAME = { "NAME", 4, "Volume name",
7708  " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
7709  (void*)0 };
7710 static KmParInt    _GEANT_DRAWING_DTREE_LEVMAX_type = { "-15", "15", "-15",
7711  "15", 0 };
7712 static KmParameter _GEANT_DRAWING_DTREE_LEVMAX = { "LEVMAX", 6, "Depth level",
7713  "3", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7714  &_GEANT_DRAWING_DTREE_LEVMAX_type };
7715 static KmParInt    _GEANT_DRAWING_DTREE_ISELT_type = { (char*)0, (char*)0,
7716  (char*)0, (char*)0, 0 };
7717 static KmParameter _GEANT_DRAWING_DTREE_ISELT = { "ISELT", 5, "Options    ",
7718  "111", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7719  &_GEANT_DRAWING_DTREE_ISELT_type };
7720 static KmParameter *_GEANT_DRAWING_DTREE_parameters[] = {
7721  &_GEANT_DRAWING_DTREE_NAME, &_GEANT_DRAWING_DTREE_LEVMAX,
7722  &_GEANT_DRAWING_DTREE_ISELT };
7723 static char *_GEANT_DRAWING_DTREE_guidance[] = {
7724  "This command allows the drawing of the logical tree,",
7725  "displaying the name, the multiplicity and other information about the\
7726  volumes,", "via a call to GDTREE(name,levmax,isel):",
7727  "if the third parameter is not given (default), the command will",
7728  "produce the drawing of the tree displaying, for each volume, the",
7729  "number of the following levels (red arrows) and of the preceeding",
7730  "levels (green arrows); then the control is automatically given to the",
7731  "mouse: clicking on the left button when the cursor is inside a volume's",
7732  "pave will perform a DSPEC for that volume; doing the same when the cursor",
7733  "is on a red arrow, will perform a DTREE for the relative volume (the",
7734  "number of levels displayed depending on the clicked arrow); doing the",
7735  "same for the 'i-th' green arrow of a given volume, will perform a DTREE",
7736  "for its mother-volume staying 'i' levels before.",
7737  "If running with X-windows, the drawing of the specification (DSPEC)",
7738  "is performed",
7739  "in a different window to speed up the scanning of the tree.",
7740  "Iterating this procedure it is possible to analyse very easily and quickly",
7741  "any kind of tree. Clicking the right button of the mouse will return",
7742  "the control to the command mode.", "If the ISELT parameter is given,",
7743  "then the TREE will work as in the",
7744  "previous version, with ISELT up to 10001.",
7745  "The following command will perform a drawing of the tree and give the",
7746  "control to the user via the mouse:", " EXAMPLE -", " dtree NAME 3" };
7747 static KmCommand _GEANT_DRAWING_DTREE = { &_GEANT_DRAWING_DSPEC,
7748  "/GEANT/DRAWING/DTREE", "DTREE", 0, 2, 3, 0, _GEANT_DRAWING_DTREE_parameters,
7749  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26,
7750  _GEANT_DRAWING_DTREE_guidance, 0, (char**)0, (char*)0, (int*)0 };
7751  
7752 static KmParReal   _GEANT_DRAWING_BOMB_BOOM_type = { "-10.", "10.", "-10.",
7753  "10.", 0 };
7754 static KmParameter _GEANT_DRAWING_BOMB_BOOM = { "BOOM", 4,
7755  " Exploding factor for volumes position ", "0.", (char*)0, 12, 0, (char**)0,
7756  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_BOMB_BOOM_type };
7757 static KmParameter *_GEANT_DRAWING_BOMB_parameters[] = {
7758  &_GEANT_DRAWING_BOMB_BOOM };
7759 static char *_GEANT_DRAWING_BOMB_guidance[] = {
7760  "To 'explode' the detector. If BOOM is positive (values smaller",
7761  "than 1. are suggested, but any value is possible)",
7762  "all the volumes are shifted by a distance",
7763  "proportional to BOOM along the direction between their centre",
7764  "and the origin of the MARS; the volumes which are symmetric",
7765  "with respect to this origin are simply not shown.",
7766  "BOOM equal to 0 resets the normal mode.",
7767  "A negative (greater than -1.) value of",
7768  "BOOM will cause an 'implosion'; for even lower values of BOOM",
7769  "the volumes' positions will be reflected respect to the origin.",
7770  "This command can be useful to improve the 3D effect for very",
7771  "complex detectors. The following commands will make explode the",
7772  "detector:", " EXAMPLE -", " dopt hide on", " satt * seen 1",
7773  " draw NAME 40 40 0 10 10 .01 .01", " bomb 1", " next",
7774  " draw NAME 40 40 0 10 10 .01 .01" };
7775 static KmCommand _GEANT_DRAWING_BOMB = { &_GEANT_DRAWING_DTREE,
7776  "/GEANT/DRAWING/BOMB", "BOMB", 0, 2, 1, 1, _GEANT_DRAWING_BOMB_parameters, 0,
7777  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 20,
7778  _GEANT_DRAWING_BOMB_guidance, 0, (char**)0, (char*)0, (int*)0 };
7779  
7780 static KmParameter _GEANT_DRAWING_SHIFT_CNVN = { "CNVN", 4,
7781  " Name of volume to be shifted        ", "*", (char*)0, 20, 0, (char**)0, 0,
7782  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7783 static KmParReal   _GEANT_DRAWING_SHIFT_XXXX_type = { (char*)0, (char*)0,
7784  (char*)0, (char*)0, 0 };
7785 static KmParameter _GEANT_DRAWING_SHIFT_XXXX = { "XXXX", 4,
7786  " Shift along X axis                  ", "0.", (char*)0, 12, 0, (char**)0, 0,
7787  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_XXXX_type };
7788 static KmParReal   _GEANT_DRAWING_SHIFT_YYYY_type = { (char*)0, (char*)0,
7789  (char*)0, (char*)0, 0 };
7790 static KmParameter _GEANT_DRAWING_SHIFT_YYYY = { "YYYY", 4,
7791  " Shift along Y axis                  ", "0.", (char*)0, 12, 0, (char**)0, 0,
7792  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_YYYY_type };
7793 static KmParReal   _GEANT_DRAWING_SHIFT_ZZZZ_type = { (char*)0, (char*)0,
7794  (char*)0, (char*)0, 0 };
7795 static KmParameter _GEANT_DRAWING_SHIFT_ZZZZ = { "ZZZZ", 4,
7796  " Shift along Z axis                  ", "0.", (char*)0, 12, 0, (char**)0, 0,
7797  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SHIFT_ZZZZ_type };
7798 static KmParameter *_GEANT_DRAWING_SHIFT_parameters[] = {
7799  &_GEANT_DRAWING_SHIFT_CNVN, &_GEANT_DRAWING_SHIFT_XXXX,
7800  &_GEANT_DRAWING_SHIFT_YYYY, &_GEANT_DRAWING_SHIFT_ZZZZ };
7801 static char *_GEANT_DRAWING_SHIFT_guidance[] = {
7802  "To draw a volume shifted from its initial position when hidden",
7803  "line removal is ON. It can be useful if you want to extract a",
7804  "volume or some volumes from the detector to show them more clearly.",
7805  "The last requested SHIFT for each volume",
7806  "NAME is performed. Moreover, the SHIFT of",
7807  "each volume will be performed starting from where its mother has",
7808  "been shifted, so that it's easier to SHIFT nicely sets",
7809  "of volumes using the mother-daughter relationships.",
7810  "If '.' is given as the name of the volume",
7811  "to be shifted, the shifts for all volumes will be reset.",
7812  "The following commands will produce the translation along",
7813  "the Z-axis of the previously drawn volume:", " EXAMPLE -", " dopt hide on",
7814  " satt * seen -2", " draw NAME 40 40 0 10 10 .01 .01", " shift NAME 0 0 10" };
7815 static KmCommand _GEANT_DRAWING_SHIFT = { &_GEANT_DRAWING_BOMB,
7816  "/GEANT/DRAWING/SHIFT", "SHIFT", 0, 2, 4, 4, _GEANT_DRAWING_SHIFT_parameters,
7817  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 17,
7818  _GEANT_DRAWING_SHIFT_guidance, 0, (char**)0, (char*)0, (int*)0 };
7819  
7820 static KmParameter _GEANT_DRAWING_DXCUT_NAME = { "NAME", 4, "Volume name",
7821  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7822  KmTYPE_CHAR,  (void*)0 };
7823 static KmParReal   _GEANT_DRAWING_DXCUT_CUTTHE_type = { "0.", "360.", "0.",
7824  "360.", 0 };
7825 static KmParameter _GEANT_DRAWING_DXCUT_CUTTHE = { "CUTTHE", 6,
7826  "Theta angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
7827  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7828  &_GEANT_DRAWING_DXCUT_CUTTHE_type };
7829 static KmParReal   _GEANT_DRAWING_DXCUT_CUTPHI_type = { "0.", "360.", "0.",
7830  "360.", 0 };
7831 static KmParameter _GEANT_DRAWING_DXCUT_CUTPHI = { "CUTPHI", 6,
7832  "Phi angle of the line normal to cut plane", (char*)0, (char*)0, 12, 0,
7833  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7834  &_GEANT_DRAWING_DXCUT_CUTPHI_type };
7835 static KmParReal   _GEANT_DRAWING_DXCUT_CUTVAL_type = { (char*)0, (char*)0,
7836  (char*)0, (char*)0, 0 };
7837 static KmParameter _GEANT_DRAWING_DXCUT_CUTVAL = { "CUTVAL", 6,
7838  "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
7839  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7840  &_GEANT_DRAWING_DXCUT_CUTVAL_type };
7841 static KmParReal   _GEANT_DRAWING_DXCUT_THETA_type = { "0.", "360.", "0.",
7842  "360.", 0 };
7843 static KmParameter _GEANT_DRAWING_DXCUT_THETA = { "THETA", 5,
7844  "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
7845  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7846  &_GEANT_DRAWING_DXCUT_THETA_type };
7847 static KmParReal   _GEANT_DRAWING_DXCUT_PHI_type = { "0.", "360.", "0.",
7848  "360.", 0 };
7849 static KmParameter _GEANT_DRAWING_DXCUT_PHI = { "PHI", 3,
7850  "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
7851  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7852  &_GEANT_DRAWING_DXCUT_PHI_type };
7853 static KmParReal   _GEANT_DRAWING_DXCUT_U0_type = { (char*)0, (char*)0,
7854  (char*)0, (char*)0, 0 };
7855 static KmParameter _GEANT_DRAWING_DXCUT_U0 = { "U0", 2,
7856  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
7857  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7858  &_GEANT_DRAWING_DXCUT_U0_type };
7859 static KmParReal   _GEANT_DRAWING_DXCUT_V0_type = { (char*)0, (char*)0,
7860  (char*)0, (char*)0, 0 };
7861 static KmParameter _GEANT_DRAWING_DXCUT_V0 = { "V0", 2,
7862  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
7863  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_V0_type };
7864 static KmParReal   _GEANT_DRAWING_DXCUT_SU_type = { (char*)0, (char*)0,
7865  (char*)0, (char*)0, 0 };
7866 static KmParameter _GEANT_DRAWING_DXCUT_SU = { "SU", 2,
7867  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7868  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SU_type };
7869 static KmParReal   _GEANT_DRAWING_DXCUT_SV_type = { (char*)0, (char*)0,
7870  (char*)0, (char*)0, 0 };
7871 static KmParameter _GEANT_DRAWING_DXCUT_SV = { "SV", 2,
7872  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7873  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DXCUT_SV_type };
7874 static KmParameter *_GEANT_DRAWING_DXCUT_parameters[] = {
7875  &_GEANT_DRAWING_DXCUT_NAME, &_GEANT_DRAWING_DXCUT_CUTTHE,
7876  &_GEANT_DRAWING_DXCUT_CUTPHI, &_GEANT_DRAWING_DXCUT_CUTVAL,
7877  &_GEANT_DRAWING_DXCUT_THETA, &_GEANT_DRAWING_DXCUT_PHI,
7878  &_GEANT_DRAWING_DXCUT_U0, &_GEANT_DRAWING_DXCUT_V0, &_GEANT_DRAWING_DXCUT_SU,
7879  &_GEANT_DRAWING_DXCUT_SV };
7880 static char *_GEANT_DRAWING_DXCUT_guidance[] = {
7881  " CALL GDRAWX(name,cutthe,cutphi,cutval,theta,phi,u0,v0,su,sv)",
7882  "The cut plane is normal to the line given by the cut angles",
7883  "cutthe and cutphi and placed at the distance cutval from the origin.",
7884  "The resulting picture is seen from the viewing angles theta,phi.",
7885  "If optional parameters are missing, the current values in /GCDRAW/",
7886  "are taken." };
7887 static KmCommand _GEANT_DRAWING_DXCUT = { &_GEANT_DRAWING_SHIFT,
7888  "/GEANT/DRAWING/DXCUT", "DXCUT", 0, 2, 10, 4,
7889  _GEANT_DRAWING_DXCUT_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
7890  (pCharFunc*)0, 6, _GEANT_DRAWING_DXCUT_guidance, 0, (char**)0, (char*)0,
7891  (int*)0 };
7892  
7893 static KmParameter _GEANT_DRAWING_DCUT_NAME = { "NAME", 4, "Volume name",
7894  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
7895  KmTYPE_CHAR,  (void*)0 };
7896 static char *_GEANT_DRAWING_DCUT_CAXIS_range[] = { "X", "Y", "Z" };
7897 static char *_GEANT_DRAWING_DCUT_CAXIS_text[] = { (char*)0, (char*)0, (char*)0
7898  };
7899 static KmParOption _GEANT_DRAWING_DCUT_CAXIS_type = {
7900  _GEANT_DRAWING_DCUT_CAXIS_text, (int*)0, (int*)0 };
7901 static KmParameter _GEANT_DRAWING_DCUT_CAXIS = { "CAXIS", 5, "Axis value",
7902  (char*)0, (char*)0, 8, 3, _GEANT_DRAWING_DCUT_CAXIS_range, 3,
7903  _GEANT_DRAWING_DCUT_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
7904  &_GEANT_DRAWING_DCUT_CAXIS_type };
7905 static KmParReal   _GEANT_DRAWING_DCUT_CUTVAL_type = { (char*)0, (char*)0,
7906  (char*)0, (char*)0, 0 };
7907 static KmParameter _GEANT_DRAWING_DCUT_CUTVAL = { "CUTVAL", 6,
7908  "Cut plane distance from the origin along the axis", (char*)0, (char*)0, 12,
7909  0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7910  &_GEANT_DRAWING_DCUT_CUTVAL_type };
7911 static KmParReal   _GEANT_DRAWING_DCUT_U0_type = { (char*)0, (char*)0,
7912  (char*)0, (char*)0, 0 };
7913 static KmParameter _GEANT_DRAWING_DCUT_U0 = { "U0", 2,
7914  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
7915  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7916  &_GEANT_DRAWING_DCUT_U0_type };
7917 static KmParReal   _GEANT_DRAWING_DCUT_V0_type = { (char*)0, (char*)0,
7918  (char*)0, (char*)0, 0 };
7919 static KmParameter _GEANT_DRAWING_DCUT_V0 = { "V0", 2,
7920  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
7921  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_V0_type };
7922 static KmParReal   _GEANT_DRAWING_DCUT_SU_type = { (char*)0, (char*)0,
7923  (char*)0, (char*)0, 0 };
7924 static KmParameter _GEANT_DRAWING_DCUT_SU = { "SU", 2,
7925  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7926  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SU_type };
7927 static KmParReal   _GEANT_DRAWING_DCUT_SV_type = { (char*)0, (char*)0,
7928  (char*)0, (char*)0, 0 };
7929 static KmParameter _GEANT_DRAWING_DCUT_SV = { "SV", 2,
7930  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7931  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DCUT_SV_type };
7932 static KmParameter *_GEANT_DRAWING_DCUT_parameters[] = {
7933  &_GEANT_DRAWING_DCUT_NAME, &_GEANT_DRAWING_DCUT_CAXIS,
7934  &_GEANT_DRAWING_DCUT_CUTVAL, &_GEANT_DRAWING_DCUT_U0,
7935  &_GEANT_DRAWING_DCUT_V0, &_GEANT_DRAWING_DCUT_SU, &_GEANT_DRAWING_DCUT_SV };
7936 static char *_GEANT_DRAWING_DCUT_guidance[] = {
7937  " CALL GDRAWC(name,iaxis,cutval,u0,v0,su,sv)",
7938  "The cut plane is normal to caxis (X,Y,Z), corresponding to iaxis (1,2,3),",
7939  "and placed at the distance cutval from the origin.",
7940  "The resulting picture is seen from the the same axis.",
7941  "If optional parameters are missing, the current values in /GCDRAW/",
7942  "are taken.",
7943  "When HIDE Mode is ON, it is possible to get the same effect with",
7944  "the CVOL/BOX command." };
7945 static KmCommand _GEANT_DRAWING_DCUT = { &_GEANT_DRAWING_DXCUT,
7946  "/GEANT/DRAWING/DCUT", "DCUT", 0, 2, 7, 3, _GEANT_DRAWING_DCUT_parameters, 0,
7947  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
7948  _GEANT_DRAWING_DCUT_guidance, 0, (char**)0, (char*)0, (int*)0 };
7949  
7950 static KmParInt    _GEANT_DRAWING_DVOLUME_N_type = { (char*)0, (char*)0,
7951  (char*)0, (char*)0, 0 };
7952 static KmParameter _GEANT_DRAWING_DVOLUME_N = { "N", 1,
7953  "Number of elements in arrays LNAMES and LNUMBS", "1", (char*)0, 8, 0,
7954  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
7955  &_GEANT_DRAWING_DVOLUME_N_type };
7956 static KmParameter _GEANT_DRAWING_DVOLUME_NAMNUM = { "NAMNUM", 6,
7957  "Volume names and numbers (ex. \"NAME1,NR1,NAME2,NR2\")", (char*)0, (char*)0,
7958  20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
7959 static char *_GEANT_DRAWING_DVOLUME_CHNRS_range[] = { "MARS", "DRS" };
7960 static char *_GEANT_DRAWING_DVOLUME_CHNRS_text[] = { (char*)0, (char*)0 };
7961 static KmParOption _GEANT_DRAWING_DVOLUME_CHNRS_type = {
7962  _GEANT_DRAWING_DVOLUME_CHNRS_text, (int*)0, (int*)0 };
7963 static KmParameter _GEANT_DRAWING_DVOLUME_CHNRS = { "CHNRS", 5,
7964  "Reference system used", "MARS", (char*)0, 8, 2,
7965  _GEANT_DRAWING_DVOLUME_CHNRS_range, 2, _GEANT_DRAWING_DVOLUME_CHNRS_range,
7966  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_DRAWING_DVOLUME_CHNRS_type };
7967 static KmParReal   _GEANT_DRAWING_DVOLUME_THETA_type = { "0.", "360.", "0.",
7968  "360.", 0 };
7969 static KmParameter _GEANT_DRAWING_DVOLUME_THETA = { "THETA", 5,
7970  "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
7971  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7972  &_GEANT_DRAWING_DVOLUME_THETA_type };
7973 static KmParReal   _GEANT_DRAWING_DVOLUME_PHI_type = { "0.", "360.", "0.",
7974  "360.", 0 };
7975 static KmParameter _GEANT_DRAWING_DVOLUME_PHI = { "PHI", 3,
7976  "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
7977  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7978  &_GEANT_DRAWING_DVOLUME_PHI_type };
7979 static KmParReal   _GEANT_DRAWING_DVOLUME_PSI_type = { "0.", "180.", "0.",
7980  "180.", 0 };
7981 static KmParameter _GEANT_DRAWING_DVOLUME_PSI = { "PSI", 3,
7982  "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
7983  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_PSI_type };
7984 static KmParReal   _GEANT_DRAWING_DVOLUME_U0_type = { (char*)0, (char*)0,
7985  (char*)0, (char*)0, 0 };
7986 static KmParameter _GEANT_DRAWING_DVOLUME_U0 = { "U0", 2,
7987  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
7988  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
7989  &_GEANT_DRAWING_DVOLUME_U0_type };
7990 static KmParReal   _GEANT_DRAWING_DVOLUME_V0_type = { (char*)0, (char*)0,
7991  (char*)0, (char*)0, 0 };
7992 static KmParameter _GEANT_DRAWING_DVOLUME_V0 = { "V0", 2,
7993  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
7994  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_V0_type };
7995 static KmParReal   _GEANT_DRAWING_DVOLUME_SU_type = { (char*)0, (char*)0,
7996  (char*)0, (char*)0, 0 };
7997 static KmParameter _GEANT_DRAWING_DVOLUME_SU = { "SU", 2,
7998  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
7999  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SU_type };
8000 static KmParReal   _GEANT_DRAWING_DVOLUME_SV_type = { (char*)0, (char*)0,
8001  (char*)0, (char*)0, 0 };
8002 static KmParameter _GEANT_DRAWING_DVOLUME_SV = { "SV", 2,
8003  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8004  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DVOLUME_SV_type };
8005 static KmParameter *_GEANT_DRAWING_DVOLUME_parameters[] = {
8006  &_GEANT_DRAWING_DVOLUME_N, &_GEANT_DRAWING_DVOLUME_NAMNUM,
8007  &_GEANT_DRAWING_DVOLUME_CHNRS, &_GEANT_DRAWING_DVOLUME_THETA,
8008  &_GEANT_DRAWING_DVOLUME_PHI, &_GEANT_DRAWING_DVOLUME_PSI,
8009  &_GEANT_DRAWING_DVOLUME_U0, &_GEANT_DRAWING_DVOLUME_V0,
8010  &_GEANT_DRAWING_DVOLUME_SU, &_GEANT_DRAWING_DVOLUME_SV };
8011 static char *_GEANT_DRAWING_DVOLUME_guidance[] = {
8012  " CALL GDRVOL(n,lnames,lnumbs,nrs,theta,phi,psi,u0,v0,su,sv)",
8013  "N is the number of levels from the top of the geometry structure",
8014  "to the volume lnames(n),lnumbs(n) to be drawn.",
8015  "NAMNUM contain the arrays lnames and lnumbs,",
8016  "identifying the path, in pairs and separated by commas; for",
8017  "example (with n=2) :", "'lname(1),lnumbs(1),lname(2),lnumbs(2) '",
8018  "CHNRS is the name of the reference system used: MARS for MAster Reference",
8019  "System or DRS for Daughter Reference System.",
8020  "NRS=0 for MARS or NRS<>0 for DRS",
8021  "If optional parameters are missing, the current values in /GCDRAW/",
8022  "are taken." };
8023 static KmCommand _GEANT_DRAWING_DVOLUME = { &_GEANT_DRAWING_DCUT,
8024  "/GEANT/DRAWING/DVOLUME", "DVOLUME", 0, 2, 10, 3,
8025  _GEANT_DRAWING_DVOLUME_parameters, 0, 0, gxdraw_, (IntFunc*)0,
8026  (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DRAWING_DVOLUME_guidance, 0,
8027  (char**)0, (char*)0, (int*)0 };
8028  
8029 static KmParReal   _GEANT_DRAWING_RANG5D_X1MIN_type = { (char*)0, (char*)0,
8030  (char*)0, (char*)0, 0 };
8031 static KmParameter _GEANT_DRAWING_RANG5D_X1MIN = { "X1MIN", 5,
8032  "x coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8033  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MIN_type };
8034 static KmParReal   _GEANT_DRAWING_RANG5D_X1MAX_type = { (char*)0, (char*)0,
8035  (char*)0, (char*)0, 0 };
8036 static KmParameter _GEANT_DRAWING_RANG5D_X1MAX = { "X1MAX", 5,
8037  "x coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8038  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_X1MAX_type };
8039 static KmParReal   _GEANT_DRAWING_RANG5D_Y1MIN_type = { (char*)0, (char*)0,
8040  (char*)0, (char*)0, 0 };
8041 static KmParameter _GEANT_DRAWING_RANG5D_Y1MIN = { "Y1MIN", 5,
8042  "y coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8043  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MIN_type };
8044 static KmParReal   _GEANT_DRAWING_RANG5D_Y1MAX_type = { (char*)0, (char*)0,
8045  (char*)0, (char*)0, 0 };
8046 static KmParameter _GEANT_DRAWING_RANG5D_Y1MAX = { "Y1MAX", 5,
8047  "y coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8048  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Y1MAX_type };
8049 static KmParReal   _GEANT_DRAWING_RANG5D_Z1MIN_type = { (char*)0, (char*)0,
8050  (char*)0, (char*)0, 0 };
8051 static KmParameter _GEANT_DRAWING_RANG5D_Z1MIN = { "Z1MIN", 5,
8052  "z coordinate min", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8053  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MIN_type };
8054 static KmParReal   _GEANT_DRAWING_RANG5D_Z1MAX_type = { (char*)0, (char*)0,
8055  (char*)0, (char*)0, 0 };
8056 static KmParameter _GEANT_DRAWING_RANG5D_Z1MAX = { "Z1MAX", 5,
8057  "z coordinate max", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8058  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_RANG5D_Z1MAX_type };
8059 static KmParameter *_GEANT_DRAWING_RANG5D_parameters[] = {
8060  &_GEANT_DRAWING_RANG5D_X1MIN, &_GEANT_DRAWING_RANG5D_X1MAX,
8061  &_GEANT_DRAWING_RANG5D_Y1MIN, &_GEANT_DRAWING_RANG5D_Y1MAX,
8062  &_GEANT_DRAWING_RANG5D_Z1MIN, &_GEANT_DRAWING_RANG5D_Z1MAX };
8063 static char *_GEANT_DRAWING_RANG5D_guidance[] = {
8064  "It sets the range for the x,y,z variables." };
8065 static KmCommand _GEANT_DRAWING_RANG5D = { &_GEANT_DRAWING_DVOLUME,
8066  "/GEANT/DRAWING/RANG5D", "RANG5D", 0, 2, 6, 6,
8067  _GEANT_DRAWING_RANG5D_parameters, 0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0,
8068  (pCharFunc*)0, 1, _GEANT_DRAWING_RANG5D_guidance, 0, (char**)0, (char*)0,
8069  (int*)0 };
8070  
8071 static KmParReal   _GEANT_DRAWING_VAR5D_TSEQTO_type = { (char*)0, (char*)0,
8072  (char*)0, (char*)0, 0 };
8073 static KmParameter _GEANT_DRAWING_VAR5D_TSEQTO = { "TSEQTO", 6,
8074  "total sequential time", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8075  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQTO_type };
8076 static KmParInt    _GEANT_DRAWING_VAR5D_NPROC_type = { (char*)0, (char*)0,
8077  (char*)0, (char*)0, 0 };
8078 static KmParameter _GEANT_DRAWING_VAR5D_NPROC = { "NPROC", 5,
8079  "number of processors", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8080  (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NPROC_type };
8081 static KmParInt    _GEANT_DRAWING_VAR5D_NMPTOT_type = { (char*)0, (char*)0,
8082  (char*)0, (char*)0, 0 };
8083 static KmParameter _GEANT_DRAWING_VAR5D_NMPTOT = { "NMPTOT", 6,
8084  "number of message passing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
8085  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_VAR5D_NMPTOT_type };
8086 static KmParReal   _GEANT_DRAWING_VAR5D_TOTMBY_type = { (char*)0, (char*)0,
8087  (char*)0, (char*)0, 0 };
8088 static KmParameter _GEANT_DRAWING_VAR5D_TOTMBY = { "TOTMBY", 6,
8089  "total megabytes transfert", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8090  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TOTMBY_type };
8091 static KmParReal   _GEANT_DRAWING_VAR5D_TSEQ_type = { (char*)0, (char*)0,
8092  (char*)0, (char*)0, 0 };
8093 static KmParameter _GEANT_DRAWING_VAR5D_TSEQ = { "TSEQ", 4,
8094  "not parallelized code", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
8095  (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TSEQ_type };
8096 static KmParReal   _GEANT_DRAWING_VAR5D_TLAT_type = { (char*)0, (char*)0,
8097  (char*)0, (char*)0, 0 };
8098 static KmParameter _GEANT_DRAWING_VAR5D_TLAT = { "TLAT", 4, "latency time",
8099  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8100  KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TLAT_type };
8101 static KmParReal   _GEANT_DRAWING_VAR5D_TNET_type = { (char*)0, (char*)0,
8102  (char*)0, (char*)0, 0 };
8103 static KmParameter _GEANT_DRAWING_VAR5D_TNET = { "TNET", 4,
8104  "network speed in Mbytes/sec", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8105  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_VAR5D_TNET_type };
8106 static KmParameter *_GEANT_DRAWING_VAR5D_parameters[] = {
8107  &_GEANT_DRAWING_VAR5D_TSEQTO, &_GEANT_DRAWING_VAR5D_NPROC,
8108  &_GEANT_DRAWING_VAR5D_NMPTOT, &_GEANT_DRAWING_VAR5D_TOTMBY,
8109  &_GEANT_DRAWING_VAR5D_TSEQ, &_GEANT_DRAWING_VAR5D_TLAT,
8110  &_GEANT_DRAWING_VAR5D_TNET };
8111 static char *_GEANT_DRAWING_VAR5D_guidance[] = {
8112  "It sets the values of the parameters expressed in the formula and",
8113  "specify which variables must be assumed as x,y,z (setting their value",
8114  "to 1001,1002,1003, respectively)." };
8115 static KmCommand _GEANT_DRAWING_VAR5D = { &_GEANT_DRAWING_RANG5D,
8116  "/GEANT/DRAWING/VAR5D", "VAR5D", 0, 2, 7, 7, _GEANT_DRAWING_VAR5D_parameters,
8117  0, 0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8118  _GEANT_DRAWING_VAR5D_guidance, 0, (char**)0, (char*)0, (int*)0 };
8119  
8120 static KmParReal   _GEANT_DRAWING_SPOT_XLPOS_type = { (char*)0, (char*)0,
8121  (char*)0, (char*)0, 0 };
8122 static KmParameter _GEANT_DRAWING_SPOT_XLPOS = { "XLPOS", 5,
8123  "x coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8124  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_XLPOS_type };
8125 static KmParReal   _GEANT_DRAWING_SPOT_YLPOS_type = { (char*)0, (char*)0,
8126  (char*)0, (char*)0, 0 };
8127 static KmParameter _GEANT_DRAWING_SPOT_YLPOS = { "YLPOS", 5,
8128  "y coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8129  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_YLPOS_type };
8130 static KmParReal   _GEANT_DRAWING_SPOT_ZLPOS_type = { (char*)0, (char*)0,
8131  (char*)0, (char*)0, 0 };
8132 static KmParameter _GEANT_DRAWING_SPOT_ZLPOS = { "ZLPOS", 5,
8133  "z coordinate of light source", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8134  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_SPOT_ZLPOS_type };
8135 static KmParInt    _GEANT_DRAWING_SPOT_INTEN_type = { (char*)0, (char*)0,
8136  (char*)0, (char*)0, 0 };
8137 static KmParameter _GEANT_DRAWING_SPOT_INTEN = { "INTEN", 5,
8138  "intensity of light source", (char*)0, (char*)0, 8, 0, (char**)0, 0,
8139  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_DRAWING_SPOT_INTEN_type };
8140 static KmParameter *_GEANT_DRAWING_SPOT_parameters[] = {
8141  &_GEANT_DRAWING_SPOT_XLPOS, &_GEANT_DRAWING_SPOT_YLPOS,
8142  &_GEANT_DRAWING_SPOT_ZLPOS, &_GEANT_DRAWING_SPOT_INTEN };
8143 static char *_GEANT_DRAWING_SPOT_guidance[] = {
8144  "This point-like light source can be moved in the space and its intensity",
8145  "can be changed (INTEN going from 0 to 10) relatively to the ambience light."
8146  };
8147 static KmCommand _GEANT_DRAWING_SPOT = { &_GEANT_DRAWING_VAR5D,
8148  "/GEANT/DRAWING/SPOT", "SPOT", 0, 2, 4, 4, _GEANT_DRAWING_SPOT_parameters, 0,
8149  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
8150  _GEANT_DRAWING_SPOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
8151  
8152 static KmParameter _GEANT_DRAWING_DRAW_NAME = { "NAME", 4, "Volume name",
8153  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8154  KmTYPE_CHAR,  (void*)0 };
8155 static KmParReal   _GEANT_DRAWING_DRAW_THETA_type = { "0.", "180.", "0.",
8156  "180.", 0 };
8157 static KmParameter _GEANT_DRAWING_DRAW_THETA = { "THETA", 5,
8158  "Viewing angle theta (for 3D projection)", (char*)0, (char*)0, 12, 0,
8159  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
8160  &_GEANT_DRAWING_DRAW_THETA_type };
8161 static KmParReal   _GEANT_DRAWING_DRAW_PHI_type = { "0.", "360.", "0.",
8162  "360.", 0 };
8163 static KmParameter _GEANT_DRAWING_DRAW_PHI = { "PHI", 3,
8164  "Viewing angle phi (for 3D projection)", (char*)0, (char*)0, 12, 0,
8165  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
8166  &_GEANT_DRAWING_DRAW_PHI_type };
8167 static KmParReal   _GEANT_DRAWING_DRAW_PSI_type = { "0.", "360.", "0.",
8168  "360.", 0 };
8169 static KmParameter _GEANT_DRAWING_DRAW_PSI = { "PSI", 3,
8170  "Viewing angle psi (for 2D rotation)", (char*)0, (char*)0, 12, 0, (char**)0,
8171  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_PSI_type };
8172 static KmParReal   _GEANT_DRAWING_DRAW_U0_type = { (char*)0, (char*)0,
8173  (char*)0, (char*)0, 0 };
8174 static KmParameter _GEANT_DRAWING_DRAW_U0 = { "U0", 2,
8175  "U-coord. (horizontal) of volume origin", (char*)0, (char*)0, 12, 0,
8176  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
8177  &_GEANT_DRAWING_DRAW_U0_type };
8178 static KmParReal   _GEANT_DRAWING_DRAW_V0_type = { (char*)0, (char*)0,
8179  (char*)0, (char*)0, 0 };
8180 static KmParameter _GEANT_DRAWING_DRAW_V0 = { "V0", 2,
8181  "V-coord. (vertical) of volume origin", (char*)0, (char*)0, 12, 0, (char**)0,
8182  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_V0_type };
8183 static KmParReal   _GEANT_DRAWING_DRAW_SU_type = { (char*)0, (char*)0,
8184  (char*)0, (char*)0, 0 };
8185 static KmParameter _GEANT_DRAWING_DRAW_SU = { "SU", 2,
8186  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8187  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SU_type };
8188 static KmParReal   _GEANT_DRAWING_DRAW_SV_type = { (char*)0, (char*)0,
8189  (char*)0, (char*)0, 0 };
8190 static KmParameter _GEANT_DRAWING_DRAW_SV = { "SV", 2,
8191  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8192  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_DRAWING_DRAW_SV_type };
8193 static KmParameter *_GEANT_DRAWING_DRAW_parameters[] = {
8194  &_GEANT_DRAWING_DRAW_NAME, &_GEANT_DRAWING_DRAW_THETA,
8195  &_GEANT_DRAWING_DRAW_PHI, &_GEANT_DRAWING_DRAW_PSI, &_GEANT_DRAWING_DRAW_U0,
8196  &_GEANT_DRAWING_DRAW_V0, &_GEANT_DRAWING_DRAW_SU, &_GEANT_DRAWING_DRAW_SV };
8197 static char *_GEANT_DRAWING_DRAW_guidance[] = {
8198  " CALL GDRAW(name,theta,phi,psi,u0,v0,su,sv)",
8199  "If optional parameters are missing, the corresponding values are",
8200  "taken from the common /GCDRAW/. This command will draw the volumes,",
8201  "selected with their graphical attributes, set by the SATT",
8202  "facility. The drawing may be performed with hidden line removal",
8203  "and with shading effects according to the value of the options HIDE",
8204  "and SHAD; if the option SHAD is ON, the contour's edges can be",
8205  "drawn or not. If the option HIDE is ON, the detector can be",
8206  "exploded (BOMB), clipped with different shapes (CVOL), and some",
8207  "of its parts can be shifted from their original",
8208  "position (SHIFT). When HIDE is ON, if",
8209  "the drawing requires more than the available memory, the program",
8210  "will evaluate and display the number of missing words",
8211  "(so that the user can increase the",
8212  "size of its ZEBRA store). Finally, at the end of each drawing (with HIDE\
8213  on),", "the program will print messages about the memory used and",
8214  "statistics on the volumes' visibility.",
8215  "The following commands will produce the drawing of a green",
8216  "volume, specified by NAME, without using the hidden line removal",
8217  "technique, using the hidden line removal technique,",
8218  "with different linewidth and colour (red), with",
8219  "solid colour, with shading of surfaces, and without edges.",
8220  "Finally, some examples are given for the ray-tracing. (A possible",
8221  "string for the NAME of the volume can be found using the command DTREE).",
8222  " EXAMPLE -", " satt * seen -2", " satt NAME colo 3",
8223  " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt hide on",
8224  " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME colo 2",
8225  " satt NAME lwid 4", " draw NAME 40 40 0 10 10 .01 .01", " next",
8226  " dopt shad on", " satt * lwid 1", " satt NAME fill 1",
8227  " draw NAME 40 40 0 10 10 .01 .01", " next", " satt NAME fill 3",
8228  " draw NAME 40 40 0 10 10 .01 .01", " next", " dopt edge off",
8229  " draw NAME 40 40 0 10 10 .01 .01", " dopt rayt on", " satt * fill 20",
8230  " dopt mapp 1", " draw NAME 40 40 0 10 10 .01 .01", " dopt proj pers",
8231  " persp NAME 500", " draw NAME 40 40 0 10 10 1 1", " valcut 100 100 100",
8232  " dopt mapp 0", " dopt user on", " satt NAM1 seen 0", " satt NAM2 colo 2",
8233  " draw NAME 40 40 0 10 10 5 5" };
8234 static KmCommand _GEANT_DRAWING_DRAW = { &_GEANT_DRAWING_SPOT,
8235  "/GEANT/DRAWING/DRAW", "DRAW", 0, 2, 8, 1, _GEANT_DRAWING_DRAW_parameters, 0,
8236  0, gxdraw_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 59,
8237  _GEANT_DRAWING_DRAW_guidance, 0, (char**)0, (char*)0, (int*)0 };
8238  
8239 static char *_GEANT_DRAWING_guidance[] = {
8240  "Drawing commands. These commands allow the visualization in several ways",
8241  "of the volumes defined in the geometrical data structure. It is possible",
8242  "to draw the logical tree of volumes belonging to the detector (DTREE),",
8243  "to show their geometrical specification (DSPEC,DFSPC), to draw them",
8244  "and their cut views (DRAW, DCUT). Moreover, it is possible to execute",
8245  "these commands when the hidden line removal option is activated; in",
8246  "this case, the volumes can be also either translated in the space",
8247  "(SHIFT), or clipped by boolean operation (CVOL). In addition, it is",
8248  "possible to fill the surfaces of the volumes",
8249  "with solid colours when the shading option (SHAD) is activated.",
8250  "Several tools (ZOOM, LENS) have been developed to zoom detailed parts",
8251  "of the detectors or to scan physical events as well.",
8252  "Finally, the command MOVE will allow the rotation, translation and zooming",
8253  "on real time parts of the detectors or tracks and hits of a simulated\
8254  event.",
8255  "Ray-tracing commands. In case the command (DOPT RAYT ON) is executed,",
8256  "the drawing is performed by the Geant ray-tracing;",
8257  "automatically, the color is assigned according to the tracking medium of\
8258  each",
8259  "volume and the volumes with a density lower/equal than the air are\
8260  considered",
8261  "transparent; if the option (USER) is set (ON) (again via the command\
8262  (DOPT)),",
8263  "the user can set color and visibility for the desired volumes via the\
8264  command",
8265  "(SATT), as usual, relatively to the attributes (COLO) and (SEEN).",
8266  "The resolution can be set via the command (SATT * FILL VALUE), where\
8267  (VALUE)",
8268  "is the ratio between the number of pixels drawn and 20 (user coordinates).",
8269  "Parallel view and perspective view are possible (DOPT PROJ PARA/PERS); in\
8270  the",
8271  "first case, we assume that the first mother volume of the tree is a box\
8272  with",
8273  "dimensions 10000 X 10000 X 10000 cm and the view point (infinetely far) is",
8274  "5000 cm far from the origin along the Z axis of the user coordinates; in\
8275  the",
8276  "second case, the distance between the observer and the origin of the world",
8277  "reference system is set in cm by the command (PERSP NAME VALUE);\
8278  grand-angle",
8279  "or telescopic effects can be achieved changing the scale factors in the\
8280  command", "(DRAW). When the final picture does not occupy the full window,",
8281  "mapping the space before tracing can speed up the drawing, but can also",
8282  "produce less precise results; values from 1 to 4 are allowed in the\
8283  command",
8284  "(DOPT MAPP VALUE), the mapping being more precise for increasing (VALUE);\
8285  for",
8286  "(VALUE = 0) no mapping is performed (therefore max precision and lowest\
8287  speed).",
8288  "The command (VALCUT) allows the cutting of the detector by three planes",
8289  "ortogonal to the x,y,z axis. The attribute (LSTY) can be set by the\
8290  command",
8291  "SATT for any desired volume and can assume values from 0 to 7; it\
8292  determines",
8293  "the different light processing to be performed for different materials:",
8294  "0 = dark-matt, 1 = bright-matt, 2 = plastic, 3 = ceramic, 4 =\
8295  rough-metals,",
8296  "5 = shiny-metals, 6 = glass, 7 = mirror. The detector is assumed to be in\
8297  the",
8298  "dark, the ambient light luminosity is 0.2 for each basic hue (the\
8299  saturation",
8300  "is 0.9) and the observer is assumed to have a light source (therefore he\
8301  will",
8302  "produce parallel light in the case of parallel view and point-like-source",
8303  "light in the case of perspective view)." };
8304 static KmMenu _GEANT_DRAWING = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/DRAWING",
8305  "DRAWING", 2, &_GEANT_DRAWING_DRAW, 45, _GEANT_DRAWING_guidance };
8306  
8307 static char *_GEANT_CVOL_guidance[] = { "Clipping commands.",
8308  "The hidden line removal technique is necessary to visualize properly",
8309  "very complex detectors. At the same time, it can be useful to visualize",
8310  "the inner elements of a detector in detail. For this purpose, the",
8311  "commands menu CVOL has been developed: these commands allow",
8312  "subtractions (via boolean operation) of given shapes from any part of",
8313  "the detector, therefore showing its inner contents. It is possible",
8314  "to clip each different volume by means of a different shape (BOX ,",
8315  "TUBE, CONE, SPHE are available). If '*' is given as the name of the",
8316  "volume to be clipped, all volumes are clipped by the given shape.",
8317  "A volume can be clipped at most twice (even by",
8318  "different shapes); if a volume is explicitely clipped",
8319  "twice, the '*' will not act on it anymore. Giving '.' as the name",
8320  "of the volume to be clipped will reset the clipping." };
8321 static KmMenu _GEANT_CVOL = { &_GEANT_DRAWING,  (KmMenu*)0, "/GEANT/CVOL",
8322  "CVOL", 2, &_GEANT_CVOL_BOX, 14, _GEANT_CVOL_guidance };
8323  
8324 static char *_GEANT_guidance[] = { "GEANT specific commands." };
8325 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_CVOL, "/GEANT", "GEANT", 1,
8326  (KmCommand*)0, 1, _GEANT_guidance };
8327  
8328   klnkmenu( &_GEANT, 921023 );
8329 }
8330  
8331  
8332 #ifdef F77_LCASE
8333 #  define gkgcon_ gkgcon
8334 #  define gxgcon_ gxgcon
8335 #endif
8336  
8337 #ifdef F77_UCASE
8338 #  define gkgcon_ GKGCON
8339 #  define gxgcon_ GXGCON
8340 #endif
8341  
8342 #ifdef IBM370
8343 #  pragma linkage(GKGCON,FORTRAN)
8344 #  pragma linkage(GXGCON,FORTRAN)
8345 #endif
8346  
8347 extern void gkgcon_();
8348 extern void gxgcon_();
8349  
8350 void gkgcon_()
8351 {
8352  
8353 static KmParInt    _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type = { (char*)0,
8354  (char*)0, (char*)0, (char*)0, 0 };
8355 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD = { "ICADD", 5,
8356  "Colour table index", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
8357  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD_type };
8358 static KmParInt    _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type = { (char*)0,
8359  (char*)0, (char*)0, (char*)0, 0 };
8360 static KmParameter _GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL = { "ICVAL", 5,
8361  "Colour table value", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
8362  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL_type };
8363 static KmParameter *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters[] = {
8364  &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICADD,
8365  &_GEANT_GRAPHICS_CONTROL_MAP_COLOR_ICVAL };
8366 static char *_GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance[] = {
8367  "Sets the color table LOOKTB(ICADD)=ICVAL.",
8368  "If ICADD=0 then LOOKTB(1:16) is taken.",
8369  "If ICVAL is omitted the current value of LOOKTB(ICADD) is shown." };
8370 static KmCommand _GEANT_GRAPHICS_CONTROL_MAP_COLOR = {  (KmCommand*)0,
8371  "/GEANT/GRAPHICS_CONTROL/MAP_COLOR", "MAP_COLOR", 0, 2, 2, 0,
8372  _GEANT_GRAPHICS_CONTROL_MAP_COLOR_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8373  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_MAP_COLOR_guidance,
8374  0, (char**)0, (char*)0, (int*)0 };
8375  
8376 static KmParReal   _GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type = { (char*)0,
8377  (char*)0, (char*)0, (char*)0, 0 };
8378 static KmParameter _GEANT_GRAPHICS_CONTROL_SPERS_DPERS = { "DPERS", 5,
8379  "Distance from the origin", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8380  (char**)0, (KmParFlag)0, KmTYPE_REAL,
8381  &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS_type };
8382 static KmParameter *_GEANT_GRAPHICS_CONTROL_SPERS_parameters[] = {
8383  &_GEANT_GRAPHICS_CONTROL_SPERS_DPERS };
8384 static char *_GEANT_GRAPHICS_CONTROL_SPERS_guidance[] = {
8385  "Set the variable dpers in /GCDRAW/, representing",
8386  "the distance from the origin when using option PERSpective." };
8387 static KmCommand _GEANT_GRAPHICS_CONTROL_SPERS = {
8388  &_GEANT_GRAPHICS_CONTROL_MAP_COLOR, "/GEANT/GRAPHICS_CONTROL/SPERS", "SPERS",
8389  0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SPERS_parameters, 0, 0, gxgcon_,
8390  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
8391  _GEANT_GRAPHICS_CONTROL_SPERS_guidance, 0, (char**)0, (char*)0, (int*)0 };
8392  
8393 static KmParReal   _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type = { (char*)0,
8394  (char*)0, (char*)0, (char*)0, 0 };
8395 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_XSIZE = { "XSIZE", 5,
8396  "Size along X", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
8397  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE_type };
8398 static KmParReal   _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type = { (char*)0,
8399  (char*)0, (char*)0, (char*)0, 0 };
8400 static KmParameter _GEANT_GRAPHICS_CONTROL_SIZE_YSIZE = { "YSIZE", 5,
8401  "Size along Y", "20.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
8402  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE_type };
8403 static KmParameter *_GEANT_GRAPHICS_CONTROL_SIZE_parameters[] = {
8404  &_GEANT_GRAPHICS_CONTROL_SIZE_XSIZE, &_GEANT_GRAPHICS_CONTROL_SIZE_YSIZE };
8405 static char *_GEANT_GRAPHICS_CONTROL_SIZE_guidance[] = {
8406  "Set the size of the picture.",
8407  "On the terminal, the pictures will have the ratio YSIZE/XSIZE, and,",
8408  "if a metafile is produced, pictures will be YSIZE by XSIZE cm.",
8409  "This command sets the parameters for the normalisation transformation",
8410  "number 1 to [0-XSIZE], [0-YSIZE]." };
8411 static KmCommand _GEANT_GRAPHICS_CONTROL_SIZE = {
8412  &_GEANT_GRAPHICS_CONTROL_SPERS, "/GEANT/GRAPHICS_CONTROL/SIZE", "SIZE", 0, 2,
8413  2, 0, _GEANT_GRAPHICS_CONTROL_SIZE_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8414  (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_GRAPHICS_CONTROL_SIZE_guidance, 0,
8415  (char**)0, (char*)0, (int*)0 };
8416  
8417 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IOPT = { "IOPT", 4,
8418  "Option name", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8419  KmTYPE_CHAR,  (void*)0 };
8420 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPT_IVAL = { "IVAL", 4,
8421  "Option value", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8422  KmTYPE_CHAR,  (void*)0 };
8423 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPT_parameters[] = {
8424  &_GEANT_GRAPHICS_CONTROL_DOPT_IOPT, &_GEANT_GRAPHICS_CONTROL_DOPT_IVAL };
8425 static char *_GEANT_GRAPHICS_CONTROL_DOPT_guidance[] = {
8426  " CALL GDOPT(iopt,ival)", "To set/modify the drawing options.",
8427  "   IOPT   IVAL      Action", "   THRZ    ON       Draw tracks in R vs Z",
8428  "           OFF (D)  Draw tracks in X,Y,Z", "           180",
8429  "           360", "   PROJ    PARA (D) Parallel projection",
8430  "           PERS     Perspective",
8431  "   TRAK    LINE (D) Trajectory drawn with lines",
8432  "           POIN       \" \" with markers",
8433  "   HIDE    ON       Hidden line removal using the CG package",
8434  "           OFF (D)  No hidden line removal",
8435  "   SHAD    ON       Fill area and shading of surfaces.",
8436  "           OFF (D)  Normal hidden line removal.",
8437  "   RAYT    ON       Ray-tracing on.",
8438  "           OFF (D)  Ray-tracing off.",
8439  "   EDGE    OFF      Does not draw contours when shad is on.",
8440  "           ON  (D)  Normal shading.",
8441  "   MAPP    1,2,3,4  Mapping before ray-tracing.",
8442  "           0   (D)  No mapping.",
8443  "   USER    ON       User graphics options in the raytracing.",
8444  "           OFF (D)  Automatic graphics options." };
8445 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPT = {
8446  &_GEANT_GRAPHICS_CONTROL_SIZE, "/GEANT/GRAPHICS_CONTROL/DOPT", "DOPT", 0, 2,
8447  2, 0, _GEANT_GRAPHICS_CONTROL_DOPT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8448  (SUBROUTINE*)0, (pCharFunc*)0, 23, _GEANT_GRAPHICS_CONTROL_DOPT_guidance, 0,
8449  (char**)0, (char*)0, (int*)0 };
8450  
8451 static char *_GEANT_GRAPHICS_CONTROL_NEXT_guidance[] = {
8452  "Clear screen (start a new picture on graphics file, if opened)." };
8453 static KmCommand _GEANT_GRAPHICS_CONTROL_NEXT = {
8454  &_GEANT_GRAPHICS_CONTROL_DOPT, "/GEANT/GRAPHICS_CONTROL/NEXT", "NEXT", 0, 2,
8455  0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0, (SUBROUTINE*)0,
8456  (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_NEXT_guidance, 0, (char**)0,
8457  (char*)0, (int*)0 };
8458  
8459 static KmParInt    _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type = { (char*)0,
8460  (char*)0, (char*)0, (char*)0, 0 };
8461 static KmParameter _GEANT_GRAPHICS_CONTROL_LWID_LWIDTH = { "LWIDTH", 6,
8462  "Line width code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
8463  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH_type };
8464 static KmParameter *_GEANT_GRAPHICS_CONTROL_LWID_parameters[] = {
8465  &_GEANT_GRAPHICS_CONTROL_LWID_LWIDTH };
8466 static char *_GEANT_GRAPHICS_CONTROL_LWID_guidance[] = {
8467  " CALL GDLW(-abs(lwidth))" };
8468 static KmCommand _GEANT_GRAPHICS_CONTROL_LWID = {
8469  &_GEANT_GRAPHICS_CONTROL_NEXT, "/GEANT/GRAPHICS_CONTROL/LWID", "LWID", 0, 2,
8470  1, 1, _GEANT_GRAPHICS_CONTROL_LWID_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8471  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_GRAPHICS_CONTROL_LWID_guidance, 0,
8472  (char**)0, (char*)0, (int*)0 };
8473  
8474 static KmParInt    _GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type = { (char*)0,
8475  (char*)0, (char*)0, (char*)0, 0 };
8476 static KmParameter _GEANT_GRAPHICS_CONTROL_COLOR_ICOL = { "ICOL", 4,
8477  "Colour code", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8478  KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL_type };
8479 static KmParameter *_GEANT_GRAPHICS_CONTROL_COLOR_parameters[] = {
8480  &_GEANT_GRAPHICS_CONTROL_COLOR_ICOL };
8481 static char *_GEANT_GRAPHICS_CONTROL_COLOR_guidance[] = {
8482  " CALL GDCOL(-abs(icol))" };
8483 static KmCommand _GEANT_GRAPHICS_CONTROL_COLOR = {
8484  &_GEANT_GRAPHICS_CONTROL_LWID, "/GEANT/GRAPHICS_CONTROL/COLOR", "COLOR", 0,
8485  2, 1, 1, _GEANT_GRAPHICS_CONTROL_COLOR_parameters, 0, 0, gxgcon_,
8486  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8487  _GEANT_GRAPHICS_CONTROL_COLOR_guidance, 0, (char**)0, (char*)0, (int*)0 };
8488  
8489 static KmParReal   _GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type = { (char*)0,
8490  (char*)0, (char*)0, (char*)0, 0 };
8491 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCU = { "GSCU", 4,
8492  "Scale factor for U-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8493  (char**)0, (KmParFlag)0, KmTYPE_REAL,
8494  &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU_type };
8495 static KmParReal   _GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type = { (char*)0,
8496  (char*)0, (char*)0, (char*)0, 0 };
8497 static KmParameter _GEANT_GRAPHICS_CONTROL_SCALE_GSCV = { "GSCV", 4,
8498  "Scale factor for V-coord.", (char*)0, (char*)0, 12, 0, (char**)0, 0,
8499  (char**)0, (KmParFlag)0, KmTYPE_REAL,
8500  &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV_type };
8501 static KmParameter *_GEANT_GRAPHICS_CONTROL_SCALE_parameters[] = {
8502  &_GEANT_GRAPHICS_CONTROL_SCALE_GSCU, &_GEANT_GRAPHICS_CONTROL_SCALE_GSCV };
8503 static char *_GEANT_GRAPHICS_CONTROL_SCALE_guidance[] = {
8504  "Change the scale factors GSCU and GSCV in /GCDRAW/." };
8505 static KmCommand _GEANT_GRAPHICS_CONTROL_SCALE = {
8506  &_GEANT_GRAPHICS_CONTROL_COLOR, "/GEANT/GRAPHICS_CONTROL/SCALE", "SCALE", 0,
8507  2, 2, 2, _GEANT_GRAPHICS_CONTROL_SCALE_parameters, 0, 0, gxgcon_,
8508  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8509  _GEANT_GRAPHICS_CONTROL_SCALE_guidance, 0, (char**)0, (char*)0, (int*)0 };
8510  
8511 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_NAME = { "NAME", 4,
8512  "Volume name", "*   ", (char*)0, 20, 0, (char**)0, 0, (char**)0,
8513  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8514 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IOPT = { "IOPT", 4,
8515  "Name of the attribute to be set", "DEFA", (char*)0, 20, 0, (char**)0, 0,
8516  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8517 static KmParInt    _GEANT_GRAPHICS_CONTROL_SATT_IVAL_type = { (char*)0,
8518  (char*)0, (char*)0, (char*)0, 0 };
8519 static KmParameter _GEANT_GRAPHICS_CONTROL_SATT_IVAL = { "IVAL", 4,
8520  "Value to which the attribute is to be set", "10000", (char*)0, 8, 0,
8521  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
8522  &_GEANT_GRAPHICS_CONTROL_SATT_IVAL_type };
8523 static KmParameter *_GEANT_GRAPHICS_CONTROL_SATT_parameters[] = {
8524  &_GEANT_GRAPHICS_CONTROL_SATT_NAME, &_GEANT_GRAPHICS_CONTROL_SATT_IOPT,
8525  &_GEANT_GRAPHICS_CONTROL_SATT_IVAL };
8526 static char *_GEANT_GRAPHICS_CONTROL_SATT_guidance[] = {
8527  " CALL GSATT(name,iopt,ival)", "name='*' stands for all the volumes.",
8528  "iopt can be chosen among the following :",
8529  " 'WORK'   0=volume name is inactive for the tracking",
8530  "          1=volume name is active for the tracking (default)",
8531  " 'SEEN'   0=volume name is invisible",
8532  "          1=volume name is visible (default)",
8533  "         -1=volume invisible with all its descendants in the tree",
8534  "         -2=volume visible but not its descendants in the tree",
8535  " 'LSTY'   line style 1,2,3,... (default=1)",
8536  "          LSTY=7 will produce a very precise approximation for",
8537  "          revolution bodies.",
8538  " 'LWID'   line width -7,...,1,2,3,..7 (default=1)",
8539  "          LWID<0 will act as abs(LWID) was set for the volume",
8540  "          and for all the levels below it. When SHAD is 'ON', LWID",
8541  "          represent the linewidth of the scan lines filling the surfaces",
8542  "          (whereas the FILL value represent their number). Therefore",
8543  "          tuning this parameter will help to obtain the desired",
8544  "          quality/performance ratio.",
8545  " 'COLO'   colour code -166,...,1,2,..166 (default=1)",
8546  "          n=1=black",
8547  "          n=2=red;    n=17+m, m=0,25, increasing luminosity according to\
8548  'm';",
8549  "          n=3=green;  n=67+m, m=0,25, increasing luminosity according to\
8550  'm';",
8551  "          n=4=blue;   n=117+m, m=0,25, increasing luminosity according to\
8552  'm';",
8553  "          n=5=yellow; n=42+m, m=0,25, increasing luminosity according to\
8554  'm';",
8555  "          n=6=violet; n=142+m, m=0,25, increasing luminosity according to\
8556  'm';",
8557  "          n=7=lightblue; n=92+m, m=0,25, increasing luminosity according to\
8558  'm';", "          colour=n*10+m, m=1,2,...9, will produce the same colour",
8559  "          as 'n', but with increasing luminosity according to 'm';",
8560  "          COLO<0 will act as if abs(COLO) was set for the volume",
8561  "          and for all the levels below it.",
8562  "          When for a volume the attribute FILL is > 1 (and the",
8563  "          option SHAD is on), the ABS of its colour code must be < 8",
8564  "          because an automatic shading of its faces will be",
8565  "          performed.",
8566  " 'FILL'   (1992) fill area  -7,...,0,1,...7 (default=0)",
8567  "          when option SHAD is 'on' the FILL attribute of any",
8568  "          volume can be set different from 0 (normal drawing);",
8569  "          if it is set to 1, the faces of such volume will be filled",
8570  "          with solid colours; if ABS(FILL) is > 1, then a light",
8571  "          source is placed along the observer line, and the faces of",
8572  "          such volumes will be painted by colours whose luminosity",
8573  "          will depend on the amount of light reflected;",
8574  "          if ABS(FILL) = 1, then it is possible to use all the 166",
8575  "          colours of the colour table, becouse the automatic shading",
8576  "          is not performed;",
8577  "          for increasing values of FILL the drawing will be performed",
8578  "          with higher and higher resolution improving the quality (the",
8579  "          number of scan lines used to fill the faces increases with\
8580  FILL);", "          it is possible to set different values of FILL",
8581  "          for different volumes, in order to optimize at the same time",
8582  "          the performance and the quality of the picture;",
8583  "          FILL<0 will act as if abs(FILL) was set for the volume",
8584  "          and for all the levels below it.",
8585  "          This kind of drawing can be saved in 'picture files'",
8586  "          or in view banks.", "          0=drawing without fill area",
8587  "          1=faces filled with solid colours and resolution = 6",
8588  "          2=lowest resolution (very fast)",
8589  "          3=default resolution", "          4=.................",
8590  "          5=.................", "          6=.................",
8591  "          7=max resolution",
8592  "          Finally, if a coloured background is desired, the FILL",
8593  "          attribute for the first volume of the tree must be set",
8594  "          equal to -abs(colo), colo being >0 and <166.",
8595  " 'SET '   set number associated to volume name",
8596  " 'DET '   detector number associated to volume name",
8597  " 'DTYP'   detector type (1,2)" };
8598 static KmCommand _GEANT_GRAPHICS_CONTROL_SATT = {
8599  &_GEANT_GRAPHICS_CONTROL_SCALE, "/GEANT/GRAPHICS_CONTROL/SATT", "SATT", 0, 2,
8600  3, 0, _GEANT_GRAPHICS_CONTROL_SATT_parameters, 0, 0, gxgcon_, (IntFunc*)0,
8601  (SUBROUTINE*)0, (pCharFunc*)0, 70, _GEANT_GRAPHICS_CONTROL_SATT_guidance, 0,
8602  (char**)0, (char*)0, (int*)0 };
8603  
8604 static KmParReal   _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type = { "-10.", "10.",
8605  "-10.", "10.", 0 };
8606 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETVA_RVAL = { "RVAL", 4,
8607  "Attribute value", "1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
8608  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL_type };
8609 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETVA_parameters[] = {
8610  &_GEANT_GRAPHICS_CONTROL_SSETVA_RVAL };
8611 static char *_GEANT_GRAPHICS_CONTROL_SSETVA_guidance[] = {
8612  "Set current attribute value." };
8613 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETVA = {
8614  &_GEANT_GRAPHICS_CONTROL_SATT, "/GEANT/GRAPHICS_CONTROL/SSETVA", "SSETVA", 0,
8615  2, 1, 0, _GEANT_GRAPHICS_CONTROL_SSETVA_parameters, 0, 0, gxgcon_,
8616  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8617  _GEANT_GRAPHICS_CONTROL_SSETVA_guidance, 0, (char**)0, (char*)0, (int*)0 };
8618  
8619 static KmParameter _GEANT_GRAPHICS_CONTROL_SSETAT_IOPT = { "IOPT", 4,
8620  "Attribute name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8621  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8622 static KmParameter *_GEANT_GRAPHICS_CONTROL_SSETAT_parameters[] = {
8623  &_GEANT_GRAPHICS_CONTROL_SSETAT_IOPT };
8624 static char *_GEANT_GRAPHICS_CONTROL_SSETAT_guidance[] = {
8625  "Set current attribute." };
8626 static KmCommand _GEANT_GRAPHICS_CONTROL_SSETAT = {
8627  &_GEANT_GRAPHICS_CONTROL_SSETVA, "/GEANT/GRAPHICS_CONTROL/SSETAT", "SSETAT",
8628  0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_SSETAT_parameters, 0, 0, gxgcon_,
8629  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
8630  _GEANT_GRAPHICS_CONTROL_SSETAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
8631  
8632 static char *_GEANT_GRAPHICS_CONTROL_RESETWK_guidance[] = { "CALL GRESWK",
8633  "It deactivate the previosly activated workstation and reactivate the",
8634  "default one." };
8635 static KmCommand _GEANT_GRAPHICS_CONTROL_RESETWK = {
8636  &_GEANT_GRAPHICS_CONTROL_SSETAT, "/GEANT/GRAPHICS_CONTROL/RESETWK",
8637  "RESETWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
8638  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_RESETWK_guidance,
8639  0, (char**)0, (char*)0, (int*)0 };
8640  
8641 static char *_GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance[] = { "CALL GCHNWK",
8642  "It open a new workstation (if not already opened) and activate it",
8643  "(deactivating the default one)." };
8644 static KmCommand _GEANT_GRAPHICS_CONTROL_CHANGEWK = {
8645  &_GEANT_GRAPHICS_CONTROL_RESETWK, "/GEANT/GRAPHICS_CONTROL/CHANGEWK",
8646  "CHANGEWK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
8647  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_CHANGEWK_guidance,
8648  0, (char**)0, (char*)0, (int*)0 };
8649  
8650 static char *_GEANT_GRAPHICS_CONTROL_DCLOSE_guidance[] = { " CALL GDCLOS",
8651  "It closes the currently open view bank; it must be called after the",
8652  "end of the drawing to be stored." };
8653 static KmCommand _GEANT_GRAPHICS_CONTROL_DCLOSE = {
8654  &_GEANT_GRAPHICS_CONTROL_CHANGEWK, "/GEANT/GRAPHICS_CONTROL/DCLOSE",
8655  "DCLOSE", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxgcon_, (IntFunc*)0,
8656  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GRAPHICS_CONTROL_DCLOSE_guidance, 0,
8657  (char**)0, (char*)0, (int*)0 };
8658  
8659 static KmParInt    _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type = { (char*)0,
8660  (char*)0, (char*)0, (char*)0, 0 };
8661 static KmParameter _GEANT_GRAPHICS_CONTROL_DELETE_IVIEW = { "IVIEW", 5,
8662  "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8663  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW_type };
8664 static KmParameter *_GEANT_GRAPHICS_CONTROL_DELETE_parameters[] = {
8665  &_GEANT_GRAPHICS_CONTROL_DELETE_IVIEW };
8666 static char *_GEANT_GRAPHICS_CONTROL_DELETE_guidance[] = {
8667  " CALL GDELET(iview)", "It deletes a view bank from memory." };
8668 static KmCommand _GEANT_GRAPHICS_CONTROL_DELETE = {
8669  &_GEANT_GRAPHICS_CONTROL_DCLOSE, "/GEANT/GRAPHICS_CONTROL/DELETE", "DELETE",
8670  0, 2, 1, 1, _GEANT_GRAPHICS_CONTROL_DELETE_parameters, 0, 0, gxgcon_,
8671  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
8672  _GEANT_GRAPHICS_CONTROL_DELETE_guidance, 0, (char**)0, (char*)0, (int*)0 };
8673  
8674 static KmParInt    _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type = { (char*)0,
8675  (char*)0, (char*)0, (char*)0, 0 };
8676 static KmParameter _GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW = { "IVIEW", 5,
8677  "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8678  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW_type };
8679 static KmParameter *_GEANT_GRAPHICS_CONTROL_DSHOW_parameters[] = {
8680  &_GEANT_GRAPHICS_CONTROL_DSHOW_IVIEW };
8681 static char *_GEANT_GRAPHICS_CONTROL_DSHOW_guidance[] = {
8682  " CALL GDSHOW(iview)",
8683  "It shows on the screen the contents of a view bank. It",
8684  "can be called after a view bank has been closed." };
8685 static KmCommand _GEANT_GRAPHICS_CONTROL_DSHOW = {
8686  &_GEANT_GRAPHICS_CONTROL_DELETE, "/GEANT/GRAPHICS_CONTROL/DSHOW", "DSHOW", 0,
8687  2, 1, 0, _GEANT_GRAPHICS_CONTROL_DSHOW_parameters, 0, 0, gxgcon_,
8688  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8689  _GEANT_GRAPHICS_CONTROL_DSHOW_guidance, 0, (char**)0, (char*)0, (int*)0 };
8690  
8691 static KmParInt    _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type = { (char*)0,
8692  (char*)0, (char*)0, (char*)0, 0 };
8693 static KmParameter _GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW = { "IVIEW", 5,
8694  "View number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
8695  (KmParFlag)0, KmTYPE_INT, &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW_type };
8696 static KmParameter *_GEANT_GRAPHICS_CONTROL_DOPEN_parameters[] = {
8697  &_GEANT_GRAPHICS_CONTROL_DOPEN_IVIEW };
8698 static char *_GEANT_GRAPHICS_CONTROL_DOPEN_guidance[] = {
8699  " CALL GDOPEN(iview)",
8700  "When a drawing is very complex and requires a long time to be",
8701  "executed, it can be useful to store it in a view bank: after a",
8702  "call to DOPEN and the execution of the drawing (nothing will",
8703  "appear on the screen), and after a necessary call to DCLOSE,",
8704  "the contents of the bank can be displayed in a very fast way",
8705  "through a call to DSHOW; therefore, the detector can be easily",
8706  "zoomed many times in different ways. Please note that the pictures",
8707  "with solid colours can now be stored in a view bank or in 'PICTURE FILES'."
8708  };
8709 static KmCommand _GEANT_GRAPHICS_CONTROL_DOPEN = {
8710  &_GEANT_GRAPHICS_CONTROL_DSHOW, "/GEANT/GRAPHICS_CONTROL/DOPEN", "DOPEN", 0,
8711  2, 1, 1, _GEANT_GRAPHICS_CONTROL_DOPEN_parameters, 0, 0, gxgcon_,
8712  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
8713  _GEANT_GRAPHICS_CONTROL_DOPEN_guidance, 0, (char**)0, (char*)0, (int*)0 };
8714  
8715 static char *_GEANT_GRAPHICS_CONTROL_guidance[] = {
8716  "Graphics control commands." };
8717 static KmMenu _GEANT_GRAPHICS_CONTROL = {  (KmMenu*)0,  (KmMenu*)0,
8718  "/GEANT/GRAPHICS_CONTROL", "GRAPHICS_CONTROL", 2,
8719  &_GEANT_GRAPHICS_CONTROL_DOPEN, 1, _GEANT_GRAPHICS_CONTROL_guidance };
8720  
8721 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_GRAPHICS_CONTROL, "/GEANT",
8722  "GEANT", 1,  (KmCommand*)0, 0, (char**)0 };
8723  
8724   klnkmenu( &_GEANT, 921023 );
8725 }
8726  
8727  
8728 #ifdef F77_LCASE
8729 #  define gklist_ gklist
8730 #  define gxlist_ gxlist
8731 #endif
8732  
8733 #ifdef F77_UCASE
8734 #  define gklist_ GKLIST
8735 #  define gxlist_ GXLIST
8736 #endif
8737  
8738 #ifdef IBM370
8739 #  pragma linkage(GKLIST,FORTRAN)
8740 #  pragma linkage(GXLIST,FORTRAN)
8741 #endif
8742  
8743 extern void gklist_();
8744 extern void gxlist_();
8745  
8746 void gklist_()
8747 {
8748  
8749 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_1 = { "LRSAVE_1", 8, "user word",
8750  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8751  KmTYPE_CHAR,  (void*)0 };
8752 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_2 = { "LRSAVE_2", 8, "user word",
8753  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8754  KmTYPE_CHAR,  (void*)0 };
8755 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_3 = { "LRSAVE_3", 8, "user word",
8756  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8757  KmTYPE_CHAR,  (void*)0 };
8758 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_4 = { "LRSAVE_4", 8, "user word",
8759  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8760  KmTYPE_CHAR,  (void*)0 };
8761 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_5 = { "LRSAVE_5", 8, "user word",
8762  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8763  KmTYPE_CHAR,  (void*)0 };
8764 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_6 = { "LRSAVE_6", 8, "user word",
8765  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8766  KmTYPE_CHAR,  (void*)0 };
8767 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_7 = { "LRSAVE_7", 8, "user word",
8768  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8769  KmTYPE_CHAR,  (void*)0 };
8770 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_8 = { "LRSAVE_8", 8, "user word",
8771  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8772  KmTYPE_CHAR,  (void*)0 };
8773 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_9 = { "LRSAVE_9", 8, "user word",
8774  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8775  KmTYPE_CHAR,  (void*)0 };
8776 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_10 = { "LRSAVE_10", 9,
8777  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8778  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8779 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_11 = { "LRSAVE_11", 9,
8780  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8781  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8782 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_12 = { "LRSAVE_12", 9,
8783  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8784  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8785 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_13 = { "LRSAVE_13", 9,
8786  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8787  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8788 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_14 = { "LRSAVE_14", 9,
8789  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8790  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8791 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_15 = { "LRSAVE_15", 9,
8792  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8793  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8794 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_16 = { "LRSAVE_16", 9,
8795  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8796  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8797 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_17 = { "LRSAVE_17", 9,
8798  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8799  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8800 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_18 = { "LRSAVE_18", 9,
8801  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8802  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8803 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_19 = { "LRSAVE_19", 9,
8804  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8805  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8806 static KmParameter _GEANT_LISTS_RSAV_LRSAVE_20 = { "LRSAVE_20", 9,
8807  "user word", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
8808  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
8809 static KmParameter *_GEANT_LISTS_RSAV_parameters[] = {
8810  &_GEANT_LISTS_RSAV_LRSAVE_1, &_GEANT_LISTS_RSAV_LRSAVE_2,
8811  &_GEANT_LISTS_RSAV_LRSAVE_3, &_GEANT_LISTS_RSAV_LRSAVE_4,
8812  &_GEANT_LISTS_RSAV_LRSAVE_5, &_GEANT_LISTS_RSAV_LRSAVE_6,
8813  &_GEANT_LISTS_RSAV_LRSAVE_7, &_GEANT_LISTS_RSAV_LRSAVE_8,
8814  &_GEANT_LISTS_RSAV_LRSAVE_9, &_GEANT_LISTS_RSAV_LRSAVE_10,
8815  &_GEANT_LISTS_RSAV_LRSAVE_11, &_GEANT_LISTS_RSAV_LRSAVE_12,
8816  &_GEANT_LISTS_RSAV_LRSAVE_13, &_GEANT_LISTS_RSAV_LRSAVE_14,
8817  &_GEANT_LISTS_RSAV_LRSAVE_15, &_GEANT_LISTS_RSAV_LRSAVE_16,
8818  &_GEANT_LISTS_RSAV_LRSAVE_17, &_GEANT_LISTS_RSAV_LRSAVE_18,
8819  &_GEANT_LISTS_RSAV_LRSAVE_19, &_GEANT_LISTS_RSAV_LRSAVE_20 };
8820 static char *_GEANT_LISTS_RSAV_guidance[] = {
8821  "The command RSAV is similar to the RSAV data records. It can accept",
8822  "up to 20 4-character words. If the first argument is '.', the number",
8823  "of words is reset to 0 and all the words to four blanks." };
8824 static KmCommand _GEANT_LISTS_RSAV = {  (KmCommand*)0, "/GEANT/LISTS/RSAV",
8825  "RSAV", 0, 2, 20, 0, _GEANT_LISTS_RSAV_parameters, 0, 0, gxlist_,
8826  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_RSAV_guidance, 0,
8827  (char**)0, (char*)0, (int*)0 };
8828  
8829 static KmParameter _GEANT_LISTS_RGET_LRGET_1 = { "LRGET_1", 7, "user word",
8830  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8831  KmTYPE_CHAR,  (void*)0 };
8832 static KmParameter _GEANT_LISTS_RGET_LRGET_2 = { "LRGET_2", 7, "user word",
8833  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8834  KmTYPE_CHAR,  (void*)0 };
8835 static KmParameter _GEANT_LISTS_RGET_LRGET_3 = { "LRGET_3", 7, "user word",
8836  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8837  KmTYPE_CHAR,  (void*)0 };
8838 static KmParameter _GEANT_LISTS_RGET_LRGET_4 = { "LRGET_4", 7, "user word",
8839  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8840  KmTYPE_CHAR,  (void*)0 };
8841 static KmParameter _GEANT_LISTS_RGET_LRGET_5 = { "LRGET_5", 7, "user word",
8842  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8843  KmTYPE_CHAR,  (void*)0 };
8844 static KmParameter _GEANT_LISTS_RGET_LRGET_6 = { "LRGET_6", 7, "user word",
8845  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8846  KmTYPE_CHAR,  (void*)0 };
8847 static KmParameter _GEANT_LISTS_RGET_LRGET_7 = { "LRGET_7", 7, "user word",
8848  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8849  KmTYPE_CHAR,  (void*)0 };
8850 static KmParameter _GEANT_LISTS_RGET_LRGET_8 = { "LRGET_8", 7, "user word",
8851  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8852  KmTYPE_CHAR,  (void*)0 };
8853 static KmParameter _GEANT_LISTS_RGET_LRGET_9 = { "LRGET_9", 7, "user word",
8854  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8855  KmTYPE_CHAR,  (void*)0 };
8856 static KmParameter _GEANT_LISTS_RGET_LRGET_10 = { "LRGET_10", 8, "user word",
8857  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8858  KmTYPE_CHAR,  (void*)0 };
8859 static KmParameter _GEANT_LISTS_RGET_LRGET_11 = { "LRGET_11", 8, "user word",
8860  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8861  KmTYPE_CHAR,  (void*)0 };
8862 static KmParameter _GEANT_LISTS_RGET_LRGET_12 = { "LRGET_12", 8, "user word",
8863  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8864  KmTYPE_CHAR,  (void*)0 };
8865 static KmParameter _GEANT_LISTS_RGET_LRGET_13 = { "LRGET_13", 8, "user word",
8866  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8867  KmTYPE_CHAR,  (void*)0 };
8868 static KmParameter _GEANT_LISTS_RGET_LRGET_14 = { "LRGET_14", 8, "user word",
8869  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8870  KmTYPE_CHAR,  (void*)0 };
8871 static KmParameter _GEANT_LISTS_RGET_LRGET_15 = { "LRGET_15", 8, "user word",
8872  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8873  KmTYPE_CHAR,  (void*)0 };
8874 static KmParameter _GEANT_LISTS_RGET_LRGET_16 = { "LRGET_16", 8, "user word",
8875  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8876  KmTYPE_CHAR,  (void*)0 };
8877 static KmParameter _GEANT_LISTS_RGET_LRGET_17 = { "LRGET_17", 8, "user word",
8878  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8879  KmTYPE_CHAR,  (void*)0 };
8880 static KmParameter _GEANT_LISTS_RGET_LRGET_18 = { "LRGET_18", 8, "user word",
8881  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8882  KmTYPE_CHAR,  (void*)0 };
8883 static KmParameter _GEANT_LISTS_RGET_LRGET_19 = { "LRGET_19", 8, "user word",
8884  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8885  KmTYPE_CHAR,  (void*)0 };
8886 static KmParameter _GEANT_LISTS_RGET_LRGET_20 = { "LRGET_20", 8, "user word",
8887  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8888  KmTYPE_CHAR,  (void*)0 };
8889 static KmParameter *_GEANT_LISTS_RGET_parameters[] = {
8890  &_GEANT_LISTS_RGET_LRGET_1, &_GEANT_LISTS_RGET_LRGET_2,
8891  &_GEANT_LISTS_RGET_LRGET_3, &_GEANT_LISTS_RGET_LRGET_4,
8892  &_GEANT_LISTS_RGET_LRGET_5, &_GEANT_LISTS_RGET_LRGET_6,
8893  &_GEANT_LISTS_RGET_LRGET_7, &_GEANT_LISTS_RGET_LRGET_8,
8894  &_GEANT_LISTS_RGET_LRGET_9, &_GEANT_LISTS_RGET_LRGET_10,
8895  &_GEANT_LISTS_RGET_LRGET_11, &_GEANT_LISTS_RGET_LRGET_12,
8896  &_GEANT_LISTS_RGET_LRGET_13, &_GEANT_LISTS_RGET_LRGET_14,
8897  &_GEANT_LISTS_RGET_LRGET_15, &_GEANT_LISTS_RGET_LRGET_16,
8898  &_GEANT_LISTS_RGET_LRGET_17, &_GEANT_LISTS_RGET_LRGET_18,
8899  &_GEANT_LISTS_RGET_LRGET_19, &_GEANT_LISTS_RGET_LRGET_20 };
8900 static char *_GEANT_LISTS_RGET_guidance[] = {
8901  "The command RGET is similar to the RGET data records. It can accept",
8902  "up to 20 4-character words. If the first argument is '.', the number",
8903  "of words is reset to 0 and all the words to four blanks." };
8904 static KmCommand _GEANT_LISTS_RGET = { &_GEANT_LISTS_RSAV,
8905  "/GEANT/LISTS/RGET", "RGET", 0, 2, 20, 0, _GEANT_LISTS_RGET_parameters, 0, 0,
8906  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8907  _GEANT_LISTS_RGET_guidance, 0, (char**)0, (char*)0, (int*)0 };
8908  
8909 static KmParameter _GEANT_LISTS_STAT_LSTAT_1 = { "LSTAT_1", 7, "user word",
8910  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8911  KmTYPE_CHAR,  (void*)0 };
8912 static KmParameter _GEANT_LISTS_STAT_LSTAT_2 = { "LSTAT_2", 7, "user word",
8913  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8914  KmTYPE_CHAR,  (void*)0 };
8915 static KmParameter _GEANT_LISTS_STAT_LSTAT_3 = { "LSTAT_3", 7, "user word",
8916  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8917  KmTYPE_CHAR,  (void*)0 };
8918 static KmParameter _GEANT_LISTS_STAT_LSTAT_4 = { "LSTAT_4", 7, "user word",
8919  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8920  KmTYPE_CHAR,  (void*)0 };
8921 static KmParameter _GEANT_LISTS_STAT_LSTAT_5 = { "LSTAT_5", 7, "user word",
8922  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8923  KmTYPE_CHAR,  (void*)0 };
8924 static KmParameter _GEANT_LISTS_STAT_LSTAT_6 = { "LSTAT_6", 7, "user word",
8925  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8926  KmTYPE_CHAR,  (void*)0 };
8927 static KmParameter _GEANT_LISTS_STAT_LSTAT_7 = { "LSTAT_7", 7, "user word",
8928  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8929  KmTYPE_CHAR,  (void*)0 };
8930 static KmParameter _GEANT_LISTS_STAT_LSTAT_8 = { "LSTAT_8", 7, "user word",
8931  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8932  KmTYPE_CHAR,  (void*)0 };
8933 static KmParameter _GEANT_LISTS_STAT_LSTAT_9 = { "LSTAT_9", 7, "user word",
8934  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8935  KmTYPE_CHAR,  (void*)0 };
8936 static KmParameter _GEANT_LISTS_STAT_LSTAT_10 = { "LSTAT_10", 8, "user word",
8937  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8938  KmTYPE_CHAR,  (void*)0 };
8939 static KmParameter _GEANT_LISTS_STAT_LSTAT_11 = { "LSTAT_11", 8, "user word",
8940  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8941  KmTYPE_CHAR,  (void*)0 };
8942 static KmParameter _GEANT_LISTS_STAT_LSTAT_12 = { "LSTAT_12", 8, "user word",
8943  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8944  KmTYPE_CHAR,  (void*)0 };
8945 static KmParameter _GEANT_LISTS_STAT_LSTAT_13 = { "LSTAT_13", 8, "user word",
8946  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8947  KmTYPE_CHAR,  (void*)0 };
8948 static KmParameter _GEANT_LISTS_STAT_LSTAT_14 = { "LSTAT_14", 8, "user word",
8949  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8950  KmTYPE_CHAR,  (void*)0 };
8951 static KmParameter _GEANT_LISTS_STAT_LSTAT_15 = { "LSTAT_15", 8, "user word",
8952  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8953  KmTYPE_CHAR,  (void*)0 };
8954 static KmParameter _GEANT_LISTS_STAT_LSTAT_16 = { "LSTAT_16", 8, "user word",
8955  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8956  KmTYPE_CHAR,  (void*)0 };
8957 static KmParameter _GEANT_LISTS_STAT_LSTAT_17 = { "LSTAT_17", 8, "user word",
8958  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8959  KmTYPE_CHAR,  (void*)0 };
8960 static KmParameter _GEANT_LISTS_STAT_LSTAT_18 = { "LSTAT_18", 8, "user word",
8961  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8962  KmTYPE_CHAR,  (void*)0 };
8963 static KmParameter _GEANT_LISTS_STAT_LSTAT_19 = { "LSTAT_19", 8, "user word",
8964  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8965  KmTYPE_CHAR,  (void*)0 };
8966 static KmParameter _GEANT_LISTS_STAT_LSTAT_20 = { "LSTAT_20", 8, "user word",
8967  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8968  KmTYPE_CHAR,  (void*)0 };
8969 static KmParameter *_GEANT_LISTS_STAT_parameters[] = {
8970  &_GEANT_LISTS_STAT_LSTAT_1, &_GEANT_LISTS_STAT_LSTAT_2,
8971  &_GEANT_LISTS_STAT_LSTAT_3, &_GEANT_LISTS_STAT_LSTAT_4,
8972  &_GEANT_LISTS_STAT_LSTAT_5, &_GEANT_LISTS_STAT_LSTAT_6,
8973  &_GEANT_LISTS_STAT_LSTAT_7, &_GEANT_LISTS_STAT_LSTAT_8,
8974  &_GEANT_LISTS_STAT_LSTAT_9, &_GEANT_LISTS_STAT_LSTAT_10,
8975  &_GEANT_LISTS_STAT_LSTAT_11, &_GEANT_LISTS_STAT_LSTAT_12,
8976  &_GEANT_LISTS_STAT_LSTAT_13, &_GEANT_LISTS_STAT_LSTAT_14,
8977  &_GEANT_LISTS_STAT_LSTAT_15, &_GEANT_LISTS_STAT_LSTAT_16,
8978  &_GEANT_LISTS_STAT_LSTAT_17, &_GEANT_LISTS_STAT_LSTAT_18,
8979  &_GEANT_LISTS_STAT_LSTAT_19, &_GEANT_LISTS_STAT_LSTAT_20 };
8980 static char *_GEANT_LISTS_STAT_guidance[] = {
8981  "The command STAT is similar to the STAT data records. It can accept",
8982  "up to 20 4-character words. If the first argument is '.', the number",
8983  "of words is reset to 0 and all the words to four blanks." };
8984 static KmCommand _GEANT_LISTS_STAT = { &_GEANT_LISTS_RGET,
8985  "/GEANT/LISTS/STAT", "STAT", 0, 2, 20, 0, _GEANT_LISTS_STAT_parameters, 0, 0,
8986  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
8987  _GEANT_LISTS_STAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
8988  
8989 static KmParameter _GEANT_LISTS_PLOT_LPLOT_1 = { "LPLOT_1", 7, "user word",
8990  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8991  KmTYPE_CHAR,  (void*)0 };
8992 static KmParameter _GEANT_LISTS_PLOT_LPLOT_2 = { "LPLOT_2", 7, "user word",
8993  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8994  KmTYPE_CHAR,  (void*)0 };
8995 static KmParameter _GEANT_LISTS_PLOT_LPLOT_3 = { "LPLOT_3", 7, "user word",
8996  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
8997  KmTYPE_CHAR,  (void*)0 };
8998 static KmParameter _GEANT_LISTS_PLOT_LPLOT_4 = { "LPLOT_4", 7, "user word",
8999  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9000  KmTYPE_CHAR,  (void*)0 };
9001 static KmParameter _GEANT_LISTS_PLOT_LPLOT_5 = { "LPLOT_5", 7, "user word",
9002  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9003  KmTYPE_CHAR,  (void*)0 };
9004 static KmParameter _GEANT_LISTS_PLOT_LPLOT_6 = { "LPLOT_6", 7, "user word",
9005  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9006  KmTYPE_CHAR,  (void*)0 };
9007 static KmParameter _GEANT_LISTS_PLOT_LPLOT_7 = { "LPLOT_7", 7, "user word",
9008  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9009  KmTYPE_CHAR,  (void*)0 };
9010 static KmParameter _GEANT_LISTS_PLOT_LPLOT_8 = { "LPLOT_8", 7, "user word",
9011  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9012  KmTYPE_CHAR,  (void*)0 };
9013 static KmParameter _GEANT_LISTS_PLOT_LPLOT_9 = { "LPLOT_9", 7, "user word",
9014  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9015  KmTYPE_CHAR,  (void*)0 };
9016 static KmParameter _GEANT_LISTS_PLOT_LPLOT_10 = { "LPLOT_10", 8, "user word",
9017  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9018  KmTYPE_CHAR,  (void*)0 };
9019 static KmParameter _GEANT_LISTS_PLOT_LPLOT_11 = { "LPLOT_11", 8, "user word",
9020  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9021  KmTYPE_CHAR,  (void*)0 };
9022 static KmParameter _GEANT_LISTS_PLOT_LPLOT_12 = { "LPLOT_12", 8, "user word",
9023  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9024  KmTYPE_CHAR,  (void*)0 };
9025 static KmParameter _GEANT_LISTS_PLOT_LPLOT_13 = { "LPLOT_13", 8, "user word",
9026  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9027  KmTYPE_CHAR,  (void*)0 };
9028 static KmParameter _GEANT_LISTS_PLOT_LPLOT_14 = { "LPLOT_14", 8, "user word",
9029  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9030  KmTYPE_CHAR,  (void*)0 };
9031 static KmParameter _GEANT_LISTS_PLOT_LPLOT_15 = { "LPLOT_15", 8, "user word",
9032  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9033  KmTYPE_CHAR,  (void*)0 };
9034 static KmParameter _GEANT_LISTS_PLOT_LPLOT_16 = { "LPLOT_16", 8, "user word",
9035  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9036  KmTYPE_CHAR,  (void*)0 };
9037 static KmParameter _GEANT_LISTS_PLOT_LPLOT_17 = { "LPLOT_17", 8, "user word",
9038  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9039  KmTYPE_CHAR,  (void*)0 };
9040 static KmParameter _GEANT_LISTS_PLOT_LPLOT_18 = { "LPLOT_18", 8, "user word",
9041  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9042  KmTYPE_CHAR,  (void*)0 };
9043 static KmParameter _GEANT_LISTS_PLOT_LPLOT_19 = { "LPLOT_19", 8, "user word",
9044  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9045  KmTYPE_CHAR,  (void*)0 };
9046 static KmParameter _GEANT_LISTS_PLOT_LPLOT_20 = { "LPLOT_20", 8, "user word",
9047  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9048  KmTYPE_CHAR,  (void*)0 };
9049 static KmParameter *_GEANT_LISTS_PLOT_parameters[] = {
9050  &_GEANT_LISTS_PLOT_LPLOT_1, &_GEANT_LISTS_PLOT_LPLOT_2,
9051  &_GEANT_LISTS_PLOT_LPLOT_3, &_GEANT_LISTS_PLOT_LPLOT_4,
9052  &_GEANT_LISTS_PLOT_LPLOT_5, &_GEANT_LISTS_PLOT_LPLOT_6,
9053  &_GEANT_LISTS_PLOT_LPLOT_7, &_GEANT_LISTS_PLOT_LPLOT_8,
9054  &_GEANT_LISTS_PLOT_LPLOT_9, &_GEANT_LISTS_PLOT_LPLOT_10,
9055  &_GEANT_LISTS_PLOT_LPLOT_11, &_GEANT_LISTS_PLOT_LPLOT_12,
9056  &_GEANT_LISTS_PLOT_LPLOT_13, &_GEANT_LISTS_PLOT_LPLOT_14,
9057  &_GEANT_LISTS_PLOT_LPLOT_15, &_GEANT_LISTS_PLOT_LPLOT_16,
9058  &_GEANT_LISTS_PLOT_LPLOT_17, &_GEANT_LISTS_PLOT_LPLOT_18,
9059  &_GEANT_LISTS_PLOT_LPLOT_19, &_GEANT_LISTS_PLOT_LPLOT_20 };
9060 static char *_GEANT_LISTS_PLOT_guidance[] = {
9061  "The command PLOT is similar to the PLOT data records. It can accept",
9062  "up to 20 4-character words. If the first argument is '.', the number",
9063  "of words is reset to 0 and all the words to four blanks." };
9064 static KmCommand _GEANT_LISTS_PLOT = { &_GEANT_LISTS_STAT,
9065  "/GEANT/LISTS/PLOT", "PLOT", 0, 2, 20, 0, _GEANT_LISTS_PLOT_parameters, 0, 0,
9066  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9067  _GEANT_LISTS_PLOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
9068  
9069 static KmParameter _GEANT_LISTS_VIEW_LVIEW_1 = { "LVIEW_1", 7, "user word",
9070  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9071  KmTYPE_CHAR,  (void*)0 };
9072 static KmParameter _GEANT_LISTS_VIEW_LVIEW_2 = { "LVIEW_2", 7, "user word",
9073  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9074  KmTYPE_CHAR,  (void*)0 };
9075 static KmParameter _GEANT_LISTS_VIEW_LVIEW_3 = { "LVIEW_3", 7, "user word",
9076  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9077  KmTYPE_CHAR,  (void*)0 };
9078 static KmParameter _GEANT_LISTS_VIEW_LVIEW_4 = { "LVIEW_4", 7, "user word",
9079  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9080  KmTYPE_CHAR,  (void*)0 };
9081 static KmParameter _GEANT_LISTS_VIEW_LVIEW_5 = { "LVIEW_5", 7, "user word",
9082  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9083  KmTYPE_CHAR,  (void*)0 };
9084 static KmParameter _GEANT_LISTS_VIEW_LVIEW_6 = { "LVIEW_6", 7, "user word",
9085  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9086  KmTYPE_CHAR,  (void*)0 };
9087 static KmParameter _GEANT_LISTS_VIEW_LVIEW_7 = { "LVIEW_7", 7, "user word",
9088  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9089  KmTYPE_CHAR,  (void*)0 };
9090 static KmParameter _GEANT_LISTS_VIEW_LVIEW_8 = { "LVIEW_8", 7, "user word",
9091  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9092  KmTYPE_CHAR,  (void*)0 };
9093 static KmParameter _GEANT_LISTS_VIEW_LVIEW_9 = { "LVIEW_9", 7, "user word",
9094  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9095  KmTYPE_CHAR,  (void*)0 };
9096 static KmParameter _GEANT_LISTS_VIEW_LVIEW_10 = { "LVIEW_10", 8, "user word",
9097  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9098  KmTYPE_CHAR,  (void*)0 };
9099 static KmParameter _GEANT_LISTS_VIEW_LVIEW_11 = { "LVIEW_11", 8, "user word",
9100  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9101  KmTYPE_CHAR,  (void*)0 };
9102 static KmParameter _GEANT_LISTS_VIEW_LVIEW_12 = { "LVIEW_12", 8, "user word",
9103  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9104  KmTYPE_CHAR,  (void*)0 };
9105 static KmParameter _GEANT_LISTS_VIEW_LVIEW_13 = { "LVIEW_13", 8, "user word",
9106  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9107  KmTYPE_CHAR,  (void*)0 };
9108 static KmParameter _GEANT_LISTS_VIEW_LVIEW_14 = { "LVIEW_14", 8, "user word",
9109  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9110  KmTYPE_CHAR,  (void*)0 };
9111 static KmParameter _GEANT_LISTS_VIEW_LVIEW_15 = { "LVIEW_15", 8, "user word",
9112  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9113  KmTYPE_CHAR,  (void*)0 };
9114 static KmParameter _GEANT_LISTS_VIEW_LVIEW_16 = { "LVIEW_16", 8, "user word",
9115  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9116  KmTYPE_CHAR,  (void*)0 };
9117 static KmParameter _GEANT_LISTS_VIEW_LVIEW_17 = { "LVIEW_17", 8, "user word",
9118  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9119  KmTYPE_CHAR,  (void*)0 };
9120 static KmParameter _GEANT_LISTS_VIEW_LVIEW_18 = { "LVIEW_18", 8, "user word",
9121  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9122  KmTYPE_CHAR,  (void*)0 };
9123 static KmParameter _GEANT_LISTS_VIEW_LVIEW_19 = { "LVIEW_19", 8, "user word",
9124  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9125  KmTYPE_CHAR,  (void*)0 };
9126 static KmParameter _GEANT_LISTS_VIEW_LVIEW_20 = { "LVIEW_20", 8, "user word",
9127  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9128  KmTYPE_CHAR,  (void*)0 };
9129 static KmParameter *_GEANT_LISTS_VIEW_parameters[] = {
9130  &_GEANT_LISTS_VIEW_LVIEW_1, &_GEANT_LISTS_VIEW_LVIEW_2,
9131  &_GEANT_LISTS_VIEW_LVIEW_3, &_GEANT_LISTS_VIEW_LVIEW_4,
9132  &_GEANT_LISTS_VIEW_LVIEW_5, &_GEANT_LISTS_VIEW_LVIEW_6,
9133  &_GEANT_LISTS_VIEW_LVIEW_7, &_GEANT_LISTS_VIEW_LVIEW_8,
9134  &_GEANT_LISTS_VIEW_LVIEW_9, &_GEANT_LISTS_VIEW_LVIEW_10,
9135  &_GEANT_LISTS_VIEW_LVIEW_11, &_GEANT_LISTS_VIEW_LVIEW_12,
9136  &_GEANT_LISTS_VIEW_LVIEW_13, &_GEANT_LISTS_VIEW_LVIEW_14,
9137  &_GEANT_LISTS_VIEW_LVIEW_15, &_GEANT_LISTS_VIEW_LVIEW_16,
9138  &_GEANT_LISTS_VIEW_LVIEW_17, &_GEANT_LISTS_VIEW_LVIEW_18,
9139  &_GEANT_LISTS_VIEW_LVIEW_19, &_GEANT_LISTS_VIEW_LVIEW_20 };
9140 static char *_GEANT_LISTS_VIEW_guidance[] = {
9141  "The command VIEW is similar to the VIEW data records. It can accept",
9142  "up to 20 4-character words. If the first argument is '.', the number",
9143  "of words is reset to 0 and all the words to four blanks." };
9144 static KmCommand _GEANT_LISTS_VIEW = { &_GEANT_LISTS_PLOT,
9145  "/GEANT/LISTS/VIEW", "VIEW", 0, 2, 20, 0, _GEANT_LISTS_VIEW_parameters, 0, 0,
9146  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9147  _GEANT_LISTS_VIEW_guidance, 0, (char**)0, (char*)0, (int*)0 };
9148  
9149 static KmParameter _GEANT_LISTS_GEOM_LGEOM_1 = { "LGEOM_1", 7, "user word",
9150  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9151  KmTYPE_CHAR,  (void*)0 };
9152 static KmParameter _GEANT_LISTS_GEOM_LGEOM_2 = { "LGEOM_2", 7, "user word",
9153  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9154  KmTYPE_CHAR,  (void*)0 };
9155 static KmParameter _GEANT_LISTS_GEOM_LGEOM_3 = { "LGEOM_3", 7, "user word",
9156  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9157  KmTYPE_CHAR,  (void*)0 };
9158 static KmParameter _GEANT_LISTS_GEOM_LGEOM_4 = { "LGEOM_4", 7, "user word",
9159  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9160  KmTYPE_CHAR,  (void*)0 };
9161 static KmParameter _GEANT_LISTS_GEOM_LGEOM_5 = { "LGEOM_5", 7, "user word",
9162  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9163  KmTYPE_CHAR,  (void*)0 };
9164 static KmParameter _GEANT_LISTS_GEOM_LGEOM_6 = { "LGEOM_6", 7, "user word",
9165  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9166  KmTYPE_CHAR,  (void*)0 };
9167 static KmParameter _GEANT_LISTS_GEOM_LGEOM_7 = { "LGEOM_7", 7, "user word",
9168  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9169  KmTYPE_CHAR,  (void*)0 };
9170 static KmParameter _GEANT_LISTS_GEOM_LGEOM_8 = { "LGEOM_8", 7, "user word",
9171  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9172  KmTYPE_CHAR,  (void*)0 };
9173 static KmParameter _GEANT_LISTS_GEOM_LGEOM_9 = { "LGEOM_9", 7, "user word",
9174  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9175  KmTYPE_CHAR,  (void*)0 };
9176 static KmParameter _GEANT_LISTS_GEOM_LGEOM_10 = { "LGEOM_10", 8, "user word",
9177  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9178  KmTYPE_CHAR,  (void*)0 };
9179 static KmParameter _GEANT_LISTS_GEOM_LGEOM_11 = { "LGEOM_11", 8, "user word",
9180  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9181  KmTYPE_CHAR,  (void*)0 };
9182 static KmParameter _GEANT_LISTS_GEOM_LGEOM_12 = { "LGEOM_12", 8, "user word",
9183  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9184  KmTYPE_CHAR,  (void*)0 };
9185 static KmParameter _GEANT_LISTS_GEOM_LGEOM_13 = { "LGEOM_13", 8, "user word",
9186  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9187  KmTYPE_CHAR,  (void*)0 };
9188 static KmParameter _GEANT_LISTS_GEOM_LGEOM_14 = { "LGEOM_14", 8, "user word",
9189  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9190  KmTYPE_CHAR,  (void*)0 };
9191 static KmParameter _GEANT_LISTS_GEOM_LGEOM_15 = { "LGEOM_15", 8, "user word",
9192  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9193  KmTYPE_CHAR,  (void*)0 };
9194 static KmParameter _GEANT_LISTS_GEOM_LGEOM_16 = { "LGEOM_16", 8, "user word",
9195  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9196  KmTYPE_CHAR,  (void*)0 };
9197 static KmParameter _GEANT_LISTS_GEOM_LGEOM_17 = { "LGEOM_17", 8, "user word",
9198  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9199  KmTYPE_CHAR,  (void*)0 };
9200 static KmParameter _GEANT_LISTS_GEOM_LGEOM_18 = { "LGEOM_18", 8, "user word",
9201  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9202  KmTYPE_CHAR,  (void*)0 };
9203 static KmParameter _GEANT_LISTS_GEOM_LGEOM_19 = { "LGEOM_19", 8, "user word",
9204  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9205  KmTYPE_CHAR,  (void*)0 };
9206 static KmParameter _GEANT_LISTS_GEOM_LGEOM_20 = { "LGEOM_20", 8, "user word",
9207  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9208  KmTYPE_CHAR,  (void*)0 };
9209 static KmParameter *_GEANT_LISTS_GEOM_parameters[] = {
9210  &_GEANT_LISTS_GEOM_LGEOM_1, &_GEANT_LISTS_GEOM_LGEOM_2,
9211  &_GEANT_LISTS_GEOM_LGEOM_3, &_GEANT_LISTS_GEOM_LGEOM_4,
9212  &_GEANT_LISTS_GEOM_LGEOM_5, &_GEANT_LISTS_GEOM_LGEOM_6,
9213  &_GEANT_LISTS_GEOM_LGEOM_7, &_GEANT_LISTS_GEOM_LGEOM_8,
9214  &_GEANT_LISTS_GEOM_LGEOM_9, &_GEANT_LISTS_GEOM_LGEOM_10,
9215  &_GEANT_LISTS_GEOM_LGEOM_11, &_GEANT_LISTS_GEOM_LGEOM_12,
9216  &_GEANT_LISTS_GEOM_LGEOM_13, &_GEANT_LISTS_GEOM_LGEOM_14,
9217  &_GEANT_LISTS_GEOM_LGEOM_15, &_GEANT_LISTS_GEOM_LGEOM_16,
9218  &_GEANT_LISTS_GEOM_LGEOM_17, &_GEANT_LISTS_GEOM_LGEOM_18,
9219  &_GEANT_LISTS_GEOM_LGEOM_19, &_GEANT_LISTS_GEOM_LGEOM_20 };
9220 static char *_GEANT_LISTS_GEOM_guidance[] = {
9221  "The command GEOM is similar to the GEOM data records. It can accept",
9222  "up to 20 4-character words. If the first argument is '.', the number",
9223  "of words is reset to 0 and all the words to four blanks." };
9224 static KmCommand _GEANT_LISTS_GEOM = { &_GEANT_LISTS_VIEW,
9225  "/GEANT/LISTS/GEOM", "GEOM", 0, 2, 20, 0, _GEANT_LISTS_GEOM_parameters, 0, 0,
9226  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9227  _GEANT_LISTS_GEOM_guidance, 0, (char**)0, (char*)0, (int*)0 };
9228  
9229 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_1 = { "LPRIN_1", 7, "user word",
9230  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9231  KmTYPE_CHAR,  (void*)0 };
9232 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_2 = { "LPRIN_2", 7, "user word",
9233  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9234  KmTYPE_CHAR,  (void*)0 };
9235 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_3 = { "LPRIN_3", 7, "user word",
9236  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9237  KmTYPE_CHAR,  (void*)0 };
9238 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_4 = { "LPRIN_4", 7, "user word",
9239  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9240  KmTYPE_CHAR,  (void*)0 };
9241 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_5 = { "LPRIN_5", 7, "user word",
9242  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9243  KmTYPE_CHAR,  (void*)0 };
9244 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_6 = { "LPRIN_6", 7, "user word",
9245  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9246  KmTYPE_CHAR,  (void*)0 };
9247 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_7 = { "LPRIN_7", 7, "user word",
9248  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9249  KmTYPE_CHAR,  (void*)0 };
9250 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_8 = { "LPRIN_8", 7, "user word",
9251  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9252  KmTYPE_CHAR,  (void*)0 };
9253 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_9 = { "LPRIN_9", 7, "user word",
9254  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9255  KmTYPE_CHAR,  (void*)0 };
9256 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_10 = { "LPRIN_10", 8, "user word",
9257  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9258  KmTYPE_CHAR,  (void*)0 };
9259 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_11 = { "LPRIN_11", 8, "user word",
9260  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9261  KmTYPE_CHAR,  (void*)0 };
9262 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_12 = { "LPRIN_12", 8, "user word",
9263  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9264  KmTYPE_CHAR,  (void*)0 };
9265 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_13 = { "LPRIN_13", 8, "user word",
9266  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9267  KmTYPE_CHAR,  (void*)0 };
9268 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_14 = { "LPRIN_14", 8, "user word",
9269  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9270  KmTYPE_CHAR,  (void*)0 };
9271 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_15 = { "LPRIN_15", 8, "user word",
9272  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9273  KmTYPE_CHAR,  (void*)0 };
9274 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_16 = { "LPRIN_16", 8, "user word",
9275  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9276  KmTYPE_CHAR,  (void*)0 };
9277 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_17 = { "LPRIN_17", 8, "user word",
9278  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9279  KmTYPE_CHAR,  (void*)0 };
9280 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_18 = { "LPRIN_18", 8, "user word",
9281  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9282  KmTYPE_CHAR,  (void*)0 };
9283 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_19 = { "LPRIN_19", 8, "user word",
9284  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9285  KmTYPE_CHAR,  (void*)0 };
9286 static KmParameter _GEANT_LISTS_LPRIN_LPRIN_20 = { "LPRIN_20", 8, "user word",
9287  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9288  KmTYPE_CHAR,  (void*)0 };
9289 static KmParameter *_GEANT_LISTS_LPRIN_parameters[] = {
9290  &_GEANT_LISTS_LPRIN_LPRIN_1, &_GEANT_LISTS_LPRIN_LPRIN_2,
9291  &_GEANT_LISTS_LPRIN_LPRIN_3, &_GEANT_LISTS_LPRIN_LPRIN_4,
9292  &_GEANT_LISTS_LPRIN_LPRIN_5, &_GEANT_LISTS_LPRIN_LPRIN_6,
9293  &_GEANT_LISTS_LPRIN_LPRIN_7, &_GEANT_LISTS_LPRIN_LPRIN_8,
9294  &_GEANT_LISTS_LPRIN_LPRIN_9, &_GEANT_LISTS_LPRIN_LPRIN_10,
9295  &_GEANT_LISTS_LPRIN_LPRIN_11, &_GEANT_LISTS_LPRIN_LPRIN_12,
9296  &_GEANT_LISTS_LPRIN_LPRIN_13, &_GEANT_LISTS_LPRIN_LPRIN_14,
9297  &_GEANT_LISTS_LPRIN_LPRIN_15, &_GEANT_LISTS_LPRIN_LPRIN_16,
9298  &_GEANT_LISTS_LPRIN_LPRIN_17, &_GEANT_LISTS_LPRIN_LPRIN_18,
9299  &_GEANT_LISTS_LPRIN_LPRIN_19, &_GEANT_LISTS_LPRIN_LPRIN_20 };
9300 static char *_GEANT_LISTS_LPRIN_guidance[] = {
9301  "The command PRIN is similar to the PRIN data records. It can accept",
9302  "up to 20 4-character words. If the first argument is '.', the number",
9303  "of words is reset to 0 and all the words to four blanks." };
9304 static KmCommand _GEANT_LISTS_LPRIN = { &_GEANT_LISTS_GEOM,
9305  "/GEANT/LISTS/LPRIN", "LPRIN", 0, 2, 20, 0, _GEANT_LISTS_LPRIN_parameters, 0,
9306  0, gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9307  _GEANT_LISTS_LPRIN_guidance, 0, (char**)0, (char*)0, (int*)0 };
9308  
9309 static KmParameter _GEANT_LISTS_SETS_LSETS_1 = { "LSETS_1", 7, "user word",
9310  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9311  KmTYPE_CHAR,  (void*)0 };
9312 static KmParameter _GEANT_LISTS_SETS_LSETS_2 = { "LSETS_2", 7, "user word",
9313  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9314  KmTYPE_CHAR,  (void*)0 };
9315 static KmParameter _GEANT_LISTS_SETS_LSETS_3 = { "LSETS_3", 7, "user word",
9316  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9317  KmTYPE_CHAR,  (void*)0 };
9318 static KmParameter _GEANT_LISTS_SETS_LSETS_4 = { "LSETS_4", 7, "user word",
9319  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9320  KmTYPE_CHAR,  (void*)0 };
9321 static KmParameter _GEANT_LISTS_SETS_LSETS_5 = { "LSETS_5", 7, "user word",
9322  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9323  KmTYPE_CHAR,  (void*)0 };
9324 static KmParameter _GEANT_LISTS_SETS_LSETS_6 = { "LSETS_6", 7, "user word",
9325  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9326  KmTYPE_CHAR,  (void*)0 };
9327 static KmParameter _GEANT_LISTS_SETS_LSETS_7 = { "LSETS_7", 7, "user word",
9328  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9329  KmTYPE_CHAR,  (void*)0 };
9330 static KmParameter _GEANT_LISTS_SETS_LSETS_8 = { "LSETS_8", 7, "user word",
9331  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9332  KmTYPE_CHAR,  (void*)0 };
9333 static KmParameter _GEANT_LISTS_SETS_LSETS_9 = { "LSETS_9", 7, "user word",
9334  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9335  KmTYPE_CHAR,  (void*)0 };
9336 static KmParameter _GEANT_LISTS_SETS_LSETS_10 = { "LSETS_10", 8, "user word",
9337  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9338  KmTYPE_CHAR,  (void*)0 };
9339 static KmParameter _GEANT_LISTS_SETS_LSETS_11 = { "LSETS_11", 8, "user word",
9340  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9341  KmTYPE_CHAR,  (void*)0 };
9342 static KmParameter _GEANT_LISTS_SETS_LSETS_12 = { "LSETS_12", 8, "user word",
9343  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9344  KmTYPE_CHAR,  (void*)0 };
9345 static KmParameter _GEANT_LISTS_SETS_LSETS_13 = { "LSETS_13", 8, "user word",
9346  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9347  KmTYPE_CHAR,  (void*)0 };
9348 static KmParameter _GEANT_LISTS_SETS_LSETS_14 = { "LSETS_14", 8, "user word",
9349  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9350  KmTYPE_CHAR,  (void*)0 };
9351 static KmParameter _GEANT_LISTS_SETS_LSETS_15 = { "LSETS_15", 8, "user word",
9352  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9353  KmTYPE_CHAR,  (void*)0 };
9354 static KmParameter _GEANT_LISTS_SETS_LSETS_16 = { "LSETS_16", 8, "user word",
9355  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9356  KmTYPE_CHAR,  (void*)0 };
9357 static KmParameter _GEANT_LISTS_SETS_LSETS_17 = { "LSETS_17", 8, "user word",
9358  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9359  KmTYPE_CHAR,  (void*)0 };
9360 static KmParameter _GEANT_LISTS_SETS_LSETS_18 = { "LSETS_18", 8, "user word",
9361  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9362  KmTYPE_CHAR,  (void*)0 };
9363 static KmParameter _GEANT_LISTS_SETS_LSETS_19 = { "LSETS_19", 8, "user word",
9364  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9365  KmTYPE_CHAR,  (void*)0 };
9366 static KmParameter _GEANT_LISTS_SETS_LSETS_20 = { "LSETS_20", 8, "user word",
9367  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9368  KmTYPE_CHAR,  (void*)0 };
9369 static KmParameter *_GEANT_LISTS_SETS_parameters[] = {
9370  &_GEANT_LISTS_SETS_LSETS_1, &_GEANT_LISTS_SETS_LSETS_2,
9371  &_GEANT_LISTS_SETS_LSETS_3, &_GEANT_LISTS_SETS_LSETS_4,
9372  &_GEANT_LISTS_SETS_LSETS_5, &_GEANT_LISTS_SETS_LSETS_6,
9373  &_GEANT_LISTS_SETS_LSETS_7, &_GEANT_LISTS_SETS_LSETS_8,
9374  &_GEANT_LISTS_SETS_LSETS_9, &_GEANT_LISTS_SETS_LSETS_10,
9375  &_GEANT_LISTS_SETS_LSETS_11, &_GEANT_LISTS_SETS_LSETS_12,
9376  &_GEANT_LISTS_SETS_LSETS_13, &_GEANT_LISTS_SETS_LSETS_14,
9377  &_GEANT_LISTS_SETS_LSETS_15, &_GEANT_LISTS_SETS_LSETS_16,
9378  &_GEANT_LISTS_SETS_LSETS_17, &_GEANT_LISTS_SETS_LSETS_18,
9379  &_GEANT_LISTS_SETS_LSETS_19, &_GEANT_LISTS_SETS_LSETS_20 };
9380 static char *_GEANT_LISTS_SETS_guidance[] = {
9381  "The command SETS is similar to the SETS data records. It can accept",
9382  "up to 20 4-character words. If the first argument is '.', the number",
9383  "of words is reset to 0 and all the words to four blanks." };
9384 static KmCommand _GEANT_LISTS_SETS = { &_GEANT_LISTS_LPRIN,
9385  "/GEANT/LISTS/SETS", "SETS", 0, 2, 20, 0, _GEANT_LISTS_SETS_parameters, 0, 0,
9386  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9387  _GEANT_LISTS_SETS_guidance, 0, (char**)0, (char*)0, (int*)0 };
9388  
9389 static KmParameter _GEANT_LISTS_SAVE_LSAVE_1 = { "LSAVE_1", 7, "user word",
9390  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9391  KmTYPE_CHAR,  (void*)0 };
9392 static KmParameter _GEANT_LISTS_SAVE_LSAVE_2 = { "LSAVE_2", 7, "user word",
9393  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9394  KmTYPE_CHAR,  (void*)0 };
9395 static KmParameter _GEANT_LISTS_SAVE_LSAVE_3 = { "LSAVE_3", 7, "user word",
9396  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9397  KmTYPE_CHAR,  (void*)0 };
9398 static KmParameter _GEANT_LISTS_SAVE_LSAVE_4 = { "LSAVE_4", 7, "user word",
9399  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9400  KmTYPE_CHAR,  (void*)0 };
9401 static KmParameter _GEANT_LISTS_SAVE_LSAVE_5 = { "LSAVE_5", 7, "user word",
9402  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9403  KmTYPE_CHAR,  (void*)0 };
9404 static KmParameter _GEANT_LISTS_SAVE_LSAVE_6 = { "LSAVE_6", 7, "user word",
9405  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9406  KmTYPE_CHAR,  (void*)0 };
9407 static KmParameter _GEANT_LISTS_SAVE_LSAVE_7 = { "LSAVE_7", 7, "user word",
9408  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9409  KmTYPE_CHAR,  (void*)0 };
9410 static KmParameter _GEANT_LISTS_SAVE_LSAVE_8 = { "LSAVE_8", 7, "user word",
9411  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9412  KmTYPE_CHAR,  (void*)0 };
9413 static KmParameter _GEANT_LISTS_SAVE_LSAVE_9 = { "LSAVE_9", 7, "user word",
9414  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9415  KmTYPE_CHAR,  (void*)0 };
9416 static KmParameter _GEANT_LISTS_SAVE_LSAVE_10 = { "LSAVE_10", 8, "user word",
9417  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9418  KmTYPE_CHAR,  (void*)0 };
9419 static KmParameter _GEANT_LISTS_SAVE_LSAVE_11 = { "LSAVE_11", 8, "user word",
9420  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9421  KmTYPE_CHAR,  (void*)0 };
9422 static KmParameter _GEANT_LISTS_SAVE_LSAVE_12 = { "LSAVE_12", 8, "user word",
9423  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9424  KmTYPE_CHAR,  (void*)0 };
9425 static KmParameter _GEANT_LISTS_SAVE_LSAVE_13 = { "LSAVE_13", 8, "user word",
9426  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9427  KmTYPE_CHAR,  (void*)0 };
9428 static KmParameter _GEANT_LISTS_SAVE_LSAVE_14 = { "LSAVE_14", 8, "user word",
9429  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9430  KmTYPE_CHAR,  (void*)0 };
9431 static KmParameter _GEANT_LISTS_SAVE_LSAVE_15 = { "LSAVE_15", 8, "user word",
9432  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9433  KmTYPE_CHAR,  (void*)0 };
9434 static KmParameter _GEANT_LISTS_SAVE_LSAVE_16 = { "LSAVE_16", 8, "user word",
9435  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9436  KmTYPE_CHAR,  (void*)0 };
9437 static KmParameter _GEANT_LISTS_SAVE_LSAVE_17 = { "LSAVE_17", 8, "user word",
9438  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9439  KmTYPE_CHAR,  (void*)0 };
9440 static KmParameter _GEANT_LISTS_SAVE_LSAVE_18 = { "LSAVE_18", 8, "user word",
9441  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9442  KmTYPE_CHAR,  (void*)0 };
9443 static KmParameter _GEANT_LISTS_SAVE_LSAVE_19 = { "LSAVE_19", 8, "user word",
9444  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9445  KmTYPE_CHAR,  (void*)0 };
9446 static KmParameter _GEANT_LISTS_SAVE_LSAVE_20 = { "LSAVE_20", 8, "user word",
9447  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9448  KmTYPE_CHAR,  (void*)0 };
9449 static KmParameter *_GEANT_LISTS_SAVE_parameters[] = {
9450  &_GEANT_LISTS_SAVE_LSAVE_1, &_GEANT_LISTS_SAVE_LSAVE_2,
9451  &_GEANT_LISTS_SAVE_LSAVE_3, &_GEANT_LISTS_SAVE_LSAVE_4,
9452  &_GEANT_LISTS_SAVE_LSAVE_5, &_GEANT_LISTS_SAVE_LSAVE_6,
9453  &_GEANT_LISTS_SAVE_LSAVE_7, &_GEANT_LISTS_SAVE_LSAVE_8,
9454  &_GEANT_LISTS_SAVE_LSAVE_9, &_GEANT_LISTS_SAVE_LSAVE_10,
9455  &_GEANT_LISTS_SAVE_LSAVE_11, &_GEANT_LISTS_SAVE_LSAVE_12,
9456  &_GEANT_LISTS_SAVE_LSAVE_13, &_GEANT_LISTS_SAVE_LSAVE_14,
9457  &_GEANT_LISTS_SAVE_LSAVE_15, &_GEANT_LISTS_SAVE_LSAVE_16,
9458  &_GEANT_LISTS_SAVE_LSAVE_17, &_GEANT_LISTS_SAVE_LSAVE_18,
9459  &_GEANT_LISTS_SAVE_LSAVE_19, &_GEANT_LISTS_SAVE_LSAVE_20 };
9460 static char *_GEANT_LISTS_SAVE_guidance[] = {
9461  "The command SAVE is similar to the SAVE data records. It can accept",
9462  "up to 20 4-character words. If the first argument is '.', the number",
9463  "of words is reset to 0 and all the words to four blanks." };
9464 static KmCommand _GEANT_LISTS_SAVE = { &_GEANT_LISTS_SETS,
9465  "/GEANT/LISTS/SAVE", "SAVE", 0, 2, 20, 0, _GEANT_LISTS_SAVE_parameters, 0, 0,
9466  gxlist_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9467  _GEANT_LISTS_SAVE_guidance, 0, (char**)0, (char*)0, (int*)0 };
9468  
9469 static KmParameter _GEANT_LISTS_GET_LGET_1 = { "LGET_1", 6, "user word",
9470  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9471  KmTYPE_CHAR,  (void*)0 };
9472 static KmParameter _GEANT_LISTS_GET_LGET_2 = { "LGET_2", 6, "user word",
9473  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9474  KmTYPE_CHAR,  (void*)0 };
9475 static KmParameter _GEANT_LISTS_GET_LGET_3 = { "LGET_3", 6, "user word",
9476  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9477  KmTYPE_CHAR,  (void*)0 };
9478 static KmParameter _GEANT_LISTS_GET_LGET_4 = { "LGET_4", 6, "user word",
9479  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9480  KmTYPE_CHAR,  (void*)0 };
9481 static KmParameter _GEANT_LISTS_GET_LGET_5 = { "LGET_5", 6, "user word",
9482  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9483  KmTYPE_CHAR,  (void*)0 };
9484 static KmParameter _GEANT_LISTS_GET_LGET_6 = { "LGET_6", 6, "user word",
9485  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9486  KmTYPE_CHAR,  (void*)0 };
9487 static KmParameter _GEANT_LISTS_GET_LGET_7 = { "LGET_7", 6, "user word",
9488  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9489  KmTYPE_CHAR,  (void*)0 };
9490 static KmParameter _GEANT_LISTS_GET_LGET_8 = { "LGET_8", 6, "user word",
9491  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9492  KmTYPE_CHAR,  (void*)0 };
9493 static KmParameter _GEANT_LISTS_GET_LGET_9 = { "LGET_9", 6, "user word",
9494  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9495  KmTYPE_CHAR,  (void*)0 };
9496 static KmParameter _GEANT_LISTS_GET_LGET_10 = { "LGET_10", 7, "user word",
9497  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9498  KmTYPE_CHAR,  (void*)0 };
9499 static KmParameter _GEANT_LISTS_GET_LGET_11 = { "LGET_11", 7, "user word",
9500  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9501  KmTYPE_CHAR,  (void*)0 };
9502 static KmParameter _GEANT_LISTS_GET_LGET_12 = { "LGET_12", 7, "user word",
9503  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9504  KmTYPE_CHAR,  (void*)0 };
9505 static KmParameter _GEANT_LISTS_GET_LGET_13 = { "LGET_13", 7, "user word",
9506  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9507  KmTYPE_CHAR,  (void*)0 };
9508 static KmParameter _GEANT_LISTS_GET_LGET_14 = { "LGET_14", 7, "user word",
9509  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9510  KmTYPE_CHAR,  (void*)0 };
9511 static KmParameter _GEANT_LISTS_GET_LGET_15 = { "LGET_15", 7, "user word",
9512  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9513  KmTYPE_CHAR,  (void*)0 };
9514 static KmParameter _GEANT_LISTS_GET_LGET_16 = { "LGET_16", 7, "user word",
9515  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9516  KmTYPE_CHAR,  (void*)0 };
9517 static KmParameter _GEANT_LISTS_GET_LGET_17 = { "LGET_17", 7, "user word",
9518  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9519  KmTYPE_CHAR,  (void*)0 };
9520 static KmParameter _GEANT_LISTS_GET_LGET_18 = { "LGET_18", 7, "user word",
9521  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9522  KmTYPE_CHAR,  (void*)0 };
9523 static KmParameter _GEANT_LISTS_GET_LGET_19 = { "LGET_19", 7, "user word",
9524  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9525  KmTYPE_CHAR,  (void*)0 };
9526 static KmParameter _GEANT_LISTS_GET_LGET_20 = { "LGET_20", 7, "user word",
9527  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9528  KmTYPE_CHAR,  (void*)0 };
9529 static KmParameter *_GEANT_LISTS_GET_parameters[] = {
9530  &_GEANT_LISTS_GET_LGET_1, &_GEANT_LISTS_GET_LGET_2, &_GEANT_LISTS_GET_LGET_3,
9531  &_GEANT_LISTS_GET_LGET_4, &_GEANT_LISTS_GET_LGET_5, &_GEANT_LISTS_GET_LGET_6,
9532  &_GEANT_LISTS_GET_LGET_7, &_GEANT_LISTS_GET_LGET_8, &_GEANT_LISTS_GET_LGET_9,
9533  &_GEANT_LISTS_GET_LGET_10, &_GEANT_LISTS_GET_LGET_11,
9534  &_GEANT_LISTS_GET_LGET_12, &_GEANT_LISTS_GET_LGET_13,
9535  &_GEANT_LISTS_GET_LGET_14, &_GEANT_LISTS_GET_LGET_15,
9536  &_GEANT_LISTS_GET_LGET_16, &_GEANT_LISTS_GET_LGET_17,
9537  &_GEANT_LISTS_GET_LGET_18, &_GEANT_LISTS_GET_LGET_19,
9538  &_GEANT_LISTS_GET_LGET_20 };
9539 static char *_GEANT_LISTS_GET_guidance[] = {
9540  "The command GET is similar to the GET data records. It can accept",
9541  "up to 20 4-character words. If the first argument is '.', the number",
9542  "of words is reset to 0 and all the words to four blanks." };
9543 static KmCommand _GEANT_LISTS_GET = { &_GEANT_LISTS_SAVE, "/GEANT/LISTS/GET",
9544  "GET", 0, 2, 20, 0, _GEANT_LISTS_GET_parameters, 0, 0, gxlist_, (IntFunc*)0,
9545  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_GET_guidance, 0, (char**)0,
9546  (char*)0, (int*)0 };
9547  
9548 static KmParameter _GEANT_LISTS_HSTA_LHSTA_1 = { "LHSTA_1", 7, "user word",
9549  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9550  KmTYPE_CHAR,  (void*)0 };
9551 static KmParameter _GEANT_LISTS_HSTA_LHSTA_2 = { "LHSTA_2", 7, "user word",
9552  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9553  KmTYPE_CHAR,  (void*)0 };
9554 static KmParameter _GEANT_LISTS_HSTA_LHSTA_3 = { "LHSTA_3", 7, "user word",
9555  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9556  KmTYPE_CHAR,  (void*)0 };
9557 static KmParameter _GEANT_LISTS_HSTA_LHSTA_4 = { "LHSTA_4", 7, "user word",
9558  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9559  KmTYPE_CHAR,  (void*)0 };
9560 static KmParameter _GEANT_LISTS_HSTA_LHSTA_5 = { "LHSTA_5", 7, "user word",
9561  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9562  KmTYPE_CHAR,  (void*)0 };
9563 static KmParameter _GEANT_LISTS_HSTA_LHSTA_6 = { "LHSTA_6", 7, "user word",
9564  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9565  KmTYPE_CHAR,  (void*)0 };
9566 static KmParameter _GEANT_LISTS_HSTA_LHSTA_7 = { "LHSTA_7", 7, "user word",
9567  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9568  KmTYPE_CHAR,  (void*)0 };
9569 static KmParameter _GEANT_LISTS_HSTA_LHSTA_8 = { "LHSTA_8", 7, "user word",
9570  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9571  KmTYPE_CHAR,  (void*)0 };
9572 static KmParameter _GEANT_LISTS_HSTA_LHSTA_9 = { "LHSTA_9", 7, "user word",
9573  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9574  KmTYPE_CHAR,  (void*)0 };
9575 static KmParameter _GEANT_LISTS_HSTA_LHSTA_10 = { "LHSTA_10", 8, "user word",
9576  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9577  KmTYPE_CHAR,  (void*)0 };
9578 static KmParameter _GEANT_LISTS_HSTA_LHSTA_11 = { "LHSTA_11", 8, "user word",
9579  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9580  KmTYPE_CHAR,  (void*)0 };
9581 static KmParameter _GEANT_LISTS_HSTA_LHSTA_12 = { "LHSTA_12", 8, "user word",
9582  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9583  KmTYPE_CHAR,  (void*)0 };
9584 static KmParameter _GEANT_LISTS_HSTA_LHSTA_13 = { "LHSTA_13", 8, "user word",
9585  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9586  KmTYPE_CHAR,  (void*)0 };
9587 static KmParameter _GEANT_LISTS_HSTA_LHSTA_14 = { "LHSTA_14", 8, "user word",
9588  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9589  KmTYPE_CHAR,  (void*)0 };
9590 static KmParameter _GEANT_LISTS_HSTA_LHSTA_15 = { "LHSTA_15", 8, "user word",
9591  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9592  KmTYPE_CHAR,  (void*)0 };
9593 static KmParameter _GEANT_LISTS_HSTA_LHSTA_16 = { "LHSTA_16", 8, "user word",
9594  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9595  KmTYPE_CHAR,  (void*)0 };
9596 static KmParameter _GEANT_LISTS_HSTA_LHSTA_17 = { "LHSTA_17", 8, "user word",
9597  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9598  KmTYPE_CHAR,  (void*)0 };
9599 static KmParameter _GEANT_LISTS_HSTA_LHSTA_18 = { "LHSTA_18", 8, "user word",
9600  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9601  KmTYPE_CHAR,  (void*)0 };
9602 static KmParameter _GEANT_LISTS_HSTA_LHSTA_19 = { "LHSTA_19", 8, "user word",
9603  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9604  KmTYPE_CHAR,  (void*)0 };
9605 static KmParameter _GEANT_LISTS_HSTA_LHSTA_20 = { "LHSTA_20", 8, "user word",
9606  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9607  KmTYPE_CHAR,  (void*)0 };
9608 static KmParameter *_GEANT_LISTS_HSTA_parameters[] = {
9609  &_GEANT_LISTS_HSTA_LHSTA_1, &_GEANT_LISTS_HSTA_LHSTA_2,
9610  &_GEANT_LISTS_HSTA_LHSTA_3, &_GEANT_LISTS_HSTA_LHSTA_4,
9611  &_GEANT_LISTS_HSTA_LHSTA_5, &_GEANT_LISTS_HSTA_LHSTA_6,
9612  &_GEANT_LISTS_HSTA_LHSTA_7, &_GEANT_LISTS_HSTA_LHSTA_8,
9613  &_GEANT_LISTS_HSTA_LHSTA_9, &_GEANT_LISTS_HSTA_LHSTA_10,
9614  &_GEANT_LISTS_HSTA_LHSTA_11, &_GEANT_LISTS_HSTA_LHSTA_12,
9615  &_GEANT_LISTS_HSTA_LHSTA_13, &_GEANT_LISTS_HSTA_LHSTA_14,
9616  &_GEANT_LISTS_HSTA_LHSTA_15, &_GEANT_LISTS_HSTA_LHSTA_16,
9617  &_GEANT_LISTS_HSTA_LHSTA_17, &_GEANT_LISTS_HSTA_LHSTA_18,
9618  &_GEANT_LISTS_HSTA_LHSTA_19, &_GEANT_LISTS_HSTA_LHSTA_20 };
9619 static char *_GEANT_LISTS_HSTA_guidance[] = {
9620  "The command HSTA is similar to the HSTA data records. It can accept",
9621  "up to 20 4-character words. If the first argument is '.', the number",
9622  "of words is reset to 0 and all the words to four blanks." };
9623 static KmCommand _GEANT_LISTS_HSTA = { &_GEANT_LISTS_GET, "/GEANT/LISTS/HSTA",
9624  "HSTA", 0, 2, 20, 0, _GEANT_LISTS_HSTA_parameters, 0, 0, gxlist_,
9625  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_LISTS_HSTA_guidance, 0,
9626  (char**)0, (char*)0, (int*)0 };
9627  
9628 static KmMenu _GEANT_LISTS = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/LISTS",
9629  "LISTS", 2, &_GEANT_LISTS_HSTA, 0, (char**)0 };
9630  
9631 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_LISTS, "/GEANT", "GEANT", 1,
9632  (KmCommand*)0, 0, (char**)0 };
9633  
9634   klnkmenu( &_GEANT, 921023 );
9635 }
9636  
9637  
9638 #ifdef F77_LCASE
9639 #  define gkgeom_ gkgeom
9640 #  define gxgeom_ gxgeom
9641 #endif
9642  
9643 #ifdef F77_UCASE
9644 #  define gkgeom_ GKGEOM
9645 #  define gxgeom_ GXGEOM
9646 #endif
9647  
9648 #ifdef IBM370
9649 #  pragma linkage(GKGEOM,FORTRAN)
9650 #  pragma linkage(GXGEOM,FORTRAN)
9651 #endif
9652  
9653 extern void gkgeom_();
9654 extern void gxgeom_();
9655  
9656 void gkgeom_()
9657 {
9658  
9659 static KmParInt    _GEANT_GEOMETRY_WEUCLID_LUN_type = { "1", "100", "1",
9660  "100", 0 };
9661 static KmParameter _GEANT_GEOMETRY_WEUCLID_LUN = { "LUN", 3,
9662  "Logical unit of the file to be written", (char*)0, (char*)0, 4, 0,
9663  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9664  &_GEANT_GEOMETRY_WEUCLID_LUN_type };
9665 static KmParameter _GEANT_GEOMETRY_WEUCLID_FNAME = { "FNAME", 5,
9666  "Name of the EUCLID file to be written", (char*)0, (char*)0, 20, 0,
9667  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9668 static KmParameter _GEANT_GEOMETRY_WEUCLID_TOPVOL = { "TOPVOL", 6,
9669  "Volume name of the starting node", (char*)0, (char*)0, 20, 0, (char**)0, 0,
9670  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9671 static KmParInt    _GEANT_GEOMETRY_WEUCLID_NUMBER_type = { (char*)0, (char*)0,
9672  (char*)0, (char*)0, 0 };
9673 static KmParameter _GEANT_GEOMETRY_WEUCLID_NUMBER = { "NUMBER", 6,
9674  "Copy number of TOPVOL (relevant for GSPOSP)", "1", (char*)0, 8, 0,
9675  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9676  &_GEANT_GEOMETRY_WEUCLID_NUMBER_type };
9677 static KmParInt    _GEANT_GEOMETRY_WEUCLID_NLEVEL_type = { (char*)0, (char*)0,
9678  (char*)0, (char*)0, 0 };
9679 static KmParameter _GEANT_GEOMETRY_WEUCLID_NLEVEL = { "NLEVEL", 6,
9680  "Number of levels in the tree structure", "15", (char*)0, 8, 0, (char**)0, 0,
9681  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_WEUCLID_NLEVEL_type };
9682 static KmParameter *_GEANT_GEOMETRY_WEUCLID_parameters[] = {
9683  &_GEANT_GEOMETRY_WEUCLID_LUN, &_GEANT_GEOMETRY_WEUCLID_FNAME,
9684  &_GEANT_GEOMETRY_WEUCLID_TOPVOL, &_GEANT_GEOMETRY_WEUCLID_NUMBER,
9685  &_GEANT_GEOMETRY_WEUCLID_NLEVEL };
9686 static char *_GEANT_GEOMETRY_WEUCLID_guidance[] = {
9687  "          CALL GWEUCL(LUN,FNAME)",
9688  "Calls the routine to write the current GEANT geometry into an ASCII file",
9689  "in EUCLID compatible format." };
9690 static KmCommand _GEANT_GEOMETRY_WEUCLID = {  (KmCommand*)0,
9691  "/GEANT/GEOMETRY/WEUCLID", "WEUCLID", 0, 2, 5, 3,
9692  _GEANT_GEOMETRY_WEUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
9693  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_WEUCLID_guidance, 0,
9694  (char**)0, (char*)0, (int*)0 };
9695  
9696 static KmParInt    _GEANT_GEOMETRY_REUCLID_LUN_type = { "1", "100", "1",
9697  "100", 0 };
9698 static KmParameter _GEANT_GEOMETRY_REUCLID_LUN = { "LUN", 3,
9699  "Logical unit of the file to be read", (char*)0, (char*)0, 4, 0, (char**)0,
9700  0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_REUCLID_LUN_type };
9701 static KmParameter _GEANT_GEOMETRY_REUCLID_FNAME = { "FNAME", 5,
9702  "Name of the EUCLID file to be read", (char*)0, (char*)0, 20, 0, (char**)0,
9703  0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9704 static KmParameter *_GEANT_GEOMETRY_REUCLID_parameters[] = {
9705  &_GEANT_GEOMETRY_REUCLID_LUN, &_GEANT_GEOMETRY_REUCLID_FNAME };
9706 static char *_GEANT_GEOMETRY_REUCLID_guidance[] = {
9707  "          CALL GREUCL(LUN,FNAME)",
9708  "Calls the routine to read into GEANT a geometry from an ASCII file",
9709  "written by the EUCLID-GEANT interface." };
9710 static KmCommand _GEANT_GEOMETRY_REUCLID = { &_GEANT_GEOMETRY_WEUCLID,
9711  "/GEANT/GEOMETRY/REUCLID", "REUCLID", 0, 2, 2, 2,
9712  _GEANT_GEOMETRY_REUCLID_parameters, 0, 0, gxgeom_, (IntFunc*)0,
9713  (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_GEOMETRY_REUCLID_guidance, 0,
9714  (char**)0, (char*)0, (int*)0 };
9715  
9716 static KmParameter _GEANT_GEOMETRY_CADINT_FNAME = { "FNAME", 5,
9717  "Name of the SET file", "example.set", (char*)0, 20, 0, (char**)0, 0,
9718  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9719 static KmParameter _GEANT_GEOMETRY_CADINT_ANAME = { "ANAME", 5,
9720  "Name of the volume", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
9721  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9722 static KmParInt    _GEANT_GEOMETRY_CADINT_NBINS_type = { (char*)0, (char*)0,
9723  (char*)0, (char*)0, 0 };
9724 static KmParameter _GEANT_GEOMETRY_CADINT_NBINS = { "NBINS", 5,
9725  "Number of the instances", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9726  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_NBINS_type };
9727 static KmParInt    _GEANT_GEOMETRY_CADINT_LUNIT_type = { (char*)0, (char*)0,
9728  (char*)0, (char*)0, 0 };
9729 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT = { "LUNIT", 5,
9730  "Logical unit number for SET file", "66", (char*)0, 8, 0, (char**)0, 0,
9731  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT_type };
9732 static KmParInt    _GEANT_GEOMETRY_CADINT_LUNIT2_type = { (char*)0, (char*)0,
9733  (char*)0, (char*)0, 0 };
9734 static KmParameter _GEANT_GEOMETRY_CADINT_LUNIT2 = { "LUNIT2", 6,
9735  "Logical unit number for material file", "67", (char*)0, 8, 0, (char**)0, 0,
9736  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_CADINT_LUNIT2_type };
9737 static KmParameter _GEANT_GEOMETRY_CADINT_INST = { "INST", 4,
9738  "Name of your institute", "CERN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
9739  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9740 static KmParameter _GEANT_GEOMETRY_CADINT_SITE = { "SITE", 4, "Name of site",
9741  "MEYRIN", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9742  KmTYPE_CHAR,  (void*)0 };
9743 static KmParameter _GEANT_GEOMETRY_CADINT_DEPT = { "DEPT", 4,
9744  "Name of departement", "CN", (char*)0, 20, 0, (char**)0, 0, (char**)0,
9745  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9746 static KmParameter _GEANT_GEOMETRY_CADINT_RESP = { "RESP", 4,
9747  "Name of sender", "god_knows_who", (char*)0, 20, 0, (char**)0, 0, (char**)0,
9748  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9749 static KmParameter *_GEANT_GEOMETRY_CADINT_parameters[] = {
9750  &_GEANT_GEOMETRY_CADINT_FNAME, &_GEANT_GEOMETRY_CADINT_ANAME,
9751  &_GEANT_GEOMETRY_CADINT_NBINS, &_GEANT_GEOMETRY_CADINT_LUNIT,
9752  &_GEANT_GEOMETRY_CADINT_LUNIT2, &_GEANT_GEOMETRY_CADINT_INST,
9753  &_GEANT_GEOMETRY_CADINT_SITE, &_GEANT_GEOMETRY_CADINT_DEPT,
9754  &_GEANT_GEOMETRY_CADINT_RESP };
9755 static char *_GEANT_GEOMETRY_CADINT_guidance[] = {
9756  " CALL GTXSET(fname,aname,nbins,lunit,lunit2,inst,site,dept,resp)",
9757  "This command produces a SET file describing the given volume with",
9758  "the contents currently set visible. (Use the visibility attribute,",
9759  "see SATT SEEN.) The description is given as a flat assembly",
9760  "related to the global coordinate system.",
9761  "The ouput can be read into CAD systems (EUCLID-IS) trough a SET interface.",
9762  "A list of materials of the volumes in the SET file and the GEANT tree",
9763  "is written into a file with the same filename as the SET file,",
9764  "but with extension .mat." };
9765 static KmCommand _GEANT_GEOMETRY_CADINT = { &_GEANT_GEOMETRY_REUCLID,
9766  "/GEANT/GEOMETRY/CADINT", "CADINT", 0, 2, 9, 9,
9767  _GEANT_GEOMETRY_CADINT_parameters, 0, 0, gxgeom_, (IntFunc*)0,
9768  (SUBROUTINE*)0, (pCharFunc*)0, 9, _GEANT_GEOMETRY_CADINT_guidance, 0,
9769  (char**)0, (char*)0, (int*)0 };
9770  
9771 static KmParInt    _GEANT_GEOMETRY_EDITV_ISEL_type = { (char*)0, (char*)0,
9772  (char*)0, (char*)0, 0 };
9773 static KmParameter _GEANT_GEOMETRY_EDITV_ISEL = { "ISEL", 4, "Options", "0",
9774  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9775  &_GEANT_GEOMETRY_EDITV_ISEL_type };
9776 static KmParameter _GEANT_GEOMETRY_EDITV_NAME = { "NAME", 4, "Volume name",
9777  "   ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
9778  (void*)0 };
9779 static KmParameter *_GEANT_GEOMETRY_EDITV_parameters[] = {
9780  &_GEANT_GEOMETRY_EDITV_ISEL, &_GEANT_GEOMETRY_EDITV_NAME };
9781 static char *_GEANT_GEOMETRY_EDITV_guidance[] = { " CALL GEDITV(isel,name)",
9782  "When the routine prompts for input parameters that do not need",
9783  "to be changed, type return.",
9784  "ISEL is used to select the editing operation to be performed:",
9785  " ISEL=0, CALL GGCLOS",
9786  " ISEL=1, to modify shape parameters PAR given by GSVOLU",
9787  " ISEL=2, to modify NAME given by GSVOLU",
9788  " ISEL=3, to delete NAME given by GSVOLU",
9789  " ISEL=4, to unlink NAME,NR given by GSPOS/GSDVN/GSDV..",
9790  " ISEL=5, to modify X0,Y0,Z0 of NAME,NR given by GSPOS",
9791  " ISEL=6, to modify IROT of NAME,NR given by GSPOS",
9792  " ISEL=7, to modify NDIV given by GSDVN",
9793  " ISEL=8, to modify IAXIS given by GSDVN" };
9794 static KmCommand _GEANT_GEOMETRY_EDITV = { &_GEANT_GEOMETRY_CADINT,
9795  "/GEANT/GEOMETRY/EDITV", "EDITV", 0, 2, 2, 0,
9796  _GEANT_GEOMETRY_EDITV_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9797  (pCharFunc*)0, 13, _GEANT_GEOMETRY_EDITV_guidance, 0, (char**)0, (char*)0,
9798  (int*)0 };
9799  
9800 static KmParInt    _GEANT_GEOMETRY_PTMED_NUMB_type = { (char*)0, (char*)0,
9801  (char*)0, (char*)0, 0 };
9802 static KmParameter _GEANT_GEOMETRY_PTMED_NUMB = { "NUMB", 4, "Medium ID",
9803  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9804  &_GEANT_GEOMETRY_PTMED_NUMB_type };
9805 static KmParameter *_GEANT_GEOMETRY_PTMED_parameters[] = {
9806  &_GEANT_GEOMETRY_PTMED_NUMB };
9807 static char *_GEANT_GEOMETRY_PTMED_guidance[] = { " CALL GPTMED(numb)",
9808  "Print tracking media's specifications." };
9809 static KmCommand _GEANT_GEOMETRY_PTMED = { &_GEANT_GEOMETRY_EDITV,
9810  "/GEANT/GEOMETRY/PTMED", "PTMED", 0, 2, 1, 1,
9811  _GEANT_GEOMETRY_PTMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9812  (pCharFunc*)0, 2, _GEANT_GEOMETRY_PTMED_guidance, 0, (char**)0, (char*)0,
9813  (int*)0 };
9814  
9815 static KmParInt    _GEANT_GEOMETRY_STMED_NTMED_type = { (char*)0, (char*)0,
9816  (char*)0, (char*)0, 0 };
9817 static KmParameter _GEANT_GEOMETRY_STMED_NTMED = { "NTMED", 5,
9818  "Tracking medium number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9819  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NTMED_type };
9820 static KmParameter _GEANT_GEOMETRY_STMED_NAME = { "NAME", 4,
9821  "Tracking medium name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
9822  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9823 static KmParInt    _GEANT_GEOMETRY_STMED_NMAT_type = { (char*)0, (char*)0,
9824  (char*)0, (char*)0, 0 };
9825 static KmParameter _GEANT_GEOMETRY_STMED_NMAT = { "NMAT", 4,
9826  "Material number", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9827  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_NMAT_type };
9828 static KmParInt    _GEANT_GEOMETRY_STMED_ISVOL_type = { (char*)0, (char*)0,
9829  (char*)0, (char*)0, 0 };
9830 static KmParameter _GEANT_GEOMETRY_STMED_ISVOL = { "ISVOL", 5,
9831  "Sensitive volume flag", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
9832  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_STMED_ISVOL_type };
9833 static KmParInt    _GEANT_GEOMETRY_STMED_IFIELD_type = { (char*)0, (char*)0,
9834  (char*)0, (char*)0, 0 };
9835 static KmParameter _GEANT_GEOMETRY_STMED_IFIELD = { "IFIELD", 6,
9836  "Magnetic field", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9837  KmTYPE_INT, &_GEANT_GEOMETRY_STMED_IFIELD_type };
9838 static KmParReal   _GEANT_GEOMETRY_STMED_FIELDM_type = { (char*)0, (char*)0,
9839  (char*)0, (char*)0, 0 };
9840 static KmParameter _GEANT_GEOMETRY_STMED_FIELDM = { "FIELDM", 6,
9841  "Max. field value (Kilogauss)", "0", (char*)0, 12, 0, (char**)0, 0,
9842  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_FIELDM_type };
9843 static KmParReal   _GEANT_GEOMETRY_STMED_TMAXFD_type = { (char*)0, (char*)0,
9844  (char*)0, (char*)0, 0 };
9845 static KmParameter _GEANT_GEOMETRY_STMED_TMAXFD = { "TMAXFD", 6,
9846  "Max. angle due to field (deg/step)", "0.01", (char*)0, 12, 0, (char**)0, 0,
9847  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_TMAXFD_type };
9848 static KmParReal   _GEANT_GEOMETRY_STMED_STEMAX_type = { (char*)0, (char*)0,
9849  (char*)0, (char*)0, 0 };
9850 static KmParameter _GEANT_GEOMETRY_STMED_STEMAX = { "STEMAX", 6,
9851  "Max. step allowed", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9852  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_STEMAX_type };
9853 static KmParReal   _GEANT_GEOMETRY_STMED_DEEMAX_type = { (char*)0, (char*)0,
9854  (char*)0, (char*)0, 0 };
9855 static KmParameter _GEANT_GEOMETRY_STMED_DEEMAX = { "DEEMAX", 6,
9856  "Max. fraction of energy lost in a step", "0.01", (char*)0, 12, 0, (char**)0,
9857  0, (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_DEEMAX_type };
9858 static KmParReal   _GEANT_GEOMETRY_STMED_EPSIL_type = { (char*)0, (char*)0,
9859  (char*)0, (char*)0, 0 };
9860 static KmParameter _GEANT_GEOMETRY_STMED_EPSIL = { "EPSIL", 5,
9861  "Tracking precision (cm)", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9862  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_STMED_EPSIL_type };
9863 static KmParReal   _GEANT_GEOMETRY_STMED_STMIN_type = { (char*)0, (char*)0,
9864  (char*)0, (char*)0, 0 };
9865 static KmParameter _GEANT_GEOMETRY_STMED_STMIN = { "STMIN", 5,
9866  "Min. step due to continuos processes (cm)", "0.1", (char*)0, 12, 0,
9867  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
9868  &_GEANT_GEOMETRY_STMED_STMIN_type };
9869 static KmParameter *_GEANT_GEOMETRY_STMED_parameters[] = {
9870  &_GEANT_GEOMETRY_STMED_NTMED, &_GEANT_GEOMETRY_STMED_NAME,
9871  &_GEANT_GEOMETRY_STMED_NMAT, &_GEANT_GEOMETRY_STMED_ISVOL,
9872  &_GEANT_GEOMETRY_STMED_IFIELD, &_GEANT_GEOMETRY_STMED_FIELDM,
9873  &_GEANT_GEOMETRY_STMED_TMAXFD, &_GEANT_GEOMETRY_STMED_STEMAX,
9874  &_GEANT_GEOMETRY_STMED_DEEMAX, &_GEANT_GEOMETRY_STMED_EPSIL,
9875  &_GEANT_GEOMETRY_STMED_STMIN };
9876 static char *_GEANT_GEOMETRY_STMED_guidance[] = {
9877  "      CALL GSTMED(ntmed,name,nmat,isvol,ifield,fieldm,tmaxfd,",
9878  "     +            stemax,deemax,epsil,stmin,0,0)",
9879  "IFIELD = 0 if no magnetic field; IFIELD = -1 if user decision in GUSWIM;",
9880  "IFIELD = 1 if tracking performed with GRKUTA; IFIELD = 2 if tracking",
9881  "performed with GHELIX; IFIELD = 3 if tracking performed with GHELX3." };
9882 static KmCommand _GEANT_GEOMETRY_STMED = { &_GEANT_GEOMETRY_PTMED,
9883  "/GEANT/GEOMETRY/STMED", "STMED", 0, 2, 11, 11,
9884  _GEANT_GEOMETRY_STMED_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9885  (pCharFunc*)0, 5, _GEANT_GEOMETRY_STMED_guidance, 0, (char**)0, (char*)0,
9886  (int*)0 };
9887  
9888 static KmParInt    _GEANT_GEOMETRY_PROTM_NUMB_type = { (char*)0, (char*)0,
9889  (char*)0, (char*)0, 0 };
9890 static KmParameter _GEANT_GEOMETRY_PROTM_NUMB = { "NUMB", 4, "Matrix ID",
9891  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9892  &_GEANT_GEOMETRY_PROTM_NUMB_type };
9893 static KmParameter *_GEANT_GEOMETRY_PROTM_parameters[] = {
9894  &_GEANT_GEOMETRY_PROTM_NUMB };
9895 static char *_GEANT_GEOMETRY_PROTM_guidance[] = { " CALL GPROTM(numb)",
9896  "Print matrixes' specifications." };
9897 static KmCommand _GEANT_GEOMETRY_PROTM = { &_GEANT_GEOMETRY_STMED,
9898  "/GEANT/GEOMETRY/PROTM", "PROTM", 0, 2, 1, 1,
9899  _GEANT_GEOMETRY_PROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9900  (pCharFunc*)0, 2, _GEANT_GEOMETRY_PROTM_guidance, 0, (char**)0, (char*)0,
9901  (int*)0 };
9902  
9903 static KmParInt    _GEANT_GEOMETRY_SROTM_IROT_type = { (char*)0, (char*)0,
9904  (char*)0, (char*)0, 0 };
9905 static KmParameter _GEANT_GEOMETRY_SROTM_IROT = { "IROT", 4,
9906  "Rotation matrix number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
9907  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SROTM_IROT_type };
9908 static KmParReal   _GEANT_GEOMETRY_SROTM_THETA1_type = { "0.", "180.", "0.",
9909  "180.", 0 };
9910 static KmParameter _GEANT_GEOMETRY_SROTM_THETA1 = { "THETA1", 6,
9911  "Polar angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9912  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA1_type };
9913 static KmParReal   _GEANT_GEOMETRY_SROTM_PHI1_type = { "0.", "360.", "0.",
9914  "360.", 0 };
9915 static KmParameter _GEANT_GEOMETRY_SROTM_PHI1 = { "PHI1", 4,
9916  "Azimuthal angle for axis I", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9917  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI1_type };
9918 static KmParReal   _GEANT_GEOMETRY_SROTM_THETA2_type = { "0.", "180.", "0.",
9919  "180.", 0 };
9920 static KmParameter _GEANT_GEOMETRY_SROTM_THETA2 = { "THETA2", 6,
9921  "Polar angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9922  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA2_type };
9923 static KmParReal   _GEANT_GEOMETRY_SROTM_PHI2_type = { "0.", "360.", "0.",
9924  "360.", 0 };
9925 static KmParameter _GEANT_GEOMETRY_SROTM_PHI2 = { "PHI2", 4,
9926  "Azimuthal angle for axis II", "0.", (char*)0, 12, 0, (char**)0, 0,
9927  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI2_type };
9928 static KmParReal   _GEANT_GEOMETRY_SROTM_THETA3_type = { "0.", "180.", "0.",
9929  "180.", 0 };
9930 static KmParameter _GEANT_GEOMETRY_SROTM_THETA3 = { "THETA3", 6,
9931  "Polar angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
9932  (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_THETA3_type };
9933 static KmParReal   _GEANT_GEOMETRY_SROTM_PHI3_type = { "0.", "360.", "0.",
9934  "360.", 0 };
9935 static KmParameter _GEANT_GEOMETRY_SROTM_PHI3 = { "PHI3", 4,
9936  "Azimuthal angle for axis III", "0.", (char*)0, 12, 0, (char**)0, 0,
9937  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_GEOMETRY_SROTM_PHI3_type };
9938 static KmParameter *_GEANT_GEOMETRY_SROTM_parameters[] = {
9939  &_GEANT_GEOMETRY_SROTM_IROT, &_GEANT_GEOMETRY_SROTM_THETA1,
9940  &_GEANT_GEOMETRY_SROTM_PHI1, &_GEANT_GEOMETRY_SROTM_THETA2,
9941  &_GEANT_GEOMETRY_SROTM_PHI2, &_GEANT_GEOMETRY_SROTM_THETA3,
9942  &_GEANT_GEOMETRY_SROTM_PHI3 };
9943 static char *_GEANT_GEOMETRY_SROTM_guidance[] = {
9944  " CALL GSROTM(irot,theta1,phi1,theta2,phi2,theta3,phi3)",
9945  "It defines the rotation matrix number IROT." };
9946 static KmCommand _GEANT_GEOMETRY_SROTM = { &_GEANT_GEOMETRY_PROTM,
9947  "/GEANT/GEOMETRY/SROTM", "SROTM", 0, 2, 7, 7,
9948  _GEANT_GEOMETRY_SROTM_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9949  (pCharFunc*)0, 2, _GEANT_GEOMETRY_SROTM_guidance, 0, (char**)0, (char*)0,
9950  (int*)0 };
9951  
9952 static KmParInt    _GEANT_GEOMETRY_PVOLU_NUMB_type = { (char*)0, (char*)0,
9953  (char*)0, (char*)0, 0 };
9954 static KmParameter _GEANT_GEOMETRY_PVOLU_NUMB = { "NUMB", 4, "Volume ID",
9955  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
9956  &_GEANT_GEOMETRY_PVOLU_NUMB_type };
9957 static KmParameter *_GEANT_GEOMETRY_PVOLU_parameters[] = {
9958  &_GEANT_GEOMETRY_PVOLU_NUMB };
9959 static char *_GEANT_GEOMETRY_PVOLU_guidance[] = { " CALL GPVOLU(numb)",
9960  "Prints volumes' specifications." };
9961 static KmCommand _GEANT_GEOMETRY_PVOLU = { &_GEANT_GEOMETRY_SROTM,
9962  "/GEANT/GEOMETRY/PVOLU", "PVOLU", 0, 2, 1, 1,
9963  _GEANT_GEOMETRY_PVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
9964  (pCharFunc*)0, 2, _GEANT_GEOMETRY_PVOLU_guidance, 0, (char**)0, (char*)0,
9965  (int*)0 };
9966  
9967 static KmParameter _GEANT_GEOMETRY_SDVN_NAME = { "NAME", 4, "Volume name",
9968  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
9969  KmTYPE_CHAR,  (void*)0 };
9970 static KmParameter _GEANT_GEOMETRY_SDVN_MOTHER = { "MOTHER", 6,
9971  "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
9972  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
9973 static KmParInt    _GEANT_GEOMETRY_SDVN_NDIV_type = { (char*)0, (char*)0,
9974  (char*)0, (char*)0, 0 };
9975 static KmParameter _GEANT_GEOMETRY_SDVN_NDIV = { "NDIV", 4,
9976  "Number of divisions", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
9977  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SDVN_NDIV_type };
9978 static char *_GEANT_GEOMETRY_SDVN_CAXIS_range[] = { "X", "Y", "Z", "1", "2",
9979  "3" };
9980 static char *_GEANT_GEOMETRY_SDVN_CAXIS_text[] = { (char*)0, (char*)0,
9981  (char*)0, (char*)0, (char*)0, (char*)0 };
9982 static KmParOption _GEANT_GEOMETRY_SDVN_CAXIS_type = {
9983  _GEANT_GEOMETRY_SDVN_CAXIS_text, (int*)0, (int*)0 };
9984 static KmParameter _GEANT_GEOMETRY_SDVN_CAXIS = { "CAXIS", 5, "Axis value",
9985  (char*)0, (char*)0, 8, 6, _GEANT_GEOMETRY_SDVN_CAXIS_range, 6,
9986  _GEANT_GEOMETRY_SDVN_CAXIS_range, (KmParFlag)0, KmTYPE_OPTION,
9987  &_GEANT_GEOMETRY_SDVN_CAXIS_type };
9988 static KmParameter *_GEANT_GEOMETRY_SDVN_parameters[] = {
9989  &_GEANT_GEOMETRY_SDVN_NAME, &_GEANT_GEOMETRY_SDVN_MOTHER,
9990  &_GEANT_GEOMETRY_SDVN_NDIV, &_GEANT_GEOMETRY_SDVN_CAXIS };
9991 static char *_GEANT_GEOMETRY_SDVN_guidance[] = {
9992  " CALL GSDVN(name,mother,ndiv,iaxis)",
9993  "X,Y,Z of CAXIS will be translated to 1,2,3 for IAXIS.",
9994  "It divides a previously defined volume." };
9995 static KmCommand _GEANT_GEOMETRY_SDVN = { &_GEANT_GEOMETRY_PVOLU,
9996  "/GEANT/GEOMETRY/SDVN", "SDVN", 0, 2, 4, 4, _GEANT_GEOMETRY_SDVN_parameters,
9997  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
9998  _GEANT_GEOMETRY_SDVN_guidance, 0, (char**)0, (char*)0, (int*)0 };
9999  
10000 static KmParameter _GEANT_GEOMETRY_SPOS_NAME = { "NAME", 4, "Volume name",
10001  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10002  KmTYPE_CHAR,  (void*)0 };
10003 static KmParInt    _GEANT_GEOMETRY_SPOS_NUMBER_type = { (char*)0, (char*)0,
10004  (char*)0, (char*)0, 0 };
10005 static KmParameter _GEANT_GEOMETRY_SPOS_NUMBER = { "NUMBER", 6,
10006  "Copy number of the volume", (char*)0, (char*)0, 8, 0, (char**)0, 0,
10007  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SPOS_NUMBER_type };
10008 static KmParameter _GEANT_GEOMETRY_SPOS_MOTHER = { "MOTHER", 6,
10009  "Mother volume name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10010  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10011 static KmParReal   _GEANT_GEOMETRY_SPOS_X0_type = { (char*)0, (char*)0,
10012  (char*)0, (char*)0, 0 };
10013 static KmParameter _GEANT_GEOMETRY_SPOS_X0 = { "X0", 2,
10014  "X coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10015  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10016  &_GEANT_GEOMETRY_SPOS_X0_type };
10017 static KmParReal   _GEANT_GEOMETRY_SPOS_Y0_type = { (char*)0, (char*)0,
10018  (char*)0, (char*)0, 0 };
10019 static KmParameter _GEANT_GEOMETRY_SPOS_Y0 = { "Y0", 2,
10020  "Y coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10021  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10022  &_GEANT_GEOMETRY_SPOS_Y0_type };
10023 static KmParReal   _GEANT_GEOMETRY_SPOS_Z0_type = { (char*)0, (char*)0,
10024  (char*)0, (char*)0, 0 };
10025 static KmParameter _GEANT_GEOMETRY_SPOS_Z0 = { "Z0", 2,
10026  "Z coord. of the volume in mother ref. sys.", (char*)0, (char*)0, 12, 0,
10027  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10028  &_GEANT_GEOMETRY_SPOS_Z0_type };
10029 static KmParInt    _GEANT_GEOMETRY_SPOS_IROT_type = { (char*)0, (char*)0,
10030  (char*)0, (char*)0, 0 };
10031 static KmParameter _GEANT_GEOMETRY_SPOS_IROT = { "IROT", 4,
10032  "Rotation matrix number w.r.t. mother ref. sys.", (char*)0, (char*)0, 8, 0,
10033  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10034  &_GEANT_GEOMETRY_SPOS_IROT_type };
10035 static KmParameter _GEANT_GEOMETRY_SPOS_ONLY = { "ONLY", 4, "ONLY/MANY flag",
10036  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10037  KmTYPE_CHAR,  (void*)0 };
10038 static KmParameter *_GEANT_GEOMETRY_SPOS_parameters[] = {
10039  &_GEANT_GEOMETRY_SPOS_NAME, &_GEANT_GEOMETRY_SPOS_NUMBER,
10040  &_GEANT_GEOMETRY_SPOS_MOTHER, &_GEANT_GEOMETRY_SPOS_X0,
10041  &_GEANT_GEOMETRY_SPOS_Y0, &_GEANT_GEOMETRY_SPOS_Z0,
10042  &_GEANT_GEOMETRY_SPOS_IROT, &_GEANT_GEOMETRY_SPOS_ONLY };
10043 static char *_GEANT_GEOMETRY_SPOS_guidance[] = {
10044  " CALL GSPOS(name,number,mother,x0,y0,z0,irot,only)",
10045  "It positions a previously defined volume in the mother." };
10046 static KmCommand _GEANT_GEOMETRY_SPOS = { &_GEANT_GEOMETRY_SDVN,
10047  "/GEANT/GEOMETRY/SPOS", "SPOS", 0, 2, 8, 8, _GEANT_GEOMETRY_SPOS_parameters,
10048  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
10049  _GEANT_GEOMETRY_SPOS_guidance, 0, (char**)0, (char*)0, (int*)0 };
10050  
10051 static KmParameter _GEANT_GEOMETRY_SVOLU_NAME = { "NAME", 4, "Volume name",
10052  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10053  KmTYPE_CHAR,  (void*)0 };
10054 static KmParameter _GEANT_GEOMETRY_SVOLU_SHAPE = { "SHAPE", 5, "Volume type",
10055  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10056  KmTYPE_CHAR,  (void*)0 };
10057 static KmParInt    _GEANT_GEOMETRY_SVOLU_NUMED_type = { (char*)0, (char*)0,
10058  (char*)0, (char*)0, 0 };
10059 static KmParameter _GEANT_GEOMETRY_SVOLU_NUMED = { "NUMED", 5,
10060  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10061  (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NUMED_type };
10062 static KmParInt    _GEANT_GEOMETRY_SVOLU_NPAR_type = { (char*)0, (char*)0,
10063  (char*)0, (char*)0, 0 };
10064 static KmParameter _GEANT_GEOMETRY_SVOLU_NPAR = { "NPAR", 4,
10065  "Number of shape parameters", (char*)0, (char*)0, 8, 0, (char**)0, 0,
10066  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_GEOMETRY_SVOLU_NPAR_type };
10067 static KmParameter _GEANT_GEOMETRY_SVOLU_PAR = { "PAR", 3,
10068  "Vector containing shape parameters", (char*)0, (char*)0, 20, 0, (char**)0,
10069  0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10070 static KmParameter *_GEANT_GEOMETRY_SVOLU_parameters[] = {
10071  &_GEANT_GEOMETRY_SVOLU_NAME, &_GEANT_GEOMETRY_SVOLU_SHAPE,
10072  &_GEANT_GEOMETRY_SVOLU_NUMED, &_GEANT_GEOMETRY_SVOLU_NPAR,
10073  &_GEANT_GEOMETRY_SVOLU_PAR };
10074 static char *_GEANT_GEOMETRY_SVOLU_guidance[] = {
10075  " CALL GSVOLU(name,shape,numed,par,npar,ivolu)",
10076  "where par is a KUIP vector.",
10077  "It creates a new volume in the JVOLUM data structure." };
10078 static KmCommand _GEANT_GEOMETRY_SVOLU = { &_GEANT_GEOMETRY_SPOS,
10079  "/GEANT/GEOMETRY/SVOLU", "SVOLU", 0, 2, 5, 5,
10080  _GEANT_GEOMETRY_SVOLU_parameters, 0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0,
10081  (pCharFunc*)0, 3, _GEANT_GEOMETRY_SVOLU_guidance, 0, (char**)0, (char*)0,
10082  (int*)0 };
10083  
10084 static char *_GEANT_GEOMETRY_OPTI_IOPTI_range[] = { "-1", "2" };
10085 static KmParInt    _GEANT_GEOMETRY_OPTI_IOPTI_type = { (char*)0, (char*)0,
10086  (char*)0, (char*)0, 0 };
10087 static KmParameter _GEANT_GEOMETRY_OPTI_IOPTI = { "IOPTI", 5,
10088  "GSORD optimisation level", "0", (char*)0, 8, 2,
10089  _GEANT_GEOMETRY_OPTI_IOPTI_range, 2, _GEANT_GEOMETRY_OPTI_IOPTI_range,
10090  (KmParFlag)2, KmTYPE_INT, &_GEANT_GEOMETRY_OPTI_IOPTI_type };
10091 static KmParameter *_GEANT_GEOMETRY_OPTI_parameters[] = {
10092  &_GEANT_GEOMETRY_OPTI_IOPTI };
10093 static char *_GEANT_GEOMETRY_OPTI_guidance[] = {
10094  "This flag controls the tracking optimisation performed via the",
10095  "GSORD routine:", "    1 no optimisation at all; GSORD calls disabled;",
10096  "    0 no optimisation; only user calls to GSORD kept;",
10097  "    1 all non-GSORDered volumes are ordered along the best axis;",
10098  "    2 all volumes are ordered along the best axis." };
10099 static KmCommand _GEANT_GEOMETRY_OPTI = { &_GEANT_GEOMETRY_SVOLU,
10100  "/GEANT/GEOMETRY/OPTI", "OPTI", 0, 2, 1, 1, _GEANT_GEOMETRY_OPTI_parameters,
10101  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
10102  _GEANT_GEOMETRY_OPTI_guidance, 0, (char**)0, (char*)0, (int*)0 };
10103  
10104 static KmParameter _GEANT_CREATE_SPARA_NAME = { "NAME", 4, "Volume name",
10105  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10106  KmTYPE_CHAR,  (void*)0 };
10107 static KmParInt    _GEANT_CREATE_SPARA_NUMED_type = { (char*)0, (char*)0,
10108  (char*)0, (char*)0, 0 };
10109 static KmParameter _GEANT_CREATE_SPARA_NUMED = { "NUMED", 5,
10110  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10111  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SPARA_NUMED_type };
10112 static KmParReal   _GEANT_CREATE_SPARA_HALFX_type = { (char*)0, (char*)0,
10113  (char*)0, (char*)0, 0 };
10114 static KmParameter _GEANT_CREATE_SPARA_HALFX = { "HALFX", 5, "Half X length",
10115  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10116  KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFX_type };
10117 static KmParReal   _GEANT_CREATE_SPARA_HALFY_type = { (char*)0, (char*)0,
10118  (char*)0, (char*)0, 0 };
10119 static KmParameter _GEANT_CREATE_SPARA_HALFY = { "HALFY", 5, "Half Y length",
10120  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10121  KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFY_type };
10122 static KmParReal   _GEANT_CREATE_SPARA_HALFZ_type = { (char*)0, (char*)0,
10123  (char*)0, (char*)0, 0 };
10124 static KmParameter _GEANT_CREATE_SPARA_HALFZ = { "HALFZ", 5, "Half Z length",
10125  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10126  KmTYPE_REAL, &_GEANT_CREATE_SPARA_HALFZ_type };
10127 static KmParReal   _GEANT_CREATE_SPARA_AXIS_type = { "0.", "360.", "0.",
10128  "360.", 0 };
10129 static KmParameter _GEANT_CREATE_SPARA_AXIS = { "AXIS", 4,
10130  "Angle of Y mid-faces segment to Y axis", (char*)0, (char*)0, 12, 0,
10131  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10132  &_GEANT_CREATE_SPARA_AXIS_type };
10133 static KmParReal   _GEANT_CREATE_SPARA_PHI_type = { "0.", "360.", "0.",
10134  "360.", 0 };
10135 static KmParameter _GEANT_CREATE_SPARA_PHI = { "PHI", 3,
10136  "PHI angle of Low Z mid-face to High Z mid-face segment", (char*)0, (char*)0,
10137  12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10138  &_GEANT_CREATE_SPARA_PHI_type };
10139 static KmParReal   _GEANT_CREATE_SPARA_THETA_type = { "0.", "360.", "0.",
10140  "360.", 0 };
10141 static KmParameter _GEANT_CREATE_SPARA_THETA = { "THETA", 5,
10142  "THETA angle of mid-low-Z-face to mid-high-Z-face segment", (char*)0,
10143  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10144  &_GEANT_CREATE_SPARA_THETA_type };
10145 static char *_GEANT_CREATE_SPARA_YESNO_range[] = { "YES", "NO" };
10146 static char *_GEANT_CREATE_SPARA_YESNO_text[] = { (char*)0, (char*)0 };
10147 static KmParOption _GEANT_CREATE_SPARA_YESNO_type = {
10148  _GEANT_CREATE_SPARA_YESNO_text, (int*)0, (int*)0 };
10149 static KmParameter _GEANT_CREATE_SPARA_YESNO = { "YESNO", 5, "GSPOSP option",
10150  "NO", (char*)0, 8, 2, _GEANT_CREATE_SPARA_YESNO_range, 2,
10151  _GEANT_CREATE_SPARA_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10152  &_GEANT_CREATE_SPARA_YESNO_type };
10153 static KmParameter *_GEANT_CREATE_SPARA_parameters[] = {
10154  &_GEANT_CREATE_SPARA_NAME, &_GEANT_CREATE_SPARA_NUMED,
10155  &_GEANT_CREATE_SPARA_HALFX, &_GEANT_CREATE_SPARA_HALFY,
10156  &_GEANT_CREATE_SPARA_HALFZ, &_GEANT_CREATE_SPARA_AXIS,
10157  &_GEANT_CREATE_SPARA_PHI, &_GEANT_CREATE_SPARA_THETA,
10158  &_GEANT_CREATE_SPARA_YESNO };
10159 static KmCommand _GEANT_CREATE_SPARA = {  (KmCommand*)0,
10160  "/GEANT/CREATE/SPARA", "SPARA", 0, 2, 9, 8, _GEANT_CREATE_SPARA_parameters,
10161  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10162  (char**)0, (char*)0, (int*)0 };
10163  
10164 static KmParameter _GEANT_CREATE_SSPHE_NAME = { "NAME", 4, "Volume name",
10165  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10166  KmTYPE_CHAR,  (void*)0 };
10167 static KmParInt    _GEANT_CREATE_SSPHE_NUMED_type = { (char*)0, (char*)0,
10168  (char*)0, (char*)0, 0 };
10169 static KmParameter _GEANT_CREATE_SSPHE_NUMED = { "NUMED", 5,
10170  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10171  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SSPHE_NUMED_type };
10172 static KmParReal   _GEANT_CREATE_SSPHE_INRAD_type = { (char*)0, (char*)0,
10173  (char*)0, (char*)0, 0 };
10174 static KmParameter _GEANT_CREATE_SSPHE_INRAD = { "INRAD", 5, "Inside Radius",
10175  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10176  KmTYPE_REAL, &_GEANT_CREATE_SSPHE_INRAD_type };
10177 static KmParReal   _GEANT_CREATE_SSPHE_OUTRAD_type = { (char*)0, (char*)0,
10178  (char*)0, (char*)0, 0 };
10179 static KmParameter _GEANT_CREATE_SSPHE_OUTRAD = { "OUTRAD", 6,
10180  "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10181  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_OUTRAD_type };
10182 static KmParReal   _GEANT_CREATE_SSPHE_SPHI_type = { "0.", "360.", "0.",
10183  "360.", 0 };
10184 static KmParameter _GEANT_CREATE_SSPHE_SPHI = { "SPHI", 4,
10185  "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10186  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_SPHI_type };
10187 static KmParReal   _GEANT_CREATE_SSPHE_EPHI_type = { "0.", "360.", "0.",
10188  "360.", 0 };
10189 static KmParameter _GEANT_CREATE_SSPHE_EPHI = { "EPHI", 4,
10190  "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10191  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_EPHI_type };
10192 static KmParReal   _GEANT_CREATE_SSPHE_STHETA_type = { (char*)0, (char*)0,
10193  (char*)0, (char*)0, 0 };
10194 static KmParameter _GEANT_CREATE_SSPHE_STHETA = { "STHETA", 6,
10195  "Start of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10196  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_STHETA_type };
10197 static KmParReal   _GEANT_CREATE_SSPHE_ETHETA_type = { (char*)0, (char*)0,
10198  (char*)0, (char*)0, 0 };
10199 static KmParameter _GEANT_CREATE_SSPHE_ETHETA = { "ETHETA", 6,
10200  "End of section THETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10201  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SSPHE_ETHETA_type };
10202 static char *_GEANT_CREATE_SSPHE_YESNO_range[] = { "YES", "NO" };
10203 static char *_GEANT_CREATE_SSPHE_YESNO_text[] = { (char*)0, (char*)0 };
10204 static KmParOption _GEANT_CREATE_SSPHE_YESNO_type = {
10205  _GEANT_CREATE_SSPHE_YESNO_text, (int*)0, (int*)0 };
10206 static KmParameter _GEANT_CREATE_SSPHE_YESNO = { "YESNO", 5, "GSPOSP option",
10207  "NO", (char*)0, 8, 2, _GEANT_CREATE_SSPHE_YESNO_range, 2,
10208  _GEANT_CREATE_SSPHE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10209  &_GEANT_CREATE_SSPHE_YESNO_type };
10210 static KmParameter *_GEANT_CREATE_SSPHE_parameters[] = {
10211  &_GEANT_CREATE_SSPHE_NAME, &_GEANT_CREATE_SSPHE_NUMED,
10212  &_GEANT_CREATE_SSPHE_INRAD, &_GEANT_CREATE_SSPHE_OUTRAD,
10213  &_GEANT_CREATE_SSPHE_SPHI, &_GEANT_CREATE_SSPHE_EPHI,
10214  &_GEANT_CREATE_SSPHE_STHETA, &_GEANT_CREATE_SSPHE_ETHETA,
10215  &_GEANT_CREATE_SSPHE_YESNO };
10216 static KmCommand _GEANT_CREATE_SSPHE = { &_GEANT_CREATE_SPARA,
10217  "/GEANT/CREATE/SSPHE", "SSPHE", 0, 2, 9, 8, _GEANT_CREATE_SSPHE_parameters,
10218  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10219  (char**)0, (char*)0, (int*)0 };
10220  
10221 static KmParameter _GEANT_CREATE_SCONS_NAME = { "NAME", 4, "Volume name",
10222  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10223  KmTYPE_CHAR,  (void*)0 };
10224 static KmParInt    _GEANT_CREATE_SCONS_NUMED_type = { (char*)0, (char*)0,
10225  (char*)0, (char*)0, 0 };
10226 static KmParameter _GEANT_CREATE_SCONS_NUMED = { "NUMED", 5,
10227  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10228  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONS_NUMED_type };
10229 static KmParReal   _GEANT_CREATE_SCONS_INRDW_type = { (char*)0, (char*)0,
10230  (char*)0, (char*)0, 0 };
10231 static KmParameter _GEANT_CREATE_SCONS_INRDW = { "INRDW", 5,
10232  "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10233  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRDW_type };
10234 static KmParReal   _GEANT_CREATE_SCONS_OUTRDW_type = { (char*)0, (char*)0,
10235  (char*)0, (char*)0, 0 };
10236 static KmParameter _GEANT_CREATE_SCONS_OUTRDW = { "OUTRDW", 6,
10237  "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10238  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRDW_type };
10239 static KmParReal   _GEANT_CREATE_SCONS_INRUP_type = { (char*)0, (char*)0,
10240  (char*)0, (char*)0, 0 };
10241 static KmParameter _GEANT_CREATE_SCONS_INRUP = { "INRUP", 5,
10242  "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10243  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_INRUP_type };
10244 static KmParReal   _GEANT_CREATE_SCONS_OUTRUP_type = { (char*)0, (char*)0,
10245  (char*)0, (char*)0, 0 };
10246 static KmParameter _GEANT_CREATE_SCONS_OUTRUP = { "OUTRUP", 6,
10247  "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10248  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_OUTRUP_type };
10249 static KmParReal   _GEANT_CREATE_SCONS_HALFZ_type = { (char*)0, (char*)0,
10250  (char*)0, (char*)0, 0 };
10251 static KmParameter _GEANT_CREATE_SCONS_HALFZ = { "HALFZ", 5, "Half Z length",
10252  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10253  KmTYPE_REAL, &_GEANT_CREATE_SCONS_HALFZ_type };
10254 static KmParReal   _GEANT_CREATE_SCONS_SPHI_type = { "0.", "360.", "0.",
10255  "360.", 0 };
10256 static KmParameter _GEANT_CREATE_SCONS_SPHI = { "SPHI", 4,
10257  "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10258  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_SPHI_type };
10259 static KmParReal   _GEANT_CREATE_SCONS_EPHI_type = { "0.", "360.", "0.",
10260  "360.", 0 };
10261 static KmParameter _GEANT_CREATE_SCONS_EPHI = { "EPHI", 4,
10262  "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10263  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONS_EPHI_type };
10264 static char *_GEANT_CREATE_SCONS_YESNO_range[] = { "YES", "NO" };
10265 static char *_GEANT_CREATE_SCONS_YESNO_text[] = { (char*)0, (char*)0 };
10266 static KmParOption _GEANT_CREATE_SCONS_YESNO_type = {
10267  _GEANT_CREATE_SCONS_YESNO_text, (int*)0, (int*)0 };
10268 static KmParameter _GEANT_CREATE_SCONS_YESNO = { "YESNO", 5, "GSPOSP option",
10269  "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONS_YESNO_range, 2,
10270  _GEANT_CREATE_SCONS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10271  &_GEANT_CREATE_SCONS_YESNO_type };
10272 static KmParameter *_GEANT_CREATE_SCONS_parameters[] = {
10273  &_GEANT_CREATE_SCONS_NAME, &_GEANT_CREATE_SCONS_NUMED,
10274  &_GEANT_CREATE_SCONS_INRDW, &_GEANT_CREATE_SCONS_OUTRDW,
10275  &_GEANT_CREATE_SCONS_INRUP, &_GEANT_CREATE_SCONS_OUTRUP,
10276  &_GEANT_CREATE_SCONS_HALFZ, &_GEANT_CREATE_SCONS_SPHI,
10277  &_GEANT_CREATE_SCONS_EPHI, &_GEANT_CREATE_SCONS_YESNO };
10278 static KmCommand _GEANT_CREATE_SCONS = { &_GEANT_CREATE_SSPHE,
10279  "/GEANT/CREATE/SCONS", "SCONS", 0, 2, 10, 9, _GEANT_CREATE_SCONS_parameters,
10280  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10281  (char**)0, (char*)0, (int*)0 };
10282  
10283 static KmParameter _GEANT_CREATE_SCONE_NAME = { "NAME", 4, "Volume name",
10284  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10285  KmTYPE_CHAR,  (void*)0 };
10286 static KmParInt    _GEANT_CREATE_SCONE_NUMED_type = { (char*)0, (char*)0,
10287  (char*)0, (char*)0, 0 };
10288 static KmParameter _GEANT_CREATE_SCONE_NUMED = { "NUMED", 5,
10289  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10290  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SCONE_NUMED_type };
10291 static KmParReal   _GEANT_CREATE_SCONE_INRDW_type = { (char*)0, (char*)0,
10292  (char*)0, (char*)0, 0 };
10293 static KmParameter _GEANT_CREATE_SCONE_INRDW = { "INRDW", 5,
10294  "Inside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10295  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRDW_type };
10296 static KmParReal   _GEANT_CREATE_SCONE_OUTRDW_type = { (char*)0, (char*)0,
10297  (char*)0, (char*)0, 0 };
10298 static KmParameter _GEANT_CREATE_SCONE_OUTRDW = { "OUTRDW", 6,
10299  "Outside Radius in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10300  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRDW_type };
10301 static KmParReal   _GEANT_CREATE_SCONE_INRUP_type = { (char*)0, (char*)0,
10302  (char*)0, (char*)0, 0 };
10303 static KmParameter _GEANT_CREATE_SCONE_INRUP = { "INRUP", 5,
10304  "Inside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10305  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_INRUP_type };
10306 static KmParReal   _GEANT_CREATE_SCONE_OUTRUP_type = { (char*)0, (char*)0,
10307  (char*)0, (char*)0, 0 };
10308 static KmParameter _GEANT_CREATE_SCONE_OUTRUP = { "OUTRUP", 6,
10309  "Outside Radius in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10310  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_SCONE_OUTRUP_type };
10311 static KmParReal   _GEANT_CREATE_SCONE_HALFZ_type = { (char*)0, (char*)0,
10312  (char*)0, (char*)0, 0 };
10313 static KmParameter _GEANT_CREATE_SCONE_HALFZ = { "HALFZ", 5, "Half Z length",
10314  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10315  KmTYPE_REAL, &_GEANT_CREATE_SCONE_HALFZ_type };
10316 static char *_GEANT_CREATE_SCONE_YESNO_range[] = { "YES", "NO" };
10317 static char *_GEANT_CREATE_SCONE_YESNO_text[] = { (char*)0, (char*)0 };
10318 static KmParOption _GEANT_CREATE_SCONE_YESNO_type = {
10319  _GEANT_CREATE_SCONE_YESNO_text, (int*)0, (int*)0 };
10320 static KmParameter _GEANT_CREATE_SCONE_YESNO = { "YESNO", 5, "GSPOSP option",
10321  "NO", (char*)0, 8, 2, _GEANT_CREATE_SCONE_YESNO_range, 2,
10322  _GEANT_CREATE_SCONE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10323  &_GEANT_CREATE_SCONE_YESNO_type };
10324 static KmParameter *_GEANT_CREATE_SCONE_parameters[] = {
10325  &_GEANT_CREATE_SCONE_NAME, &_GEANT_CREATE_SCONE_NUMED,
10326  &_GEANT_CREATE_SCONE_INRDW, &_GEANT_CREATE_SCONE_OUTRDW,
10327  &_GEANT_CREATE_SCONE_INRUP, &_GEANT_CREATE_SCONE_OUTRUP,
10328  &_GEANT_CREATE_SCONE_HALFZ, &_GEANT_CREATE_SCONE_YESNO };
10329 static KmCommand _GEANT_CREATE_SCONE = { &_GEANT_CREATE_SCONS,
10330  "/GEANT/CREATE/SCONE", "SCONE", 0, 2, 8, 7, _GEANT_CREATE_SCONE_parameters,
10331  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10332  (char**)0, (char*)0, (int*)0 };
10333  
10334 static KmParameter _GEANT_CREATE_STUBS_NAME = { "NAME", 4, "Volume name",
10335  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10336  KmTYPE_CHAR,  (void*)0 };
10337 static KmParInt    _GEANT_CREATE_STUBS_NUMED_type = { (char*)0, (char*)0,
10338  (char*)0, (char*)0, 0 };
10339 static KmParameter _GEANT_CREATE_STUBS_NUMED = { "NUMED", 5,
10340  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10341  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBS_NUMED_type };
10342 static KmParReal   _GEANT_CREATE_STUBS_INRAD_type = { (char*)0, (char*)0,
10343  (char*)0, (char*)0, 0 };
10344 static KmParameter _GEANT_CREATE_STUBS_INRAD = { "INRAD", 5, "Inside Radius",
10345  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10346  KmTYPE_REAL, &_GEANT_CREATE_STUBS_INRAD_type };
10347 static KmParReal   _GEANT_CREATE_STUBS_OUTRAD_type = { (char*)0, (char*)0,
10348  (char*)0, (char*)0, 0 };
10349 static KmParameter _GEANT_CREATE_STUBS_OUTRAD = { "OUTRAD", 6,
10350  "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10351  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_OUTRAD_type };
10352 static KmParReal   _GEANT_CREATE_STUBS_HALFZ_type = { (char*)0, (char*)0,
10353  (char*)0, (char*)0, 0 };
10354 static KmParameter _GEANT_CREATE_STUBS_HALFZ = { "HALFZ", 5, "Half Z length",
10355  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10356  KmTYPE_REAL, &_GEANT_CREATE_STUBS_HALFZ_type };
10357 static KmParReal   _GEANT_CREATE_STUBS_SPHI_type = { "0.", "360.", "0.",
10358  "360.", 0 };
10359 static KmParameter _GEANT_CREATE_STUBS_SPHI = { "SPHI", 4,
10360  "Start of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10361  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_SPHI_type };
10362 static KmParReal   _GEANT_CREATE_STUBS_EPHI_type = { "0.", "360.", "0.",
10363  "360.", 0 };
10364 static KmParameter _GEANT_CREATE_STUBS_EPHI = { "EPHI", 4,
10365  "End of section PHI", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10366  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBS_EPHI_type };
10367 static char *_GEANT_CREATE_STUBS_YESNO_range[] = { "YES", "NO" };
10368 static char *_GEANT_CREATE_STUBS_YESNO_text[] = { (char*)0, (char*)0 };
10369 static KmParOption _GEANT_CREATE_STUBS_YESNO_type = {
10370  _GEANT_CREATE_STUBS_YESNO_text, (int*)0, (int*)0 };
10371 static KmParameter _GEANT_CREATE_STUBS_YESNO = { "YESNO", 5, "GSPOSP option",
10372  "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBS_YESNO_range, 2,
10373  _GEANT_CREATE_STUBS_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10374  &_GEANT_CREATE_STUBS_YESNO_type };
10375 static KmParameter *_GEANT_CREATE_STUBS_parameters[] = {
10376  &_GEANT_CREATE_STUBS_NAME, &_GEANT_CREATE_STUBS_NUMED,
10377  &_GEANT_CREATE_STUBS_INRAD, &_GEANT_CREATE_STUBS_OUTRAD,
10378  &_GEANT_CREATE_STUBS_HALFZ, &_GEANT_CREATE_STUBS_SPHI,
10379  &_GEANT_CREATE_STUBS_EPHI, &_GEANT_CREATE_STUBS_YESNO };
10380 static KmCommand _GEANT_CREATE_STUBS = { &_GEANT_CREATE_SCONE,
10381  "/GEANT/CREATE/STUBS", "STUBS", 0, 2, 8, 7, _GEANT_CREATE_STUBS_parameters,
10382  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10383  (char**)0, (char*)0, (int*)0 };
10384  
10385 static KmParameter _GEANT_CREATE_STUBE_NAME = { "NAME", 4, "Volume name",
10386  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10387  KmTYPE_CHAR,  (void*)0 };
10388 static KmParInt    _GEANT_CREATE_STUBE_NUMED_type = { (char*)0, (char*)0,
10389  (char*)0, (char*)0, 0 };
10390 static KmParameter _GEANT_CREATE_STUBE_NUMED = { "NUMED", 5,
10391  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10392  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STUBE_NUMED_type };
10393 static KmParReal   _GEANT_CREATE_STUBE_INRAD_type = { (char*)0, (char*)0,
10394  (char*)0, (char*)0, 0 };
10395 static KmParameter _GEANT_CREATE_STUBE_INRAD = { "INRAD", 5, "Inside Radius",
10396  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10397  KmTYPE_REAL, &_GEANT_CREATE_STUBE_INRAD_type };
10398 static KmParReal   _GEANT_CREATE_STUBE_OUTRAD_type = { (char*)0, (char*)0,
10399  (char*)0, (char*)0, 0 };
10400 static KmParameter _GEANT_CREATE_STUBE_OUTRAD = { "OUTRAD", 6,
10401  "Outside Radius", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10402  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STUBE_OUTRAD_type };
10403 static KmParReal   _GEANT_CREATE_STUBE_HALFZ_type = { (char*)0, (char*)0,
10404  (char*)0, (char*)0, 0 };
10405 static KmParameter _GEANT_CREATE_STUBE_HALFZ = { "HALFZ", 5, "Half Z length",
10406  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10407  KmTYPE_REAL, &_GEANT_CREATE_STUBE_HALFZ_type };
10408 static char *_GEANT_CREATE_STUBE_YESNO_range[] = { "YES", "NO" };
10409 static char *_GEANT_CREATE_STUBE_YESNO_text[] = { (char*)0, (char*)0 };
10410 static KmParOption _GEANT_CREATE_STUBE_YESNO_type = {
10411  _GEANT_CREATE_STUBE_YESNO_text, (int*)0, (int*)0 };
10412 static KmParameter _GEANT_CREATE_STUBE_YESNO = { "YESNO", 5, "GSPOSP option",
10413  "NO", (char*)0, 8, 2, _GEANT_CREATE_STUBE_YESNO_range, 2,
10414  _GEANT_CREATE_STUBE_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10415  &_GEANT_CREATE_STUBE_YESNO_type };
10416 static KmParameter *_GEANT_CREATE_STUBE_parameters[] = {
10417  &_GEANT_CREATE_STUBE_NAME, &_GEANT_CREATE_STUBE_NUMED,
10418  &_GEANT_CREATE_STUBE_INRAD, &_GEANT_CREATE_STUBE_OUTRAD,
10419  &_GEANT_CREATE_STUBE_HALFZ, &_GEANT_CREATE_STUBE_YESNO };
10420 static KmCommand _GEANT_CREATE_STUBE = { &_GEANT_CREATE_STUBS,
10421  "/GEANT/CREATE/STUBE", "STUBE", 0, 2, 6, 5, _GEANT_CREATE_STUBE_parameters,
10422  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10423  (char**)0, (char*)0, (int*)0 };
10424  
10425 static KmParameter _GEANT_CREATE_STRD2_NAME = { "NAME", 4, "Volume name",
10426  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10427  KmTYPE_CHAR,  (void*)0 };
10428 static KmParInt    _GEANT_CREATE_STRD2_NUMED_type = { (char*)0, (char*)0,
10429  (char*)0, (char*)0, 0 };
10430 static KmParameter _GEANT_CREATE_STRD2_NUMED = { "NUMED", 5,
10431  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10432  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD2_NUMED_type };
10433 static KmParReal   _GEANT_CREATE_STRD2_HLFDWX_type = { (char*)0, (char*)0,
10434  (char*)0, (char*)0, 0 };
10435 static KmParameter _GEANT_CREATE_STRD2_HLFDWX = { "HLFDWX", 6,
10436  "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10437  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWX_type };
10438 static KmParReal   _GEANT_CREATE_STRD2_HLFUPX_type = { (char*)0, (char*)0,
10439  (char*)0, (char*)0, 0 };
10440 static KmParameter _GEANT_CREATE_STRD2_HLFUPX = { "HLFUPX", 6,
10441  "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10442  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPX_type };
10443 static KmParReal   _GEANT_CREATE_STRD2_HLFDWY_type = { (char*)0, (char*)0,
10444  (char*)0, (char*)0, 0 };
10445 static KmParameter _GEANT_CREATE_STRD2_HLFDWY = { "HLFDWY", 6,
10446  "Half Y length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10447  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFDWY_type };
10448 static KmParReal   _GEANT_CREATE_STRD2_HLFUPY_type = { (char*)0, (char*)0,
10449  (char*)0, (char*)0, 0 };
10450 static KmParameter _GEANT_CREATE_STRD2_HLFUPY = { "HLFUPY", 6,
10451  "Half Y length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10452  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD2_HLFUPY_type };
10453 static KmParReal   _GEANT_CREATE_STRD2_HALFZ_type = { (char*)0, (char*)0,
10454  (char*)0, (char*)0, 0 };
10455 static KmParameter _GEANT_CREATE_STRD2_HALFZ = { "HALFZ", 5, "Half Z length",
10456  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10457  KmTYPE_REAL, &_GEANT_CREATE_STRD2_HALFZ_type };
10458 static char *_GEANT_CREATE_STRD2_YESNO_range[] = { "YES", "NO" };
10459 static char *_GEANT_CREATE_STRD2_YESNO_text[] = { (char*)0, (char*)0 };
10460 static KmParOption _GEANT_CREATE_STRD2_YESNO_type = {
10461  _GEANT_CREATE_STRD2_YESNO_text, (int*)0, (int*)0 };
10462 static KmParameter _GEANT_CREATE_STRD2_YESNO = { "YESNO", 5, "GSPOSP option",
10463  "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD2_YESNO_range, 2,
10464  _GEANT_CREATE_STRD2_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10465  &_GEANT_CREATE_STRD2_YESNO_type };
10466 static KmParameter *_GEANT_CREATE_STRD2_parameters[] = {
10467  &_GEANT_CREATE_STRD2_NAME, &_GEANT_CREATE_STRD2_NUMED,
10468  &_GEANT_CREATE_STRD2_HLFDWX, &_GEANT_CREATE_STRD2_HLFUPX,
10469  &_GEANT_CREATE_STRD2_HLFDWY, &_GEANT_CREATE_STRD2_HLFUPY,
10470  &_GEANT_CREATE_STRD2_HALFZ, &_GEANT_CREATE_STRD2_YESNO };
10471 static KmCommand _GEANT_CREATE_STRD2 = { &_GEANT_CREATE_STUBE,
10472  "/GEANT/CREATE/STRD2", "STRD2", 0, 2, 8, 7, _GEANT_CREATE_STRD2_parameters,
10473  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10474  (char**)0, (char*)0, (int*)0 };
10475  
10476 static KmParameter _GEANT_CREATE_STRD1_NAME = { "NAME", 4, "Volume name",
10477  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10478  KmTYPE_CHAR,  (void*)0 };
10479 static KmParInt    _GEANT_CREATE_STRD1_NUMED_type = { (char*)0, (char*)0,
10480  (char*)0, (char*)0, 0 };
10481 static KmParameter _GEANT_CREATE_STRD1_NUMED = { "NUMED", 5,
10482  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10483  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_STRD1_NUMED_type };
10484 static KmParReal   _GEANT_CREATE_STRD1_HLFDWX_type = { (char*)0, (char*)0,
10485  (char*)0, (char*)0, 0 };
10486 static KmParameter _GEANT_CREATE_STRD1_HLFDWX = { "HLFDWX", 6,
10487  "Half X length in Lower Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10488  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFDWX_type };
10489 static KmParReal   _GEANT_CREATE_STRD1_HLFUPX_type = { (char*)0, (char*)0,
10490  (char*)0, (char*)0, 0 };
10491 static KmParameter _GEANT_CREATE_STRD1_HLFUPX = { "HLFUPX", 6,
10492  "Half X length in Upper Z Surface", (char*)0, (char*)0, 12, 0, (char**)0, 0,
10493  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CREATE_STRD1_HLFUPX_type };
10494 static KmParReal   _GEANT_CREATE_STRD1_HALFY_type = { (char*)0, (char*)0,
10495  (char*)0, (char*)0, 0 };
10496 static KmParameter _GEANT_CREATE_STRD1_HALFY = { "HALFY", 5, "Half Y length",
10497  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10498  KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFY_type };
10499 static KmParReal   _GEANT_CREATE_STRD1_HALFZ_type = { (char*)0, (char*)0,
10500  (char*)0, (char*)0, 0 };
10501 static KmParameter _GEANT_CREATE_STRD1_HALFZ = { "HALFZ", 5, "Half Z length",
10502  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10503  KmTYPE_REAL, &_GEANT_CREATE_STRD1_HALFZ_type };
10504 static char *_GEANT_CREATE_STRD1_YESNO_range[] = { "YES", "NO" };
10505 static char *_GEANT_CREATE_STRD1_YESNO_text[] = { (char*)0, (char*)0 };
10506 static KmParOption _GEANT_CREATE_STRD1_YESNO_type = {
10507  _GEANT_CREATE_STRD1_YESNO_text, (int*)0, (int*)0 };
10508 static KmParameter _GEANT_CREATE_STRD1_YESNO = { "YESNO", 5, "GSPOSP option",
10509  "NO", (char*)0, 8, 2, _GEANT_CREATE_STRD1_YESNO_range, 2,
10510  _GEANT_CREATE_STRD1_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10511  &_GEANT_CREATE_STRD1_YESNO_type };
10512 static KmParameter *_GEANT_CREATE_STRD1_parameters[] = {
10513  &_GEANT_CREATE_STRD1_NAME, &_GEANT_CREATE_STRD1_NUMED,
10514  &_GEANT_CREATE_STRD1_HLFDWX, &_GEANT_CREATE_STRD1_HLFUPX,
10515  &_GEANT_CREATE_STRD1_HALFY, &_GEANT_CREATE_STRD1_HALFZ,
10516  &_GEANT_CREATE_STRD1_YESNO };
10517 static KmCommand _GEANT_CREATE_STRD1 = { &_GEANT_CREATE_STRD2,
10518  "/GEANT/CREATE/STRD1", "STRD1", 0, 2, 7, 6, _GEANT_CREATE_STRD1_parameters,
10519  0, 0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10520  (char**)0, (char*)0, (int*)0 };
10521  
10522 static KmParameter _GEANT_CREATE_SBOX_NAME = { "NAME", 4, "Volume name",
10523  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10524  KmTYPE_CHAR,  (void*)0 };
10525 static KmParInt    _GEANT_CREATE_SBOX_NUMED_type = { (char*)0, (char*)0,
10526  (char*)0, (char*)0, 0 };
10527 static KmParameter _GEANT_CREATE_SBOX_NUMED = { "NUMED", 5,
10528  "Tracking medium number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10529  (KmParFlag)0, KmTYPE_INT, &_GEANT_CREATE_SBOX_NUMED_type };
10530 static KmParReal   _GEANT_CREATE_SBOX_HALFX_type = { (char*)0, (char*)0,
10531  (char*)0, (char*)0, 0 };
10532 static KmParameter _GEANT_CREATE_SBOX_HALFX = { "HALFX", 5, "Half X length",
10533  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10534  KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFX_type };
10535 static KmParReal   _GEANT_CREATE_SBOX_HALFY_type = { (char*)0, (char*)0,
10536  (char*)0, (char*)0, 0 };
10537 static KmParameter _GEANT_CREATE_SBOX_HALFY = { "HALFY", 5, "Half Y length",
10538  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10539  KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFY_type };
10540 static KmParReal   _GEANT_CREATE_SBOX_HALFZ_type = { (char*)0, (char*)0,
10541  (char*)0, (char*)0, 0 };
10542 static KmParameter _GEANT_CREATE_SBOX_HALFZ = { "HALFZ", 5, "Half Z length",
10543  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10544  KmTYPE_REAL, &_GEANT_CREATE_SBOX_HALFZ_type };
10545 static char *_GEANT_CREATE_SBOX_YESNO_range[] = { "YES", "NO" };
10546 static char *_GEANT_CREATE_SBOX_YESNO_text[] = { (char*)0, (char*)0 };
10547 static KmParOption _GEANT_CREATE_SBOX_YESNO_type = {
10548  _GEANT_CREATE_SBOX_YESNO_text, (int*)0, (int*)0 };
10549 static KmParameter _GEANT_CREATE_SBOX_YESNO = { "YESNO", 5, "GSPOSP option",
10550  "NO", (char*)0, 8, 2, _GEANT_CREATE_SBOX_YESNO_range, 2,
10551  _GEANT_CREATE_SBOX_YESNO_range, (KmParFlag)0, KmTYPE_OPTION,
10552  &_GEANT_CREATE_SBOX_YESNO_type };
10553 static KmParameter *_GEANT_CREATE_SBOX_parameters[] = {
10554  &_GEANT_CREATE_SBOX_NAME, &_GEANT_CREATE_SBOX_NUMED,
10555  &_GEANT_CREATE_SBOX_HALFX, &_GEANT_CREATE_SBOX_HALFY,
10556  &_GEANT_CREATE_SBOX_HALFZ, &_GEANT_CREATE_SBOX_YESNO };
10557 static KmCommand _GEANT_CREATE_SBOX = { &_GEANT_CREATE_STRD1,
10558  "/GEANT/CREATE/SBOX", "SBOX", 0, 2, 6, 5, _GEANT_CREATE_SBOX_parameters, 0,
10559  0, gxgeom_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 0, (char**)0, 0,
10560  (char**)0, (char*)0, (int*)0 };
10561  
10562 static char *_GEANT_CREATE_guidance[] = {
10563  "It creates volumes of the given shape interactively.",
10564  "CALL GSVOLU(name,shape,numed,par,npar,ivolu)", "where par is a KUIP vector"
10565  };
10566 static KmMenu _GEANT_CREATE = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/CREATE",
10567  "CREATE", 2, &_GEANT_CREATE_SBOX, 3, _GEANT_CREATE_guidance };
10568  
10569 static char *_GEANT_GEOMETRY_guidance[] = { "Geometry commands." };
10570 static KmMenu _GEANT_GEOMETRY = { &_GEANT_CREATE,  (KmMenu*)0,
10571  "/GEANT/GEOMETRY", "GEOMETRY", 2, &_GEANT_GEOMETRY_OPTI, 1,
10572  _GEANT_GEOMETRY_guidance };
10573  
10574 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_GEOMETRY, "/GEANT", "GEANT", 1,
10575  (KmCommand*)0, 0, (char**)0 };
10576  
10577   klnkmenu( &_GEANT, 921023 );
10578 }
10579  
10580  
10581 #ifdef F77_LCASE
10582 #  define gkcont_ gkcont
10583 #  define gxcont_ gxcont
10584 #endif
10585  
10586 #ifdef F77_UCASE
10587 #  define gkcont_ GKCONT
10588 #  define gxcont_ GXCONT
10589 #endif
10590  
10591 #ifdef IBM370
10592 #  pragma linkage(GKCONT,FORTRAN)
10593 #  pragma linkage(GXCONT,FORTRAN)
10594 #endif
10595  
10596 extern void gkcont_();
10597 extern void gxcont_();
10598  
10599 void gkcont_()
10600 {
10601  
10602 static char *_GEANT_CONTROL_DEBUG_IDEB_range[] = { "ON", "OFF" };
10603 static char *_GEANT_CONTROL_DEBUG_IDEB_text[] = { (char*)0, (char*)0 };
10604 static KmParOption _GEANT_CONTROL_DEBUG_IDEB_type = {
10605  _GEANT_CONTROL_DEBUG_IDEB_text, (int*)0, (int*)0 };
10606 static KmParameter _GEANT_CONTROL_DEBUG_IDEB = { "IDEB", 4, "Debug option",
10607  "ON", (char*)0, 8, 2, _GEANT_CONTROL_DEBUG_IDEB_range, 2,
10608  _GEANT_CONTROL_DEBUG_IDEB_range, (KmParFlag)0, KmTYPE_OPTION,
10609  &_GEANT_CONTROL_DEBUG_IDEB_type };
10610 static KmParameter *_GEANT_CONTROL_DEBUG_parameters[] = {
10611  &_GEANT_CONTROL_DEBUG_IDEB };
10612 static char *_GEANT_CONTROL_DEBUG_guidance[] = { "If ideb='ON  ' then :",
10613  " idebug=1, idemin=1, idemax=1000000, itime=1", "else :",
10614  " idebug=0, idemin=0, idemax=0" };
10615 static KmCommand _GEANT_CONTROL_DEBUG = {  (KmCommand*)0,
10616  "/GEANT/CONTROL/DEBUG", "DEBUG", 0, 2, 1, 0, _GEANT_CONTROL_DEBUG_parameters,
10617  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
10618  _GEANT_CONTROL_DEBUG_guidance, 0, (char**)0, (char*)0, (int*)0 };
10619  
10620 static KmParInt    _GEANT_CONTROL_PRKINE_NUMB_type = { (char*)0, (char*)0,
10621  (char*)0, (char*)0, 0 };
10622 static KmParameter _GEANT_CONTROL_PRKINE_NUMB = { "NUMB", 4, "Track number",
10623  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10624  &_GEANT_CONTROL_PRKINE_NUMB_type };
10625 static KmParameter *_GEANT_CONTROL_PRKINE_parameters[] = {
10626  &_GEANT_CONTROL_PRKINE_NUMB };
10627 static char *_GEANT_CONTROL_PRKINE_guidance[] = { "CALL GPKINE(numb)" };
10628 static KmCommand _GEANT_CONTROL_PRKINE = { &_GEANT_CONTROL_DEBUG,
10629  "/GEANT/CONTROL/PRKINE", "PRKINE", 0, 2, 1, 1,
10630  _GEANT_CONTROL_PRKINE_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
10631  (pCharFunc*)0, 1, _GEANT_CONTROL_PRKINE_guidance, 0, (char**)0, (char*)0,
10632  (int*)0 };
10633  
10634 static KmParInt    _GEANT_CONTROL_PPART_NUMB_type = { (char*)0, (char*)0,
10635  (char*)0, (char*)0, 0 };
10636 static KmParameter _GEANT_CONTROL_PPART_NUMB = { "NUMB", 4, "Particle number",
10637  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10638  &_GEANT_CONTROL_PPART_NUMB_type };
10639 static KmParameter *_GEANT_CONTROL_PPART_parameters[] = {
10640  &_GEANT_CONTROL_PPART_NUMB };
10641 static char *_GEANT_CONTROL_PPART_guidance[] = { "CALL GPPART(numb)" };
10642 static KmCommand _GEANT_CONTROL_PPART = { &_GEANT_CONTROL_PRKINE,
10643  "/GEANT/CONTROL/PPART", "PPART", 0, 2, 1, 1, _GEANT_CONTROL_PPART_parameters,
10644  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10645  _GEANT_CONTROL_PPART_guidance, 0, (char**)0, (char*)0, (int*)0 };
10646  
10647 static KmParInt    _GEANT_CONTROL_SPART_IPART_type = { (char*)0, (char*)0,
10648  (char*)0, (char*)0, 0 };
10649 static KmParameter _GEANT_CONTROL_SPART_IPART = { "IPART", 5,
10650  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10651  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SPART_IPART_type };
10652 static KmParameter _GEANT_CONTROL_SPART_NAPART = { "NAPART", 6,
10653  "Particle name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10654  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10655 static KmParInt    _GEANT_CONTROL_SPART_ITRTYP_type = { (char*)0, (char*)0,
10656  (char*)0, (char*)0, 0 };
10657 static KmParameter _GEANT_CONTROL_SPART_ITRTYP = { "ITRTYP", 6, " ", (char*)0,
10658  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10659  &_GEANT_CONTROL_SPART_ITRTYP_type };
10660 static KmParReal   _GEANT_CONTROL_SPART_AMASS_type = { (char*)0, (char*)0,
10661  (char*)0, (char*)0, 0 };
10662 static KmParameter _GEANT_CONTROL_SPART_AMASS = { "AMASS", 5, "Mass",
10663  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10664  KmTYPE_REAL, &_GEANT_CONTROL_SPART_AMASS_type };
10665 static KmParReal   _GEANT_CONTROL_SPART_CHARGE_type = { (char*)0, (char*)0,
10666  (char*)0, (char*)0, 0 };
10667 static KmParameter _GEANT_CONTROL_SPART_CHARGE = { "CHARGE", 6, "Charge",
10668  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10669  KmTYPE_REAL, &_GEANT_CONTROL_SPART_CHARGE_type };
10670 static KmParReal   _GEANT_CONTROL_SPART_TLIFE_type = { (char*)0, (char*)0,
10671  (char*)0, (char*)0, 0 };
10672 static KmParameter _GEANT_CONTROL_SPART_TLIFE = { "TLIFE", 5, "Lifetime",
10673  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10674  KmTYPE_REAL, &_GEANT_CONTROL_SPART_TLIFE_type };
10675 static KmParReal   _GEANT_CONTROL_SPART_UBUF_type = { (char*)0, (char*)0,
10676  (char*)0, (char*)0, 0 };
10677 static KmParameter _GEANT_CONTROL_SPART_UBUF = { "UBUF", 4, " ", (char*)0,
10678  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10679  &_GEANT_CONTROL_SPART_UBUF_type };
10680 static KmParInt    _GEANT_CONTROL_SPART_NWBUF_type = { (char*)0, (char*)0,
10681  (char*)0, (char*)0, 0 };
10682 static KmParameter _GEANT_CONTROL_SPART_NWBUF = { "NWBUF", 5, " ", (char*)0,
10683  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10684  &_GEANT_CONTROL_SPART_NWBUF_type };
10685 static KmParReal   _GEANT_CONTROL_SPART_BRATIO_type = { (char*)0, (char*)0,
10686  (char*)0, (char*)0, 0 };
10687 static KmParameter _GEANT_CONTROL_SPART_BRATIO = { "BRATIO", 6,
10688  "Branching ratios", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10689  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SPART_BRATIO_type };
10690 static KmParInt    _GEANT_CONTROL_SPART_MODE_type = { (char*)0, (char*)0,
10691  (char*)0, (char*)0, 0 };
10692 static KmParameter _GEANT_CONTROL_SPART_MODE = { "MODE", 4, "Decay mode",
10693  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10694  &_GEANT_CONTROL_SPART_MODE_type };
10695 static KmParameter *_GEANT_CONTROL_SPART_parameters[] = {
10696  &_GEANT_CONTROL_SPART_IPART, &_GEANT_CONTROL_SPART_NAPART,
10697  &_GEANT_CONTROL_SPART_ITRTYP, &_GEANT_CONTROL_SPART_AMASS,
10698  &_GEANT_CONTROL_SPART_CHARGE, &_GEANT_CONTROL_SPART_TLIFE,
10699  &_GEANT_CONTROL_SPART_UBUF, &_GEANT_CONTROL_SPART_NWBUF,
10700  &_GEANT_CONTROL_SPART_BRATIO, &_GEANT_CONTROL_SPART_MODE };
10701 static char *_GEANT_CONTROL_SPART_guidance[] = {
10702  "CALL GSPART(ipart,napart,itrtyp,amass,charge,tlife,ubuf,nwbuf);",
10703  "CALL GSDK(ipart,bratio,mode)" };
10704 static KmCommand _GEANT_CONTROL_SPART = { &_GEANT_CONTROL_PPART,
10705  "/GEANT/CONTROL/SPART", "SPART", 0, 2, 10, 10,
10706  _GEANT_CONTROL_SPART_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
10707  (pCharFunc*)0, 2, _GEANT_CONTROL_SPART_guidance, 0, (char**)0, (char*)0,
10708  (int*)0 };
10709  
10710 static KmParInt    _GEANT_CONTROL_STPAR_ITMED_type = { (char*)0, (char*)0,
10711  (char*)0, (char*)0, 0 };
10712 static KmParameter _GEANT_CONTROL_STPAR_ITMED = { "ITMED", 5, "Medium number",
10713  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10714  &_GEANT_CONTROL_STPAR_ITMED_type };
10715 static KmParameter _GEANT_CONTROL_STPAR_CHPAR = { "CHPAR", 5,
10716  "Cut or mechanism", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10717  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10718 static KmParReal   _GEANT_CONTROL_STPAR_PARVAL_type = { (char*)0, (char*)0,
10719  (char*)0, (char*)0, 0 };
10720 static KmParameter _GEANT_CONTROL_STPAR_PARVAL = { "PARVAL", 6, "Value",
10721  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10722  KmTYPE_REAL, &_GEANT_CONTROL_STPAR_PARVAL_type };
10723 static KmParameter *_GEANT_CONTROL_STPAR_parameters[] = {
10724  &_GEANT_CONTROL_STPAR_ITMED, &_GEANT_CONTROL_STPAR_CHPAR,
10725  &_GEANT_CONTROL_STPAR_PARVAL };
10726 static char *_GEANT_CONTROL_STPAR_guidance[] = {
10727  "CALL GSTPAR(itmed,chpar,parval)" };
10728 static KmCommand _GEANT_CONTROL_STPAR = { &_GEANT_CONTROL_SPART,
10729  "/GEANT/CONTROL/STPAR", "STPAR", 0, 2, 3, 3, _GEANT_CONTROL_STPAR_parameters,
10730  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10731  _GEANT_CONTROL_STPAR_guidance, 0, (char**)0, (char*)0, (int*)0 };
10732  
10733 static KmParInt    _GEANT_CONTROL_DRMAT_IMATE_type = { (char*)0, (char*)0,
10734  (char*)0, (char*)0, 0 };
10735 static KmParameter _GEANT_CONTROL_DRMAT_IMATE = { "IMATE", 5,
10736  "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10737  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IMATE_type };
10738 static KmParInt    _GEANT_CONTROL_DRMAT_IPART_type = { (char*)0, (char*)0,
10739  (char*)0, (char*)0, 0 };
10740 static KmParameter _GEANT_CONTROL_DRMAT_IPART = { "IPART", 5,
10741  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10742  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_DRMAT_IPART_type };
10743 static KmParameter _GEANT_CONTROL_DRMAT_MECAN = { "MECAN", 5,
10744  "List of mechanism", "ALL", (char*)0, 20, 0, (char**)0, 0, (char**)0,
10745  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10746 static KmParameter *_GEANT_CONTROL_DRMAT_parameters[] = {
10747  &_GEANT_CONTROL_DRMAT_IMATE, &_GEANT_CONTROL_DRMAT_IPART,
10748  &_GEANT_CONTROL_DRMAT_MECAN };
10749 static char *_GEANT_CONTROL_DRMAT_guidance[] = {
10750  "CALL GDRMAT(imate,ipart,mecan,nmec)",
10751  "If MECAN = 'ALL' all the mechanisms are plotted. If the material number",
10752  "is negative, the cross sections relative to material ABS(IMATE) will",
10753  "be plotted in barns rather than in 1/cm.",
10754  "Note that it is not possible to plot anything if GSTMED has not been\
10755  called", "for the material number IMATE." };
10756 static KmCommand _GEANT_CONTROL_DRMAT = { &_GEANT_CONTROL_STPAR,
10757  "/GEANT/CONTROL/DRMAT", "DRMAT", 0, 2, 3, 2, _GEANT_CONTROL_DRMAT_parameters,
10758  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
10759  _GEANT_CONTROL_DRMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10760  
10761 static KmParInt    _GEANT_CONTROL_PLMAT_IMATE_type = { (char*)0, (char*)0,
10762  (char*)0, (char*)0, 0 };
10763 static KmParameter _GEANT_CONTROL_PLMAT_IMATE = { "IMATE", 5,
10764  "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10765  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IMATE_type };
10766 static KmParInt    _GEANT_CONTROL_PLMAT_IPART_type = { (char*)0, (char*)0,
10767  (char*)0, (char*)0, 0 };
10768 static KmParameter _GEANT_CONTROL_PLMAT_IPART = { "IPART", 5,
10769  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10770  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PLMAT_IPART_type };
10771 static KmParameter _GEANT_CONTROL_PLMAT_MECAN = { "MECAN", 5, "Mechanism",
10772  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10773  KmTYPE_CHAR,  (void*)0 };
10774 static KmParInt    _GEANT_CONTROL_PLMAT_IDM_type = { (char*)0, (char*)0,
10775  (char*)0, (char*)0, 0 };
10776 static KmParameter _GEANT_CONTROL_PLMAT_IDM = { "IDM", 3, "ID mode option",
10777  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10778  &_GEANT_CONTROL_PLMAT_IDM_type };
10779 static KmParameter *_GEANT_CONTROL_PLMAT_parameters[] = {
10780  &_GEANT_CONTROL_PLMAT_IMATE, &_GEANT_CONTROL_PLMAT_IPART,
10781  &_GEANT_CONTROL_PLMAT_MECAN, &_GEANT_CONTROL_PLMAT_IDM };
10782 static char *_GEANT_CONTROL_PLMAT_guidance[] = {
10783  "CALL GPLMAT(imate,ipart,mecan,nekbin,elow,idm)",
10784  " IDM convention for histogramming mode :",
10785  " IDM.gt.0  fill, print,   keep   histogram(s)",
10786  " IDM.eq.0  fill, print,   delete histogram(s)",
10787  " IDM.lt.0  fill, noprint, keep   histogram(s)",
10788  "If MECAN = 'ALL' all the mechanisms are histogrammed. If the material\
10789  number",
10790  "is negative, the cross sections relative to material ABS(IMATE) will",
10791  "be histogrammed in barns rather than in 1/cm." };
10792 static KmCommand _GEANT_CONTROL_PLMAT = { &_GEANT_CONTROL_DRMAT,
10793  "/GEANT/CONTROL/PLMAT", "PLMAT", 0, 2, 4, 3, _GEANT_CONTROL_PLMAT_parameters,
10794  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
10795  _GEANT_CONTROL_PLMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10796  
10797 static KmParInt    _GEANT_CONTROL_PRMAT_IMATE_type = { (char*)0, (char*)0,
10798  (char*)0, (char*)0, 0 };
10799 static KmParameter _GEANT_CONTROL_PRMAT_IMATE = { "IMATE", 5,
10800  "Material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10801  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IMATE_type };
10802 static KmParInt    _GEANT_CONTROL_PRMAT_IPART_type = { (char*)0, (char*)0,
10803  (char*)0, (char*)0, 0 };
10804 static KmParameter _GEANT_CONTROL_PRMAT_IPART = { "IPART", 5,
10805  "Particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10806  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_PRMAT_IPART_type };
10807 static KmParameter _GEANT_CONTROL_PRMAT_MECAN = { "MECAN", 5, "Mechanism",
10808  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10809  KmTYPE_CHAR,  (void*)0 };
10810 static KmParameter *_GEANT_CONTROL_PRMAT_parameters[] = {
10811  &_GEANT_CONTROL_PRMAT_IMATE, &_GEANT_CONTROL_PRMAT_IPART,
10812  &_GEANT_CONTROL_PRMAT_MECAN };
10813 static char *_GEANT_CONTROL_PRMAT_guidance[] = {
10814  " CALL GPRMAT(imate,ipart,mecan,nekbin,elow)" };
10815 static KmCommand _GEANT_CONTROL_PRMAT = { &_GEANT_CONTROL_PLMAT,
10816  "/GEANT/CONTROL/PRMAT", "PRMAT", 0, 2, 3, 3, _GEANT_CONTROL_PRMAT_parameters,
10817  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10818  _GEANT_CONTROL_PRMAT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10819  
10820 static KmParInt    _GEANT_CONTROL_PMATE_NUMB_type = { (char*)0, (char*)0,
10821  (char*)0, (char*)0, 0 };
10822 static KmParameter _GEANT_CONTROL_PMATE_NUMB = { "NUMB", 4, "Material number",
10823  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10824  &_GEANT_CONTROL_PMATE_NUMB_type };
10825 static KmParameter *_GEANT_CONTROL_PMATE_parameters[] = {
10826  &_GEANT_CONTROL_PMATE_NUMB };
10827 static char *_GEANT_CONTROL_PMATE_guidance[] = { " CALL GPMATE(numb)" };
10828 static KmCommand _GEANT_CONTROL_PMATE = { &_GEANT_CONTROL_PRMAT,
10829  "/GEANT/CONTROL/PMATE", "PMATE", 0, 2, 1, 1, _GEANT_CONTROL_PMATE_parameters,
10830  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10831  _GEANT_CONTROL_PMATE_guidance, 0, (char**)0, (char*)0, (int*)0 };
10832  
10833 static KmParInt    _GEANT_CONTROL_SMIXT_IMAT_type = { (char*)0, (char*)0,
10834  (char*)0, (char*)0, 0 };
10835 static KmParameter _GEANT_CONTROL_SMIXT_IMAT = { "IMAT", 4, "Material number",
10836  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10837  &_GEANT_CONTROL_SMIXT_IMAT_type };
10838 static KmParameter _GEANT_CONTROL_SMIXT_NAMATE = { "NAMATE", 6,
10839  "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10840  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10841 static KmParReal   _GEANT_CONTROL_SMIXT_A_type = { (char*)0, (char*)0,
10842  (char*)0, (char*)0, 0 };
10843 static KmParameter _GEANT_CONTROL_SMIXT_A = { "A", 1, "Atomic weight",
10844  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10845  KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_A_type };
10846 static KmParReal   _GEANT_CONTROL_SMIXT_Z_type = { (char*)0, (char*)0,
10847  (char*)0, (char*)0, 0 };
10848 static KmParameter _GEANT_CONTROL_SMIXT_Z = { "Z", 1, "Atomic number",
10849  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10850  KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_Z_type };
10851 static KmParReal   _GEANT_CONTROL_SMIXT_DENS_type = { (char*)0, (char*)0,
10852  (char*)0, (char*)0, 0 };
10853 static KmParameter _GEANT_CONTROL_SMIXT_DENS = { "DENS", 4, "Density",
10854  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10855  KmTYPE_REAL, &_GEANT_CONTROL_SMIXT_DENS_type };
10856 static KmParInt    _GEANT_CONTROL_SMIXT_NLMAT_type = { (char*)0, (char*)0,
10857  (char*)0, (char*)0, 0 };
10858 static KmParameter _GEANT_CONTROL_SMIXT_NLMAT = { "NLMAT", 5, "Flag for WMAT",
10859  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10860  &_GEANT_CONTROL_SMIXT_NLMAT_type };
10861 static KmParReal   _GEANT_CONTROL_SMIXT_WMAT_type = { (char*)0, (char*)0,
10862  (char*)0, (char*)0, 0 };
10863 static KmParameter _GEANT_CONTROL_SMIXT_WMAT = { "WMAT", 4,
10864  "Relative weights or n. of atoms in molecule", (char*)0, (char*)0, 12, 0,
10865  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10866  &_GEANT_CONTROL_SMIXT_WMAT_type };
10867 static KmParameter *_GEANT_CONTROL_SMIXT_parameters[] = {
10868  &_GEANT_CONTROL_SMIXT_IMAT, &_GEANT_CONTROL_SMIXT_NAMATE,
10869  &_GEANT_CONTROL_SMIXT_A, &_GEANT_CONTROL_SMIXT_Z, &_GEANT_CONTROL_SMIXT_DENS,
10870  &_GEANT_CONTROL_SMIXT_NLMAT, &_GEANT_CONTROL_SMIXT_WMAT };
10871 static char *_GEANT_CONTROL_SMIXT_guidance[] = {
10872  " CALL GSMIXT(imat,namate,a,z,dens,nlmat,wmat)" };
10873 static KmCommand _GEANT_CONTROL_SMIXT = { &_GEANT_CONTROL_PMATE,
10874  "/GEANT/CONTROL/SMIXT", "SMIXT", 0, 2, 7, 7, _GEANT_CONTROL_SMIXT_parameters,
10875  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10876  _GEANT_CONTROL_SMIXT_guidance, 0, (char**)0, (char*)0, (int*)0 };
10877  
10878 static KmParInt    _GEANT_CONTROL_SMATE_IMAT_type = { (char*)0, (char*)0,
10879  (char*)0, (char*)0, 0 };
10880 static KmParameter _GEANT_CONTROL_SMATE_IMAT = { "IMAT", 4, "Material number",
10881  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10882  &_GEANT_CONTROL_SMATE_IMAT_type };
10883 static KmParameter _GEANT_CONTROL_SMATE_NAMATE = { "NAMATE", 6,
10884  "Material name", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
10885  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
10886 static KmParReal   _GEANT_CONTROL_SMATE_A_type = { (char*)0, (char*)0,
10887  (char*)0, (char*)0, 0 };
10888 static KmParameter _GEANT_CONTROL_SMATE_A = { "A", 1, "Atomic weight",
10889  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10890  KmTYPE_REAL, &_GEANT_CONTROL_SMATE_A_type };
10891 static KmParReal   _GEANT_CONTROL_SMATE_Z_type = { (char*)0, (char*)0,
10892  (char*)0, (char*)0, 0 };
10893 static KmParameter _GEANT_CONTROL_SMATE_Z = { "Z", 1, "Atomic number",
10894  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10895  KmTYPE_REAL, &_GEANT_CONTROL_SMATE_Z_type };
10896 static KmParReal   _GEANT_CONTROL_SMATE_DENS_type = { (char*)0, (char*)0,
10897  (char*)0, (char*)0, 0 };
10898 static KmParameter _GEANT_CONTROL_SMATE_DENS = { "DENS", 4, "Density",
10899  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10900  KmTYPE_REAL, &_GEANT_CONTROL_SMATE_DENS_type };
10901 static KmParReal   _GEANT_CONTROL_SMATE_RADL_type = { (char*)0, (char*)0,
10902  (char*)0, (char*)0, 0 };
10903 static KmParameter _GEANT_CONTROL_SMATE_RADL = { "RADL", 4,
10904  "Radiation lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10905  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_RADL_type };
10906 static KmParReal   _GEANT_CONTROL_SMATE_ABSL_type = { (char*)0, (char*)0,
10907  (char*)0, (char*)0, 0 };
10908 static KmParameter _GEANT_CONTROL_SMATE_ABSL = { "ABSL", 4,
10909  "Absorption lenght", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
10910  (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_SMATE_ABSL_type };
10911 static KmParReal   _GEANT_CONTROL_SMATE_UBUF_type = { (char*)0, (char*)0,
10912  (char*)0, (char*)0, 0 };
10913 static KmParameter _GEANT_CONTROL_SMATE_UBUF = { "UBUF", 4, " ", (char*)0,
10914  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
10915  &_GEANT_CONTROL_SMATE_UBUF_type };
10916 static KmParInt    _GEANT_CONTROL_SMATE_NWBUF_type = { (char*)0, (char*)0,
10917  (char*)0, (char*)0, 0 };
10918 static KmParameter _GEANT_CONTROL_SMATE_NWBUF = { "NWBUF", 5, " ", (char*)0,
10919  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10920  &_GEANT_CONTROL_SMATE_NWBUF_type };
10921 static KmParameter *_GEANT_CONTROL_SMATE_parameters[] = {
10922  &_GEANT_CONTROL_SMATE_IMAT, &_GEANT_CONTROL_SMATE_NAMATE,
10923  &_GEANT_CONTROL_SMATE_A, &_GEANT_CONTROL_SMATE_Z, &_GEANT_CONTROL_SMATE_DENS,
10924  &_GEANT_CONTROL_SMATE_RADL, &_GEANT_CONTROL_SMATE_ABSL,
10925  &_GEANT_CONTROL_SMATE_UBUF, &_GEANT_CONTROL_SMATE_NWBUF };
10926 static char *_GEANT_CONTROL_SMATE_guidance[] = {
10927  " CALL GSMATE(imat,namate,a,z,dens,radl,absl,ubuf,nwbuf)" };
10928 static KmCommand _GEANT_CONTROL_SMATE = { &_GEANT_CONTROL_SMIXT,
10929  "/GEANT/CONTROL/SMATE", "SMATE", 0, 2, 9, 9, _GEANT_CONTROL_SMATE_parameters,
10930  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10931  _GEANT_CONTROL_SMATE_guidance, 0, (char**)0, (char*)0, (int*)0 };
10932  
10933 static KmParameter _GEANT_CONTROL_PDIGI_CHUSET = { "CHUSET", 6, "User set",
10934  "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10935  (void*)0 };
10936 static KmParameter _GEANT_CONTROL_PDIGI_CHUDET = { "CHUDET", 6,
10937  "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10938  KmTYPE_CHAR,  (void*)0 };
10939 static KmParameter *_GEANT_CONTROL_PDIGI_parameters[] = {
10940  &_GEANT_CONTROL_PDIGI_CHUSET, &_GEANT_CONTROL_PDIGI_CHUDET };
10941 static char *_GEANT_CONTROL_PDIGI_guidance[] = { " CALL GPDIGI(chuset,chudet)"
10942  };
10943 static KmCommand _GEANT_CONTROL_PDIGI = { &_GEANT_CONTROL_SMATE,
10944  "/GEANT/CONTROL/PDIGI", "PDIGI", 0, 2, 2, 0, _GEANT_CONTROL_PDIGI_parameters,
10945  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10946  _GEANT_CONTROL_PDIGI_guidance, 0, (char**)0, (char*)0, (int*)0 };
10947  
10948 static KmParameter _GEANT_CONTROL_PHITS_CHUSET = { "CHUSET", 6, "User set",
10949  "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10950  (void*)0 };
10951 static KmParameter _GEANT_CONTROL_PHITS_CHUDET = { "CHUDET", 6,
10952  "User detector", "*", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
10953  KmTYPE_CHAR,  (void*)0 };
10954 static KmParInt    _GEANT_CONTROL_PHITS_NUMHI_type = { (char*)0, (char*)0,
10955  (char*)0, (char*)0, 0 };
10956 static KmParameter _GEANT_CONTROL_PHITS_NUMHI = { "NUMHI", 5, "Hit number",
10957  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10958  &_GEANT_CONTROL_PHITS_NUMHI_type };
10959 static KmParameter *_GEANT_CONTROL_PHITS_parameters[] = {
10960  &_GEANT_CONTROL_PHITS_CHUSET, &_GEANT_CONTROL_PHITS_CHUDET,
10961  &_GEANT_CONTROL_PHITS_NUMHI };
10962 static char *_GEANT_CONTROL_PHITS_guidance[] = { " CALL GPHITS(chuset,chudet)"
10963  };
10964 static KmCommand _GEANT_CONTROL_PHITS = { &_GEANT_CONTROL_PDIGI,
10965  "/GEANT/CONTROL/PHITS", "PHITS", 0, 2, 3, 0, _GEANT_CONTROL_PHITS_parameters,
10966  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10967  _GEANT_CONTROL_PHITS_guidance, 0, (char**)0, (char*)0, (int*)0 };
10968  
10969 static KmParInt    _GEANT_CONTROL_OUTPUT_LP_LOUT_type = { (char*)0, (char*)0,
10970  (char*)0, (char*)0, 0 };
10971 static KmParameter _GEANT_CONTROL_OUTPUT_LP_LOUT = { "LOUT", 4,
10972  "New output unit", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
10973  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_OUTPUT_LP_LOUT_type };
10974 static KmParameter *_GEANT_CONTROL_OUTPUT_LP_parameters[] = {
10975  &_GEANT_CONTROL_OUTPUT_LP_LOUT };
10976 static char *_GEANT_CONTROL_OUTPUT_LP_guidance[] = {
10977  "To change lout in /GCUNIT/",
10978  "Note: unit numbers 5,11,12,13,14,15 are reserved and cannot be used." };
10979 static KmCommand _GEANT_CONTROL_OUTPUT_LP = { &_GEANT_CONTROL_PHITS,
10980  "/GEANT/CONTROL/OUTPUT_LP", "OUTPUT_LP", 0, 2, 1, 1,
10981  _GEANT_CONTROL_OUTPUT_LP_parameters, 0, 0, gxcont_, (IntFunc*)0,
10982  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_OUTPUT_LP_guidance, 0,
10983  (char**)0, (char*)0, (int*)0 };
10984  
10985 static KmParameter _GEANT_CONTROL_PRINT_NAME = { "NAME", 4, "Name", (char*)0,
10986  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
10987  (void*)0 };
10988 static KmParInt    _GEANT_CONTROL_PRINT_NUMBER_type = { (char*)0, (char*)0,
10989  (char*)0, (char*)0, 0 };
10990 static KmParameter _GEANT_CONTROL_PRINT_NUMBER = { "NUMBER", 6, "Number", "0",
10991  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
10992  &_GEANT_CONTROL_PRINT_NUMBER_type };
10993 static KmParameter *_GEANT_CONTROL_PRINT_parameters[] = {
10994  &_GEANT_CONTROL_PRINT_NAME, &_GEANT_CONTROL_PRINT_NUMBER };
10995 static char *_GEANT_CONTROL_PRINT_guidance[] = { " CALL GPRINT(name,number)" };
10996 static KmCommand _GEANT_CONTROL_PRINT = { &_GEANT_CONTROL_OUTPUT_LP,
10997  "/GEANT/CONTROL/PRINT", "PRINT", 0, 2, 2, 2, _GEANT_CONTROL_PRINT_parameters,
10998  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
10999  _GEANT_CONTROL_PRINT_guidance, 0, (char**)0, (char*)0, (int*)0 };
11000  
11001 static KmParInt    _GEANT_CONTROL_MZLOGL_LEVEL_type = { (char*)0, (char*)0,
11002  (char*)0, (char*)0, 0 };
11003 static KmParameter _GEANT_CONTROL_MZLOGL_LEVEL = { "LEVEL", 5, "MZ log level",
11004  "0", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11005  &_GEANT_CONTROL_MZLOGL_LEVEL_type };
11006 static KmParameter *_GEANT_CONTROL_MZLOGL_parameters[] = {
11007  &_GEANT_CONTROL_MZLOGL_LEVEL };
11008 static char *_GEANT_CONTROL_MZLOGL_guidance[] = {
11009  "Set the log level for the MZ package of ZEBRA: CALL MZLOGL(0,level)",
11010  " LEVEL = -3   no messages at all", "         -2   error messages only",
11011  "         -1   terse logging", "          0   normal",
11012  "         +1   log rare events", "         +2   log calls to MZ routines" };
11013 static KmCommand _GEANT_CONTROL_MZLOGL = { &_GEANT_CONTROL_PRINT,
11014  "/GEANT/CONTROL/MZLOGL", "MZLOGL", 0, 2, 1, 1,
11015  _GEANT_CONTROL_MZLOGL_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
11016  (pCharFunc*)0, 7, _GEANT_CONTROL_MZLOGL_guidance, 0, (char**)0, (char*)0,
11017  (int*)0 };
11018  
11019 static KmParInt    _GEANT_CONTROL_SWITCH_ISWI_type = { (char*)0, (char*)0,
11020  (char*)0, (char*)0, 0 };
11021 static KmParameter _GEANT_CONTROL_SWITCH_ISWI = { "ISWI", 4, "Switch number",
11022  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11023  &_GEANT_CONTROL_SWITCH_ISWI_type };
11024 static KmParInt    _GEANT_CONTROL_SWITCH_IVAL_type = { (char*)0, (char*)0,
11025  (char*)0, (char*)0, 0 };
11026 static KmParameter _GEANT_CONTROL_SWITCH_IVAL = { "IVAL", 4,
11027  "New switch value", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
11028  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SWITCH_IVAL_type };
11029 static KmParameter *_GEANT_CONTROL_SWITCH_parameters[] = {
11030  &_GEANT_CONTROL_SWITCH_ISWI, &_GEANT_CONTROL_SWITCH_IVAL };
11031 static char *_GEANT_CONTROL_SWITCH_guidance[] = {
11032  "Change one element of array ISWIT(10) in /GCFLAG/" };
11033 static KmCommand _GEANT_CONTROL_SWITCH = { &_GEANT_CONTROL_MZLOGL,
11034  "/GEANT/CONTROL/SWITCH", "SWITCH", 0, 2, 2, 2,
11035  _GEANT_CONTROL_SWITCH_parameters, 0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0,
11036  (pCharFunc*)0, 1, _GEANT_CONTROL_SWITCH_guidance, 0, (char**)0, (char*)0,
11037  (int*)0 };
11038  
11039 static KmParInt    _GEANT_CONTROL_RNDM_ISEED1_type = { (char*)0, (char*)0,
11040  (char*)0, (char*)0, 0 };
11041 static KmParameter _GEANT_CONTROL_RNDM_ISEED1 = { "ISEED1", 6,
11042  "First seed for the random number generator", (char*)0, (char*)0, 8, 0,
11043  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11044  &_GEANT_CONTROL_RNDM_ISEED1_type };
11045 static KmParInt    _GEANT_CONTROL_RNDM_ISEED2_type = { (char*)0, (char*)0,
11046  (char*)0, (char*)0, 0 };
11047 static KmParameter _GEANT_CONTROL_RNDM_ISEED2 = { "ISEED2", 6,
11048  "Second seed for the random number generator", (char*)0, (char*)0, 8, 0,
11049  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11050  &_GEANT_CONTROL_RNDM_ISEED2_type };
11051 static KmParameter *_GEANT_CONTROL_RNDM_parameters[] = {
11052  &_GEANT_CONTROL_RNDM_ISEED1, &_GEANT_CONTROL_RNDM_ISEED2 };
11053 static char *_GEANT_CONTROL_RNDM_guidance[] = {
11054  "Set the seeds for the random number generator. If no numbers are",
11055  "given, the currents seeds are printed." };
11056 static KmCommand _GEANT_CONTROL_RNDM = { &_GEANT_CONTROL_SWITCH,
11057  "/GEANT/CONTROL/RNDM", "RNDM", 0, 2, 2, 0, _GEANT_CONTROL_RNDM_parameters, 0,
11058  0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11059  _GEANT_CONTROL_RNDM_guidance, 0, (char**)0, (char*)0, (int*)0 };
11060  
11061 static KmParInt    _GEANT_CONTROL_TRIGGER_N_type = { (char*)0, (char*)0,
11062  (char*)0, (char*)0, 0 };
11063 static KmParameter _GEANT_CONTROL_TRIGGER_N = { "N", 1, "Number of events",
11064  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11065  &_GEANT_CONTROL_TRIGGER_N_type };
11066 static KmParameter *_GEANT_CONTROL_TRIGGER_parameters[] = {
11067  &_GEANT_CONTROL_TRIGGER_N };
11068 static char *_GEANT_CONTROL_TRIGGER_guidance[] = {
11069  "Start one or more new events." };
11070 static KmCommand _GEANT_CONTROL_TRIGGER = { &_GEANT_CONTROL_RNDM,
11071  "/GEANT/CONTROL/TRIGGER", "TRIGGER", 0, 2, 1, 0,
11072  _GEANT_CONTROL_TRIGGER_parameters, 0, 0, gxcont_, (IntFunc*)0,
11073  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_CONTROL_TRIGGER_guidance, 0,
11074  (char**)0, (char*)0, (int*)0 };
11075  
11076 static char *_GEANT_CONTROL_TRACK_guidance[] = {
11077  "Restart tracking, clearing the track and hit",
11078  "banks, but keeping the kinematics." };
11079 static KmCommand _GEANT_CONTROL_TRACK = { &_GEANT_CONTROL_TRIGGER,
11080  "/GEANT/CONTROL/TRACK", "TRACK", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxcont_,
11081  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_CONTROL_TRACK_guidance,
11082  0, (char**)0, (char*)0, (int*)0 };
11083  
11084 static KmParReal   _GEANT_CONTROL_GTIME_TIMINT_type = { (char*)0, (char*)0,
11085  (char*)0, (char*)0, 0 };
11086 static KmParameter _GEANT_CONTROL_GTIME_TIMINT = { "TIMINT", 6,
11087  "Total time after initialisation", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11088  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_CONTROL_GTIME_TIMINT_type };
11089 static KmParReal   _GEANT_CONTROL_GTIME_TIMEND_type = { (char*)0, (char*)0,
11090  (char*)0, (char*)0, 0 };
11091 static KmParameter _GEANT_CONTROL_GTIME_TIMEND = { "TIMEND", 6,
11092  "Time reserved for the termination phase", (char*)0, (char*)0, 12, 0,
11093  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11094  &_GEANT_CONTROL_GTIME_TIMEND_type };
11095 static KmParInt    _GEANT_CONTROL_GTIME_ITIME_type = { (char*)0, (char*)0,
11096  (char*)0, (char*)0, 0 };
11097 static KmParameter _GEANT_CONTROL_GTIME_ITIME = { "ITIME", 5,
11098  "Frequency of control printing", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11099  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_GTIME_ITIME_type };
11100 static KmParameter *_GEANT_CONTROL_GTIME_parameters[] = {
11101  &_GEANT_CONTROL_GTIME_TIMINT, &_GEANT_CONTROL_GTIME_TIMEND,
11102  &_GEANT_CONTROL_GTIME_ITIME };
11103 static char *_GEANT_CONTROL_GTIME_guidance[] = {
11104  "These commands have limited use in the interactive version. In",
11105  "particular the value of TIMINT is disregarded by GEANT." };
11106 static KmCommand _GEANT_CONTROL_GTIME = { &_GEANT_CONTROL_TRACK,
11107  "/GEANT/CONTROL/GTIME", "GTIME", 0, 2, 3, 3, _GEANT_CONTROL_GTIME_parameters,
11108  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11109  _GEANT_CONTROL_GTIME_guidance, 0, (char**)0, (char*)0, (int*)0 };
11110  
11111 static char *_GEANT_CONTROL_SORD_ISTORD_range[] = { "1", "0" };
11112 static KmParInt    _GEANT_CONTROL_SORD_ISTORD_type = { (char*)0, (char*)0,
11113  (char*)0, (char*)0, 0 };
11114 static KmParameter _GEANT_CONTROL_SORD_ISTORD = { "ISTORD", 6,
11115  "Flag to control user ordering of the stack", "1", (char*)0, 8, 2,
11116  _GEANT_CONTROL_SORD_ISTORD_range, 2, _GEANT_CONTROL_SORD_ISTORD_range,
11117  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_SORD_ISTORD_type };
11118 static KmParameter *_GEANT_CONTROL_SORD_parameters[] = {
11119  &_GEANT_CONTROL_SORD_ISTORD };
11120 static char *_GEANT_CONTROL_SORD_guidance[] = {
11121  "If ISTORD is set to 1, the particle with the highest value of the",
11122  "user weight UPWGHT will be selected to be tracked next." };
11123 static KmCommand _GEANT_CONTROL_SORD = { &_GEANT_CONTROL_GTIME,
11124  "/GEANT/CONTROL/SORD", "SORD", 0, 2, 1, 1, _GEANT_CONTROL_SORD_parameters, 0,
11125  0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
11126  _GEANT_CONTROL_SORD_guidance, 0, (char**)0, (char*)0, (int*)0 };
11127  
11128 static KmParInt    _GEANT_CONTROL_RUNG_IDRUN_type = { (char*)0, (char*)0,
11129  (char*)0, (char*)0, 0 };
11130 static KmParameter _GEANT_CONTROL_RUNG_IDRUN = { "IDRUN", 5,
11131  "User run number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
11132  (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDRUN_type };
11133 static KmParInt    _GEANT_CONTROL_RUNG_IDEVT_type = { (char*)0, (char*)0,
11134  (char*)0, (char*)0, 0 };
11135 static KmParameter _GEANT_CONTROL_RUNG_IDEVT = { "IDEVT", 5,
11136  "User starting event number", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11137  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_CONTROL_RUNG_IDEVT_type };
11138 static KmParameter *_GEANT_CONTROL_RUNG_parameters[] = {
11139  &_GEANT_CONTROL_RUNG_IDRUN, &_GEANT_CONTROL_RUNG_IDEVT };
11140 static char *_GEANT_CONTROL_RUNG_guidance[] = {
11141  "Set the run number and the starting value for the user event number." };
11142 static KmCommand _GEANT_CONTROL_RUNG = { &_GEANT_CONTROL_SORD,
11143  "/GEANT/CONTROL/RUNG", "RUNG", 0, 2, 2, 2, _GEANT_CONTROL_RUNG_parameters, 0,
11144  0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11145  _GEANT_CONTROL_RUNG_guidance, 0, (char**)0, (char*)0, (int*)0 };
11146  
11147 static KmParInt    _GEANT_CONTROL_KINE_IKINE_type = { (char*)0, (char*)0,
11148  (char*)0, (char*)0, 0 };
11149 static KmParameter _GEANT_CONTROL_KINE_IKINE = { "IKINE", 5, "IKINE", "1",
11150  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11151  &_GEANT_CONTROL_KINE_IKINE_type };
11152 static KmParReal   _GEANT_CONTROL_KINE_PKINE1_type = { (char*)0, (char*)0,
11153  (char*)0, (char*)0, 0 };
11154 static KmParameter _GEANT_CONTROL_KINE_PKINE1 = { "PKINE1", 6, "PKINE(1)",
11155  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11156  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE1_type };
11157 static KmParReal   _GEANT_CONTROL_KINE_PKINE2_type = { (char*)0, (char*)0,
11158  (char*)0, (char*)0, 0 };
11159 static KmParameter _GEANT_CONTROL_KINE_PKINE2 = { "PKINE2", 6, "PKINE(2)",
11160  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11161  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE2_type };
11162 static KmParReal   _GEANT_CONTROL_KINE_PKINE3_type = { (char*)0, (char*)0,
11163  (char*)0, (char*)0, 0 };
11164 static KmParameter _GEANT_CONTROL_KINE_PKINE3 = { "PKINE3", 6, "PKINE(3)",
11165  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11166  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE3_type };
11167 static KmParReal   _GEANT_CONTROL_KINE_PKINE4_type = { (char*)0, (char*)0,
11168  (char*)0, (char*)0, 0 };
11169 static KmParameter _GEANT_CONTROL_KINE_PKINE4 = { "PKINE4", 6, "PKINE(4)",
11170  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11171  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE4_type };
11172 static KmParReal   _GEANT_CONTROL_KINE_PKINE5_type = { (char*)0, (char*)0,
11173  (char*)0, (char*)0, 0 };
11174 static KmParameter _GEANT_CONTROL_KINE_PKINE5 = { "PKINE5", 6, "PKINE(5)",
11175  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11176  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE5_type };
11177 static KmParReal   _GEANT_CONTROL_KINE_PKINE6_type = { (char*)0, (char*)0,
11178  (char*)0, (char*)0, 0 };
11179 static KmParameter _GEANT_CONTROL_KINE_PKINE6 = { "PKINE6", 6, "PKINE(6)",
11180  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11181  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE6_type };
11182 static KmParReal   _GEANT_CONTROL_KINE_PKINE7_type = { (char*)0, (char*)0,
11183  (char*)0, (char*)0, 0 };
11184 static KmParameter _GEANT_CONTROL_KINE_PKINE7 = { "PKINE7", 6, "PKINE(7)",
11185  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11186  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE7_type };
11187 static KmParReal   _GEANT_CONTROL_KINE_PKINE8_type = { (char*)0, (char*)0,
11188  (char*)0, (char*)0, 0 };
11189 static KmParameter _GEANT_CONTROL_KINE_PKINE8 = { "PKINE8", 6, "PKINE(8)",
11190  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11191  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE8_type };
11192 static KmParReal   _GEANT_CONTROL_KINE_PKINE9_type = { (char*)0, (char*)0,
11193  (char*)0, (char*)0, 0 };
11194 static KmParameter _GEANT_CONTROL_KINE_PKINE9 = { "PKINE9", 6, "PKINE(9)",
11195  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11196  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE9_type };
11197 static KmParReal   _GEANT_CONTROL_KINE_PKINE10_type = { (char*)0, (char*)0,
11198  (char*)0, (char*)0, 0 };
11199 static KmParameter _GEANT_CONTROL_KINE_PKINE10 = { "PKINE10", 7, "PKINE(10)",
11200  (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11201  KmTYPE_REAL, &_GEANT_CONTROL_KINE_PKINE10_type };
11202 static KmParameter *_GEANT_CONTROL_KINE_parameters[] = {
11203  &_GEANT_CONTROL_KINE_IKINE, &_GEANT_CONTROL_KINE_PKINE1,
11204  &_GEANT_CONTROL_KINE_PKINE2, &_GEANT_CONTROL_KINE_PKINE3,
11205  &_GEANT_CONTROL_KINE_PKINE4, &_GEANT_CONTROL_KINE_PKINE5,
11206  &_GEANT_CONTROL_KINE_PKINE6, &_GEANT_CONTROL_KINE_PKINE7,
11207  &_GEANT_CONTROL_KINE_PKINE8, &_GEANT_CONTROL_KINE_PKINE9,
11208  &_GEANT_CONTROL_KINE_PKINE10 };
11209 static char *_GEANT_CONTROL_KINE_guidance[] = {
11210  "Set the variables in /GCFLAG/ IKINE, PKINE(10)" };
11211 static KmCommand _GEANT_CONTROL_KINE = { &_GEANT_CONTROL_RUNG,
11212  "/GEANT/CONTROL/KINE", "KINE", 0, 2, 11, 1, _GEANT_CONTROL_KINE_parameters,
11213  0, 0, gxcont_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
11214  _GEANT_CONTROL_KINE_guidance, 0, (char**)0, (char*)0, (int*)0 };
11215  
11216 static char *_GEANT_CONTROL_guidance[] = { "Control commands." };
11217 static KmMenu _GEANT_CONTROL = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/CONTROL",
11218  "CONTROL", 2, &_GEANT_CONTROL_KINE, 1, _GEANT_CONTROL_guidance };
11219  
11220 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_CONTROL, "/GEANT", "GEANT", 1,
11221  (KmCommand*)0, 0, (char**)0 };
11222  
11223   klnkmenu( &_GEANT, 921023 );
11224 }
11225  
11226  
11227 #ifdef F77_LCASE
11228 #  define gkdz_ gkdz
11229 #  define gxdz_ gxdz
11230 #endif
11231  
11232 #ifdef F77_UCASE
11233 #  define gkdz_ GKDZ
11234 #  define gxdz_ GXDZ
11235 #endif
11236  
11237 #ifdef IBM370
11238 #  pragma linkage(GKDZ,FORTRAN)
11239 #  pragma linkage(GXDZ,FORTRAN)
11240 #endif
11241  
11242 extern void gkdz_();
11243 extern void gxdz_();
11244  
11245 void gkdz_()
11246 {
11247  
11248 static KmParameter _GEANT_DZ_DIRZ_PATH = { "PATH", 4,
11249  "Name of the RZ directory to analyse", (char*)0, (char*)0, 20, 0, (char**)0,
11250  0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
11251 static KmParameter *_GEANT_DZ_DIRZ_parameters[] = { &_GEANT_DZ_DIRZ_PATH };
11252 static char *_GEANT_DZ_DIRZ_guidance[] = {
11253  "Facility to display RZ directory trees.",
11254  " CALL DZDIRZ(0,LDUMMY,0,path,'N',1,0,1)" };
11255 static KmCommand _GEANT_DZ_DIRZ = {  (KmCommand*)0, "/GEANT/DZ/DIRZ", "DIRZ",
11256  0, 2, 1, 0, _GEANT_DZ_DIRZ_parameters, 0, 0, gxdz_, (IntFunc*)0,
11257  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DIRZ_guidance, 0, (char**)0,
11258  (char*)0, (int*)0 };
11259  
11260 static KmParameter _GEANT_DZ_DISP_BANK = { "BANK", 4, "Name of the bank",
11261  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11262  KmTYPE_CHAR,  (void*)0 };
11263 static KmParameter _GEANT_DZ_DISP_PATH = { "PATH", 4, "Name of the doc file",
11264  " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11265  (void*)0 };
11266 static KmParInt    _GEANT_DZ_DISP_NUMBER_type = { (char*)0, (char*)0,
11267  (char*)0, (char*)0, 0 };
11268 static KmParameter _GEANT_DZ_DISP_NUMBER = { "NUMBER", 6,
11269  "Number of the bank", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11270  (KmParFlag)0, KmTYPE_INT, &_GEANT_DZ_DISP_NUMBER_type };
11271 static KmParameter *_GEANT_DZ_DISP_parameters[] = { &_GEANT_DZ_DISP_BANK,
11272  &_GEANT_DZ_DISP_PATH, &_GEANT_DZ_DISP_NUMBER };
11273 static char *_GEANT_DZ_DISP_guidance[] = { "Interactive bank display tool.",
11274  " CALL DZDISP(IXSTOR,LBANK,path,'N',1,0,1,IWTYPE)" };
11275 static KmCommand _GEANT_DZ_DISP = { &_GEANT_DZ_DIRZ, "/GEANT/DZ/DISP", "DISP",
11276  0, 2, 3, 1, _GEANT_DZ_DISP_parameters, 0, 0, gxdz_, (IntFunc*)0,
11277  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DISP_guidance, 0, (char**)0,
11278  (char*)0, (int*)0 };
11279  
11280 static KmParInt    _GEANT_DZ_DDIV_IDIV_type = { (char*)0, (char*)0, (char*)0,
11281  (char*)0, 0 };
11282 static KmParameter _GEANT_DZ_DDIV_IDIV = { "IDIV", 4, "Division number", "2",
11283  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11284  &_GEANT_DZ_DDIV_IDIV_type };
11285 static KmParameter _GEANT_DZ_DDIV_PATH = { "PATH", 4, "Name of the doc file",
11286  " ", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11287  (void*)0 };
11288 static KmParameter *_GEANT_DZ_DDIV_parameters[] = { &_GEANT_DZ_DDIV_IDIV,
11289  &_GEANT_DZ_DDIV_PATH };
11290 static char *_GEANT_DZ_DDIV_guidance[] = {
11291  "Facility to display the layout of stores and divisions.",
11292  " CALL DZDDIV(idiv,LDUMMY,path,'IN',1,0,1,IWTYPE)" };
11293 static KmCommand _GEANT_DZ_DDIV = { &_GEANT_DZ_DISP, "/GEANT/DZ/DDIV", "DDIV",
11294  0, 2, 2, 0, _GEANT_DZ_DDIV_parameters, 0, 0, gxdz_, (IntFunc*)0,
11295  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_DZ_DDIV_guidance, 0, (char**)0,
11296  (char*)0, (int*)0 };
11297  
11298 static KmParInt    _GEANT_DZ_STORE_IXSTOR_type = { "0", "24", "0", "24", 0 };
11299 static KmParameter _GEANT_DZ_STORE_IXSTOR = { "IXSTOR", 6, "Store number",
11300  "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11301  &_GEANT_DZ_STORE_IXSTOR_type };
11302 static KmParameter *_GEANT_DZ_STORE_parameters[] = { &_GEANT_DZ_STORE_IXSTOR };
11303 static char *_GEANT_DZ_STORE_guidance[] = {
11304  "Display the structure of the ZEBRA store IXSTOR.",
11305  "Output the parameters characterizing the store, followed by a",
11306  "list of all divisions and all link areas associated with the store in",
11307  "question." };
11308 static KmCommand _GEANT_DZ_STORE = { &_GEANT_DZ_DDIV, "/GEANT/DZ/STORE",
11309  "STORE", 0, 2, 1, 0, _GEANT_DZ_STORE_parameters, 0, 0, gxdz_, (IntFunc*)0,
11310  (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_DZ_STORE_guidance, 0, (char**)0,
11311  (char*)0, (int*)0 };
11312  
11313 static KmParInt    _GEANT_DZ_VERIFY_IDIV_type = { "0", "24", "0", "24", 0 };
11314 static KmParameter _GEANT_DZ_VERIFY_IDIV = { "IDIV", 4, "Division number ",
11315  "0", (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11316  &_GEANT_DZ_VERIFY_IDIV_type };
11317 static KmParOption _GEANT_DZ_VERIFY_CHOPT_type = { (char**)0, (int*)0, (int*)0
11318  };
11319 static KmParameter _GEANT_DZ_VERIFY_CHOPT = { "CHOPT", 5, "Options", "CLSU",
11320  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11321  &_GEANT_DZ_VERIFY_CHOPT_type };
11322 static KmParameter *_GEANT_DZ_VERIFY_parameters[] = { &_GEANT_DZ_VERIFY_IDIV,
11323  &_GEANT_DZ_VERIFY_CHOPT };
11324 static char *_GEANT_DZ_VERIFY_guidance[] = {
11325  "Check the structure of one or more ZEBRA divisions.",
11326  "The verification detail depends on the settings in CHOPT.",
11327  " CHOPT='C' Check chaining of banks only",
11328  " CHOPT='L' Check validity of the structural links (implies 'C')",
11329  " CHOPT='S' Check the store parameters",
11330  " CHOPT='U' Check the validity of the up and origin (implies 'C')",
11331  " CHOPT='F' Errors are considered fatal and generate a call to ZFATAL" };
11332 static KmCommand _GEANT_DZ_VERIFY = { &_GEANT_DZ_STORE, "/GEANT/DZ/VERIFY",
11333  "VERIFY", 0, 2, 2, 0, _GEANT_DZ_VERIFY_parameters, 0, 0, gxdz_, (IntFunc*)0,
11334  (SUBROUTINE*)0, (pCharFunc*)0, 7, _GEANT_DZ_VERIFY_guidance, 0, (char**)0,
11335  (char*)0, (int*)0 };
11336  
11337 static KmParInt    _GEANT_DZ_SNAP_IDIV_type = { "0", "24", "0", "24", 0 };
11338 static KmParameter _GEANT_DZ_SNAP_IDIV = { "IDIV", 4, "Division number ", "2",
11339  (char*)0, 3, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11340  &_GEANT_DZ_SNAP_IDIV_type };
11341 static KmParOption _GEANT_DZ_SNAP_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11342 static KmParameter _GEANT_DZ_SNAP_CHOPT = { "CHOPT", 5, "Options", "M",
11343  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11344  &_GEANT_DZ_SNAP_CHOPT_type };
11345 static KmParameter *_GEANT_DZ_SNAP_parameters[] = { &_GEANT_DZ_SNAP_IDIV,
11346  &_GEANT_DZ_SNAP_CHOPT };
11347 static char *_GEANT_DZ_SNAP_guidance[] = { "Snap of one or more divisions.",
11348  "Provides a snapshot of one or more divisions in a ZEBRA store.",
11349  "The kind of information provided is controlled by CHOPT.",
11350  " CHOPT='M' Print Map entry for each bank",
11351  " CHOPT='E' Extend map entry to dump all links of each bank",
11352  "           (otherwise only as many links as will fit on a line)",
11353  " CHOPT='F' Full. Dump all active banks, links and data",
11354  " CHOPT='K' Kill. Dropped banks to be treated as active",
11355  "           (dropped banks are not normally dumped under D or F option)",
11356  " CHOPT='L' Dump all Link areas associated with the store",
11357  " CHOPT='W' Dump the Working space, links and data",
11358  " CHOPT='Z' Dump the information in hexadecimal." };
11359 static KmCommand _GEANT_DZ_SNAP = { &_GEANT_DZ_VERIFY, "/GEANT/DZ/SNAP",
11360  "SNAP", 0, 2, 2, 0, _GEANT_DZ_SNAP_parameters, 0, 0, gxdz_, (IntFunc*)0,
11361  (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SNAP_guidance, 0, (char**)0,
11362  (char*)0, (int*)0 };
11363  
11364 static KmParameter _GEANT_DZ_SHOW_NAME = { "NAME", 4, "Bank name", (char*)0,
11365  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11366  (void*)0 };
11367 static KmParInt    _GEANT_DZ_SHOW_NUMBER_type = { (char*)0, (char*)0,
11368  (char*)0, (char*)0, 0 };
11369 static KmParameter _GEANT_DZ_SHOW_NUMBER = { "NUMBER", 6, "Bank number", "1",
11370  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11371  &_GEANT_DZ_SHOW_NUMBER_type };
11372 static KmParOption _GEANT_DZ_SHOW_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11373 static KmParameter _GEANT_DZ_SHOW_CHOPT = { "CHOPT", 5, "Options", "BSV",
11374  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11375  &_GEANT_DZ_SHOW_CHOPT_type };
11376 static KmParameter *_GEANT_DZ_SHOW_parameters[] = { &_GEANT_DZ_SHOW_NAME,
11377  &_GEANT_DZ_SHOW_NUMBER, &_GEANT_DZ_SHOW_CHOPT };
11378 static char *_GEANT_DZ_SHOW_guidance[] = {
11379  "Display the contents of a bank or a data structure",
11380  "identified by its NAME and NUMBER.",
11381  "The output format of the data part is controlled by the internal",
11382  "or external I/O characteristic.", " CHOPT='B' Print the bank.",
11383  " CHOPT='S' Print the bank contents from left to right Sideways",
11384  "           with up to ten elements per line.",
11385  " CHOPT='V' Print the vertical (down) structure.",
11386  " CHOPT='D' Print the bank contents from top to bottom Downwards",
11387  "           with five elements per line.",
11388  " CHOPT='L' Print the linear structure.",
11389  " CHOPT='Z' Print the data part of each bank in hexadecimal format" };
11390 static KmCommand _GEANT_DZ_SHOW = { &_GEANT_DZ_SNAP, "/GEANT/DZ/SHOW", "SHOW",
11391  0, 2, 3, 1, _GEANT_DZ_SHOW_parameters, 0, 0, gxdz_, (IntFunc*)0,
11392  (SUBROUTINE*)0, (pCharFunc*)0, 12, _GEANT_DZ_SHOW_guidance, 0, (char**)0,
11393  (char*)0, (int*)0 };
11394  
11395 static KmParameter _GEANT_DZ_SURV_NAME = { "NAME", 4, "Bank name", (char*)0,
11396  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11397  (void*)0 };
11398 static KmParInt    _GEANT_DZ_SURV_NUMBER_type = { (char*)0, (char*)0,
11399  (char*)0, (char*)0, 0 };
11400 static KmParameter _GEANT_DZ_SURV_NUMBER = { "NUMBER", 6, "Bank number", "1",
11401  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11402  &_GEANT_DZ_SURV_NUMBER_type };
11403 static KmParameter *_GEANT_DZ_SURV_parameters[] = { &_GEANT_DZ_SURV_NAME,
11404  &_GEANT_DZ_SURV_NUMBER };
11405 static char *_GEANT_DZ_SURV_guidance[] = {
11406  "Print a survey of the structure identified by NAME, NUMBER." };
11407 static KmCommand _GEANT_DZ_SURV = { &_GEANT_DZ_SHOW, "/GEANT/DZ/SURV", "SURV",
11408  0, 2, 2, 1, _GEANT_DZ_SURV_parameters, 0, 0, gxdz_, (IntFunc*)0,
11409  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_DZ_SURV_guidance, 0, (char**)0,
11410  (char*)0, (int*)0 };
11411  
11412 static KmMenu _GEANT_DZ = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/DZ", "DZ", 2,
11413  &_GEANT_DZ_SURV, 0, (char**)0 };
11414  
11415 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_DZ, "/GEANT", "GEANT", 1,
11416  (KmCommand*)0, 0, (char**)0 };
11417  
11418   klnkmenu( &_GEANT, 921023 );
11419 }
11420  
11421  
11422 #ifdef F77_LCASE
11423 #  define gkfz_ gkfz
11424 #  define gxfz_ gxfz
11425 #endif
11426  
11427 #ifdef F77_UCASE
11428 #  define gkfz_ GKFZ
11429 #  define gxfz_ GXFZ
11430 #endif
11431  
11432 #ifdef IBM370
11433 #  pragma linkage(GKFZ,FORTRAN)
11434 #  pragma linkage(GXFZ,FORTRAN)
11435 #endif
11436  
11437 extern void gkfz_();
11438 extern void gxfz_();
11439  
11440 void gkfz_()
11441 {
11442  
11443 static KmParInt    _GEANT_FZ_FZCLOSE_LUN_type = { (char*)0, (char*)0,
11444  (char*)0, (char*)0, 0 };
11445 static KmParameter _GEANT_FZ_FZCLOSE_LUN = { "LUN", 3,
11446  "Fortran unit of the FZ to close", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11447  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZCLOSE_LUN_type };
11448 static KmParameter *_GEANT_FZ_FZCLOSE_parameters[] = { &_GEANT_FZ_FZCLOSE_LUN
11449  };
11450 static char *_GEANT_FZ_FZCLOSE_guidance[] = { "Equivalent to a call to:",
11451  "       CALL GCLOSE(LUN,IER)" };
11452 static KmCommand _GEANT_FZ_FZCLOSE = {  (KmCommand*)0, "/GEANT/FZ/FZCLOSE",
11453  "FZCLOSE", 0, 2, 1, 1, _GEANT_FZ_FZCLOSE_parameters, 0, 0, gxfz_,
11454  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZCLOSE_guidance, 0,
11455  (char**)0, (char*)0, (int*)0 };
11456  
11457 static KmParInt    _GEANT_FZ_FZOUT_LUN_type = { (char*)0, (char*)0, (char*)0,
11458  (char*)0, 0 };
11459 static KmParameter _GEANT_FZ_FZOUT_LUN = { "LUN", 3,
11460  "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11461  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_LUN_type };
11462 static KmParameter _GEANT_FZ_FZOUT_KEYSU = { "KEYSU", 5,
11463  "Name of the data structure to be saved", (char*)0, (char*)0, 20, 0,
11464  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
11465 static KmParInt    _GEANT_FZ_FZOUT_IDENT_type = { (char*)0, (char*)0,
11466  (char*)0, (char*)0, 0 };
11467 static KmParameter _GEANT_FZ_FZOUT_IDENT = { "IDENT", 5,
11468  "Version of the data structure to be saved", "1", (char*)0, 8, 0, (char**)0,
11469  0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOUT_IDENT_type };
11470 static KmParameter *_GEANT_FZ_FZOUT_parameters[] = { &_GEANT_FZ_FZOUT_LUN,
11471  &_GEANT_FZ_FZOUT_KEYSU, &_GEANT_FZ_FZOUT_IDENT };
11472 static char *_GEANT_FZ_FZOUT_guidance[] = { "Equivalent to a call to:",
11473  "       CALL GFOUT(LUN,KEYSU,1,IDENT,' ',IER)" };
11474 static KmCommand _GEANT_FZ_FZOUT = { &_GEANT_FZ_FZCLOSE, "/GEANT/FZ/FZOUT",
11475  "FZOUT", 0, 2, 3, 2, _GEANT_FZ_FZOUT_parameters, 0, 0, gxfz_, (IntFunc*)0,
11476  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZOUT_guidance, 0, (char**)0,
11477  (char*)0, (int*)0 };
11478  
11479 static KmParInt    _GEANT_FZ_FZOPEN_LUN_type = { (char*)0, (char*)0, (char*)0,
11480  (char*)0, 0 };
11481 static KmParameter _GEANT_FZ_FZOPEN_LUN = { "LUN", 3,
11482  "Fortran unit with which to open the file", (char*)0, (char*)0, 8, 0,
11483  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LUN_type
11484  };
11485 static KmParameter _GEANT_FZ_FZOPEN_FILE = { "FILE", 4,
11486  "Name of the file to be opened", (char*)0, (char*)0, 20, 0, (char**)0, 0,
11487  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
11488 static KmParameter _GEANT_FZ_FZOPEN_LUNTYP = { "LUNTYP", 6,
11489  "Type of FZ file to be opened by GOPEN", "XI", (char*)0, 20, 0, (char**)0, 0,
11490  (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
11491 static KmParInt    _GEANT_FZ_FZOPEN_LEN_type = { (char*)0, (char*)0, (char*)0,
11492  (char*)0, 0 };
11493 static KmParameter _GEANT_FZ_FZOPEN_LEN = { "LEN", 3,
11494  "Recordlenght of the file", "0", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11495  (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZOPEN_LEN_type };
11496 static KmParOption _GEANT_FZ_FZOPEN_CHOPT_type = { (char**)0, (int*)0, (int*)0
11497  };
11498 static KmParameter _GEANT_FZ_FZOPEN_CHOPT = { "CHOPT", 5,
11499  "Optional parameter to specify the action", " ", (char*)0, 20, 0, (char**)0,
11500  0, (char**)0, (KmParFlag)0, KmTYPE_OPTION, &_GEANT_FZ_FZOPEN_CHOPT_type };
11501 static KmParameter *_GEANT_FZ_FZOPEN_parameters[] = { &_GEANT_FZ_FZOPEN_LUN,
11502  &_GEANT_FZ_FZOPEN_FILE, &_GEANT_FZ_FZOPEN_LUNTYP, &_GEANT_FZ_FZOPEN_LEN,
11503  &_GEANT_FZ_FZOPEN_CHOPT };
11504 static char *_GEANT_FZ_FZOPEN_guidance[] = { "Equivalent to a call to:",
11505  "       CALL GOPEN(LUN,FILE,LUNTYP,LEN,IER)",
11506  "If CHOPT = I then a call to GFIN or GFOUT will be performed in addition",
11507  "according to the value of LUNTYP, with the key INIT to save or retrieve",
11508  "the whole initialization data structure." };
11509 static KmCommand _GEANT_FZ_FZOPEN = { &_GEANT_FZ_FZOUT, "/GEANT/FZ/FZOPEN",
11510  "FZOPEN", 0, 2, 5, 4, _GEANT_FZ_FZOPEN_parameters, 0, 0, gxfz_, (IntFunc*)0,
11511  (SUBROUTINE*)0, (pCharFunc*)0, 5, _GEANT_FZ_FZOPEN_guidance, 0, (char**)0,
11512  (char*)0, (int*)0 };
11513  
11514 static KmParInt    _GEANT_FZ_FZIN_LUN_type = { (char*)0, (char*)0, (char*)0,
11515  (char*)0, 0 };
11516 static KmParameter _GEANT_FZ_FZIN_LUN = { "LUN", 3,
11517  "Fortran unit of the FZ file", (char*)0, (char*)0, 8, 0, (char**)0, 0,
11518  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_LUN_type };
11519 static KmParameter _GEANT_FZ_FZIN_KEYSU = { "KEYSU", 5,
11520  "Name of the data structure to be retrieved", (char*)0, (char*)0, 20, 0,
11521  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
11522 static KmParInt    _GEANT_FZ_FZIN_IDENT_type = { (char*)0, (char*)0, (char*)0,
11523  (char*)0, 0 };
11524 static KmParameter _GEANT_FZ_FZIN_IDENT = { "IDENT", 5,
11525  "Version of the data structure to be retrieved", "0", (char*)0, 8, 0,
11526  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_FZ_FZIN_IDENT_type
11527  };
11528 static KmParameter *_GEANT_FZ_FZIN_parameters[] = { &_GEANT_FZ_FZIN_LUN,
11529  &_GEANT_FZ_FZIN_KEYSU, &_GEANT_FZ_FZIN_IDENT };
11530 static char *_GEANT_FZ_FZIN_guidance[] = { "Equivalent to a call to:",
11531  "       CALL GFIN(LUN,KEYSU,1,IDENT,' ',IER)" };
11532 static KmCommand _GEANT_FZ_FZIN = { &_GEANT_FZ_FZOPEN, "/GEANT/FZ/FZIN",
11533  "FZIN", 0, 2, 3, 2, _GEANT_FZ_FZIN_parameters, 0, 0, gxfz_, (IntFunc*)0,
11534  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_FZ_FZIN_guidance, 0, (char**)0,
11535  (char*)0, (int*)0 };
11536  
11537 static char *_GEANT_FZ_guidance[] = { "ZEBRA/FZ commands" };
11538 static KmMenu _GEANT_FZ = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/FZ", "FZ", 2,
11539  &_GEANT_FZ_FZIN, 1, _GEANT_FZ_guidance };
11540  
11541 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_FZ, "/GEANT", "GEANT", 1,
11542  (KmCommand*)0, 0, (char**)0 };
11543  
11544   klnkmenu( &_GEANT, 921023 );
11545 }
11546  
11547  
11548 #ifdef F77_LCASE
11549 #  define gkrz_ gkrz
11550 #  define gxrz_ gxrz
11551 #endif
11552  
11553 #ifdef F77_UCASE
11554 #  define gkrz_ GKRZ
11555 #  define gxrz_ GXRZ
11556 #endif
11557  
11558 #ifdef IBM370
11559 #  pragma linkage(GKRZ,FORTRAN)
11560 #  pragma linkage(GXRZ,FORTRAN)
11561 #endif
11562  
11563 extern void gkrz_();
11564 extern void gxrz_();
11565  
11566 void gkrz_()
11567 {
11568  
11569 static KmParameter _GEANT_RZ_FREE_CHDIR = { "CHDIR", 5, "Lock identifier",
11570  "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11571  KmTYPE_CHAR,  (void*)0 };
11572 static KmParameter *_GEANT_RZ_FREE_parameters[] = { &_GEANT_RZ_FREE_CHDIR };
11573 static char *_GEANT_RZ_FREE_guidance[] = { "Free an RZ directory." };
11574 static KmCommand _GEANT_RZ_FREE = {  (KmCommand*)0, "/GEANT/RZ/FREE", "FREE",
11575  0, 2, 1, 1, _GEANT_RZ_FREE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11576  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_FREE_guidance, 0, (char**)0,
11577  (char*)0, (int*)0 };
11578  
11579 static KmParameter _GEANT_RZ_LOCK_CHDIR = { "CHDIR", 5, "Lock identifier",
11580  "RZFILE", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11581  KmTYPE_CHAR,  (void*)0 };
11582 static KmParameter *_GEANT_RZ_LOCK_parameters[] = { &_GEANT_RZ_LOCK_CHDIR };
11583 static char *_GEANT_RZ_LOCK_guidance[] = { "Lock an RZ directory." };
11584 static KmCommand _GEANT_RZ_LOCK = { &_GEANT_RZ_FREE, "/GEANT/RZ/LOCK", "LOCK",
11585  0, 2, 1, 1, _GEANT_RZ_LOCK_parameters, 0, 0, gxrz_, (IntFunc*)0,
11586  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_LOCK_guidance, 0, (char**)0,
11587  (char*)0, (int*)0 };
11588  
11589 static KmParameter _GEANT_RZ_SCR_OBJECT = { "OBJECT", 6, "Structure name",
11590  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11591  KmTYPE_CHAR,  (void*)0 };
11592 static KmParInt    _GEANT_RZ_SCR_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11593  (char*)0, 0 };
11594 static KmParameter _GEANT_RZ_SCR_IDVERS = { "IDVERS", 6, "Version number",
11595  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11596  &_GEANT_RZ_SCR_IDVERS_type };
11597 static KmParameter *_GEANT_RZ_SCR_parameters[] = { &_GEANT_RZ_SCR_OBJECT,
11598  &_GEANT_RZ_SCR_IDVERS };
11599 static char *_GEANT_RZ_SCR_guidance[] = {
11600  "Delete entry identified by OBJECT,IDVERS on RZ file.",
11601  "OBJECT may be : MATE,TMED,VOLU,ROTM,SETS,PART,SCAN, *",
11602  "If OBJECT= *    delete all entries with IDVERS." };
11603 static KmCommand _GEANT_RZ_SCR = { &_GEANT_RZ_LOCK, "/GEANT/RZ/SCR", "SCR", 0,
11604  2, 2, 1, _GEANT_RZ_SCR_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11605  (pCharFunc*)0, 3, _GEANT_RZ_SCR_guidance, 0, (char**)0, (char*)0, (int*)0 };
11606  
11607 static KmParInt    _GEANT_RZ_PURGE_NKEEP_type = { (char*)0, (char*)0,
11608  (char*)0, (char*)0, 0 };
11609 static KmParameter _GEANT_RZ_PURGE_NKEEP = { "NKEEP", 5,
11610  "Number of cycles to keep", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11611  (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PURGE_NKEEP_type };
11612 static KmParameter *_GEANT_RZ_PURGE_parameters[] = { &_GEANT_RZ_PURGE_NKEEP };
11613 static char *_GEANT_RZ_PURGE_guidance[] = { "Purge an RZ directory." };
11614 static KmCommand _GEANT_RZ_PURGE = { &_GEANT_RZ_SCR, "/GEANT/RZ/PURGE",
11615  "PURGE", 0, 2, 1, 0, _GEANT_RZ_PURGE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11616  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PURGE_guidance, 0, (char**)0,
11617  (char*)0, (int*)0 };
11618  
11619 static KmParameter _GEANT_RZ_LDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11620  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11621  (void*)0 };
11622 static KmParOption _GEANT_RZ_LDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11623 static KmParameter _GEANT_RZ_LDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
11624  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11625  &_GEANT_RZ_LDIR_CHOPT_type };
11626 static KmParameter *_GEANT_RZ_LDIR_parameters[] = { &_GEANT_RZ_LDIR_CHPATH,
11627  &_GEANT_RZ_LDIR_CHOPT };
11628 static char *_GEANT_RZ_LDIR_guidance[] = {
11629  "List the contents of a directory (memory or disk).",
11630  "To list all RZ files currently open, type 'LD //'." };
11631 static KmCommand _GEANT_RZ_LDIR = { &_GEANT_RZ_PURGE, "/GEANT/RZ/LDIR",
11632  "LDIR", 0, 2, 2, 0, _GEANT_RZ_LDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11633  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_LDIR_guidance, 0, (char**)0,
11634  (char*)0, (int*)0 };
11635  
11636 static KmParameter _GEANT_RZ_OUT_OBJECT = { "OBJECT", 6, "Structure name",
11637  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11638  KmTYPE_CHAR,  (void*)0 };
11639 static KmParInt    _GEANT_RZ_OUT_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11640  (char*)0, 0 };
11641 static KmParameter _GEANT_RZ_OUT_IDVERS = { "IDVERS", 6, "Version number",
11642  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11643  &_GEANT_RZ_OUT_IDVERS_type };
11644 static KmParOption _GEANT_RZ_OUT_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11645 static KmParameter _GEANT_RZ_OUT_CHOPT = { "CHOPT", 5, "Option", " ",
11646  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11647  &_GEANT_RZ_OUT_CHOPT_type };
11648 static KmParameter *_GEANT_RZ_OUT_parameters[] = { &_GEANT_RZ_OUT_OBJECT,
11649  &_GEANT_RZ_OUT_IDVERS, &_GEANT_RZ_OUT_CHOPT };
11650 static char *_GEANT_RZ_OUT_guidance[] = {
11651  "Write data structure identified by OBJECT,IDVERS to RZ file.",
11652  "  MATE write JMATE structure", "  TMED write JTMED structure",
11653  "  VOLU write JVOLUM structure", "  ROTM write JROTM structure",
11654  "  SETS write JSET  structure", "  PART write JPART structure",
11655  "  SCAN write LSCAN structure", "  INIT write all above data structures" };
11656 static KmCommand _GEANT_RZ_OUT = { &_GEANT_RZ_LDIR, "/GEANT/RZ/OUT", "OUT", 0,
11657  2, 3, 1, _GEANT_RZ_OUT_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11658  (pCharFunc*)0, 9, _GEANT_RZ_OUT_guidance, 0, (char**)0, (char*)0, (int*)0 };
11659  
11660 static KmParameter _GEANT_RZ_IN_OBJECT = { "OBJECT", 6, "Structure name",
11661  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11662  KmTYPE_CHAR,  (void*)0 };
11663 static KmParInt    _GEANT_RZ_IN_IDVERS_type = { (char*)0, (char*)0, (char*)0,
11664  (char*)0, 0 };
11665 static KmParameter _GEANT_RZ_IN_IDVERS = { "IDVERS", 6, "Version number", "1",
11666  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11667  &_GEANT_RZ_IN_IDVERS_type };
11668 static KmParOption _GEANT_RZ_IN_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11669 static KmParameter _GEANT_RZ_IN_CHOPT = { "CHOPT", 5, "Option", " ", (char*)0,
11670  20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11671  &_GEANT_RZ_IN_CHOPT_type };
11672 static KmParameter *_GEANT_RZ_IN_parameters[] = { &_GEANT_RZ_IN_OBJECT,
11673  &_GEANT_RZ_IN_IDVERS, &_GEANT_RZ_IN_CHOPT };
11674 static char *_GEANT_RZ_IN_guidance[] = {
11675  "Read data structure identified by OBJECT,IDVERS into memory.",
11676  "  MATE read JMATE structure", "  TMED read JTMED structure",
11677  "  VOLU read JVOLUM structure", "  ROTM read JROTM structure",
11678  "  SETS read JSET  structure", "  PART read JPART structure",
11679  "  SCAN read LSCAN structure", "  INIT read all above data structures" };
11680 static KmCommand _GEANT_RZ_IN = { &_GEANT_RZ_OUT, "/GEANT/RZ/IN", "IN", 0, 2,
11681  3, 1, _GEANT_RZ_IN_parameters, 0, 0, gxrz_, (IntFunc*)0, (SUBROUTINE*)0,
11682  (pCharFunc*)0, 9, _GEANT_RZ_IN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11683  
11684 static KmParameter _GEANT_RZ_CDIR_CHPATH = { "CHPATH", 6, "Path name", " ",
11685  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11686  (void*)0 };
11687 static KmParOption _GEANT_RZ_CDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11688 static KmParameter _GEANT_RZ_CDIR_CHOPT = { "CHOPT", 5, "CHOPT", " ",
11689  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11690  &_GEANT_RZ_CDIR_CHOPT_type };
11691 static KmParameter *_GEANT_RZ_CDIR_parameters[] = { &_GEANT_RZ_CDIR_CHPATH,
11692  &_GEANT_RZ_CDIR_CHOPT };
11693 static char *_GEANT_RZ_CDIR_guidance[] = {
11694  "Change or print the current directory.",
11695  " Ex.  CD dir1         ; make DIR1 the new CWD",
11696  "      CD //file1/dir2 ; make //FILE1/DIR2 the new CWD",
11697  "      CD              ; print the name of the CWD" };
11698 static KmCommand _GEANT_RZ_CDIR = { &_GEANT_RZ_IN, "/GEANT/RZ/CDIR", "CDIR",
11699  0, 2, 2, 0, _GEANT_RZ_CDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11700  (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_CDIR_guidance, 0, (char**)0,
11701  (char*)0, (int*)0 };
11702  
11703 static KmParameter _GEANT_RZ_MDIR_CHDIR = { "CHDIR", 5, "Directory name",
11704  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
11705  KmTYPE_CHAR,  (void*)0 };
11706 static KmParOption _GEANT_RZ_MDIR_CHOPT_type = { (char**)0, (int*)0, (int*)0 };
11707 static KmParameter _GEANT_RZ_MDIR_CHOPT = { "CHOPT", 5, "Options", " ",
11708  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_OPTION,
11709  &_GEANT_RZ_MDIR_CHOPT_type };
11710 static KmParameter *_GEANT_RZ_MDIR_parameters[] = { &_GEANT_RZ_MDIR_CHDIR,
11711  &_GEANT_RZ_MDIR_CHOPT };
11712 static char *_GEANT_RZ_MDIR_guidance[] = {
11713  "To create a new RZ directory below the current directory.", "with",
11714  " RZTAGS(1)='Object'", " RZTAGS(2)='Idvers-NR '" };
11715 static KmCommand _GEANT_RZ_MDIR = { &_GEANT_RZ_CDIR, "/GEANT/RZ/MDIR", "MDIR",
11716  0, 2, 2, 1, _GEANT_RZ_MDIR_parameters, 0, 0, gxrz_, (IntFunc*)0,
11717  (SUBROUTINE*)0, (pCharFunc*)0, 4, _GEANT_RZ_MDIR_guidance, 0, (char**)0,
11718  (char*)0, (int*)0 };
11719  
11720 static KmParInt    _GEANT_RZ_REND_LUNRZ_type = { (char*)0, (char*)0, (char*)0,
11721  (char*)0, 0 };
11722 static KmParameter _GEANT_RZ_REND_LUNRZ = { "LUNRZ", 5, "Logical unit number",
11723  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11724  &_GEANT_RZ_REND_LUNRZ_type };
11725 static KmParameter *_GEANT_RZ_REND_parameters[] = { &_GEANT_RZ_REND_LUNRZ };
11726 static char *_GEANT_RZ_REND_guidance[] = {
11727  "Close an RZ file opened by GRFILE on logical unit LUNRZ.",
11728  " CALL GREND(LUNRZ)" };
11729 static KmCommand _GEANT_RZ_REND = { &_GEANT_RZ_MDIR, "/GEANT/RZ/REND", "REND",
11730  0, 2, 1, 1, _GEANT_RZ_REND_parameters, 0, 0, gxrz_, (IntFunc*)0,
11731  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_RZ_REND_guidance, 0, (char**)0,
11732  (char*)0, (int*)0 };
11733  
11734 static KmParInt    _GEANT_RZ_FILE_LUN_type = { (char*)0, (char*)0, (char*)0,
11735  (char*)0, 0 };
11736 static KmParameter _GEANT_RZ_FILE_LUN = { "LUN", 3, "Logical unit number",
11737  (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11738  &_GEANT_RZ_FILE_LUN_type };
11739 static KmParameter _GEANT_RZ_FILE_FNAME = { "FNAME", 5, "File name", (char*)0,
11740  (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11741  (void*)0 };
11742 static char *_GEANT_RZ_FILE_CHOPT_range[] = { " ", "A", "N", "U" };
11743 static char *_GEANT_RZ_FILE_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11744  (char*)0 };
11745 static KmParOption _GEANT_RZ_FILE_CHOPT_type = { _GEANT_RZ_FILE_CHOPT_text,
11746  (int*)0, (int*)0 };
11747 static KmParameter _GEANT_RZ_FILE_CHOPT = { "CHOPT", 5, "Options", " ",
11748  (char*)0, 8, 4, _GEANT_RZ_FILE_CHOPT_range, 4, _GEANT_RZ_FILE_CHOPT_range,
11749  (KmParFlag)0, KmTYPE_OPTION, &_GEANT_RZ_FILE_CHOPT_type };
11750 static KmParameter *_GEANT_RZ_FILE_parameters[] = { &_GEANT_RZ_FILE_LUN,
11751  &_GEANT_RZ_FILE_FNAME, &_GEANT_RZ_FILE_CHOPT };
11752 static char *_GEANT_RZ_FILE_guidance[] = { "Open a GRZ file.",
11753  " CHOPT=' ' readonly mode", " CHOPT='U' update mode",
11754  " CHOPT='N' create new file",
11755  " CHOPT='I' Read all structures from existing file",
11756  " CHOPT='O' Write all structures on file" };
11757 static KmCommand _GEANT_RZ_FILE = { &_GEANT_RZ_REND, "/GEANT/RZ/FILE", "FILE",
11758  0, 2, 3, 2, _GEANT_RZ_FILE_parameters, 0, 0, gxrz_, (IntFunc*)0,
11759  (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_RZ_FILE_guidance, 0, (char**)0,
11760  (char*)0, (int*)0 };
11761  
11762 static KmParInt    _GEANT_RZ_PQUEST_IQ1_type = { (char*)0, (char*)0, (char*)0,
11763  (char*)0, 0 };
11764 static KmParameter _GEANT_RZ_PQUEST_IQ1 = { "IQ1", 3,
11765  "Lower limit for IQ index", "1", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11766  (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ1_type };
11767 static KmParInt    _GEANT_RZ_PQUEST_IQ2_type = { (char*)0, (char*)0, (char*)0,
11768  (char*)0, 0 };
11769 static KmParameter _GEANT_RZ_PQUEST_IQ2 = { "IQ2", 3,
11770  "Upper limit for IQ index", "20", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11771  (KmParFlag)0, KmTYPE_INT, &_GEANT_RZ_PQUEST_IQ2_type };
11772 static KmParameter *_GEANT_RZ_PQUEST_parameters[] = { &_GEANT_RZ_PQUEST_IQ1,
11773  &_GEANT_RZ_PQUEST_IQ2 };
11774 static char *_GEANT_RZ_PQUEST_guidance[] = {
11775  "Print the array IQUEST in /QUEST/." };
11776 static KmCommand _GEANT_RZ_PQUEST = { &_GEANT_RZ_FILE, "/GEANT/RZ/PQUEST",
11777  "PQUEST", 0, 2, 2, 0, _GEANT_RZ_PQUEST_parameters, 0, 0, gxrz_, (IntFunc*)0,
11778  (SUBROUTINE*)0, (pCharFunc*)0, 1, _GEANT_RZ_PQUEST_guidance, 0, (char**)0,
11779  (char*)0, (int*)0 };
11780  
11781 static char *_GEANT_RZ_guidance[] = { "ZEBRA/RZ commands." };
11782 static KmMenu _GEANT_RZ = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/RZ", "RZ", 2,
11783  &_GEANT_RZ_PQUEST, 1, _GEANT_RZ_guidance };
11784  
11785 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_RZ, "/GEANT", "GEANT", 1,
11786  (KmCommand*)0, 0, (char**)0 };
11787  
11788   klnkmenu( &_GEANT, 921023 );
11789 }
11790  
11791  
11792 #ifdef F77_LCASE
11793 #  define gkscan_ gkscan
11794 #  define gxscan_ gxscan
11795 #endif
11796  
11797 #ifdef F77_UCASE
11798 #  define gkscan_ GKSCAN
11799 #  define gxscan_ GXSCAN
11800 #endif
11801  
11802 #ifdef IBM370
11803 #  pragma linkage(GKSCAN,FORTRAN)
11804 #  pragma linkage(GXSCAN,FORTRAN)
11805 #endif
11806  
11807 extern void gkscan_();
11808 extern void gxscan_();
11809  
11810 void gkscan_()
11811 {
11812  
11813 static KmParInt    _GEANT_SCAN_HSCAN_IDPHI_type = { (char*)0, (char*)0,
11814  (char*)0, (char*)0, 0 };
11815 static KmParameter _GEANT_SCAN_HSCAN_IDPHI = { "IDPHI", 5,
11816  "Histogram/phi identifier", "1000", (char*)0, 8, 0, (char**)0, 0, (char**)0,
11817  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_HSCAN_IDPHI_type };
11818 static KmParameter _GEANT_SCAN_HSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11819  "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11820  (void*)0 };
11821 static char *_GEANT_SCAN_HSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11822  };
11823 static char *_GEANT_SCAN_HSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11824  (char*)0, (char*)0, (char*)0 };
11825 static KmParOption _GEANT_SCAN_HSCAN_CHOPT_type = {
11826  _GEANT_SCAN_HSCAN_CHOPT_text, (int*)0, (int*)0 };
11827 static KmParameter _GEANT_SCAN_HSCAN_CHOPT = { "CHOPT", 5, "List of options",
11828  "OPX", (char*)0, 8, 6, _GEANT_SCAN_HSCAN_CHOPT_range, 6,
11829  _GEANT_SCAN_HSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11830  &_GEANT_SCAN_HSCAN_CHOPT_type };
11831 static KmParameter *_GEANT_SCAN_HSCAN_parameters[] = {
11832  &_GEANT_SCAN_HSCAN_IDPHI, &_GEANT_SCAN_HSCAN_VOLUME, &_GEANT_SCAN_HSCAN_CHOPT
11833  };
11834 static char *_GEANT_SCAN_HSCAN_guidance[] = {
11835  "Generates and plots an histogram of physics quantities such as",
11836  "the total number of radiation lengths or interaction lengths",
11837  "as a function of the SCAN parameter TETA for a given value of PHI.",
11838  "  CHOPT='O' histogram is generated at Exit  of VOLUME.",
11839  "  CHOPT='I' histogram is generated at Entry of VOLUME.",
11840  "  CHOPT='X' radiation lengths", "  CHOPT='L' Interaction lengths",
11841  "  CHOPT='P' Plot the histogram", "If VOLUME='XXXX' Mother volume is used.",
11842  "The histogram identifier IDPHI is used to also identify which",
11843  "PHI division to plot: IPHI=MOD(IDPHI,1000).",
11844  "If IPHI=0, then all PHI divisions are generated (not plotted)",
11845  "with histogram identifiers IDPHI+PHI division number." };
11846 static KmCommand _GEANT_SCAN_HSCAN = {  (KmCommand*)0, "/GEANT/SCAN/HSCAN",
11847  "HSCAN", 0, 2, 3, 1, _GEANT_SCAN_HSCAN_parameters, 0, 0, gxscan_,
11848  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 13, _GEANT_SCAN_HSCAN_guidance,
11849  0, (char**)0, (char*)0, (int*)0 };
11850  
11851 static KmParInt    _GEANT_SCAN_LSCAN_ID_type = { (char*)0, (char*)0, (char*)0,
11852  (char*)0, 0 };
11853 static KmParameter _GEANT_SCAN_LSCAN_ID = { "ID", 2, "Lego plot identifier",
11854  "2000", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
11855  &_GEANT_SCAN_LSCAN_ID_type };
11856 static KmParameter _GEANT_SCAN_LSCAN_VOLUME = { "VOLUME", 6, "Volume name",
11857  "XXXX", (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_CHAR,
11858  (void*)0 };
11859 static char *_GEANT_SCAN_LSCAN_CHOPT_range[] = { " ", "O", "P", "I", "X", "L"
11860  };
11861 static char *_GEANT_SCAN_LSCAN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0,
11862  (char*)0, (char*)0, (char*)0 };
11863 static KmParOption _GEANT_SCAN_LSCAN_CHOPT_type = {
11864  _GEANT_SCAN_LSCAN_CHOPT_text, (int*)0, (int*)0 };
11865 static KmParameter _GEANT_SCAN_LSCAN_CHOPT = { "CHOPT", 5, "List of options",
11866  "OPX", (char*)0, 8, 6, _GEANT_SCAN_LSCAN_CHOPT_range, 6,
11867  _GEANT_SCAN_LSCAN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11868  &_GEANT_SCAN_LSCAN_CHOPT_type };
11869 static KmParameter *_GEANT_SCAN_LSCAN_parameters[] = { &_GEANT_SCAN_LSCAN_ID,
11870  &_GEANT_SCAN_LSCAN_VOLUME, &_GEANT_SCAN_LSCAN_CHOPT };
11871 static char *_GEANT_SCAN_LSCAN_guidance[] = {
11872  "Generates and plot a table of physics quantities such as",
11873  "the total number of radiation lengths or interaction lengths",
11874  "in function of the SCAN parameters TETA,PHI.",
11875  "  CHOPT='O' table is generated at Exit  of VOLUME.",
11876  "  CHOPT='I' table is generated at Entry of VOLUME.",
11877  "  CHOPT='X' radiation lengths", "  CHOPT='L' Interaction lengths",
11878  "  CHOPT='P' Plot the table", "If VOLUME='XXXX' Mother volume is used." };
11879 static KmCommand _GEANT_SCAN_LSCAN = { &_GEANT_SCAN_HSCAN,
11880  "/GEANT/SCAN/LSCAN", "LSCAN", 0, 2, 3, 1, _GEANT_SCAN_LSCAN_parameters, 0, 0,
11881  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 9,
11882  _GEANT_SCAN_LSCAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11883  
11884 static KmParInt    _GEANT_SCAN_PCUTS_IPARAM_type = { "0", "1", "0", "1", 0 };
11885 static KmParameter _GEANT_SCAN_PCUTS_IPARAM = { "IPARAM", 6,
11886  "Parametrization Flag", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
11887  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PCUTS_IPARAM_type };
11888 static KmParReal   _GEANT_SCAN_PCUTS_PCUTGA_type = { (char*)0, (char*)0,
11889  (char*)0, (char*)0, 0 };
11890 static KmParameter _GEANT_SCAN_PCUTS_PCUTGA = { "PCUTGA", 6,
11891  "Parametrization Cut for gammas", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11892  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTGA_type };
11893 static KmParReal   _GEANT_SCAN_PCUTS_PCUTEL_type = { (char*)0, (char*)0,
11894  (char*)0, (char*)0, 0 };
11895 static KmParameter _GEANT_SCAN_PCUTS_PCUTEL = { "PCUTEL", 6,
11896  "Parametrization Cut for electrons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11897  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTEL_type };
11898 static KmParReal   _GEANT_SCAN_PCUTS_PCUTHA_type = { (char*)0, (char*)0,
11899  (char*)0, (char*)0, 0 };
11900 static KmParameter _GEANT_SCAN_PCUTS_PCUTHA = { "PCUTHA", 6,
11901  "Parametrization Cut for charged hadrons", (char*)0, (char*)0, 12, 0,
11902  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11903  &_GEANT_SCAN_PCUTS_PCUTHA_type };
11904 static KmParReal   _GEANT_SCAN_PCUTS_PCUTNE_type = { (char*)0, (char*)0,
11905  (char*)0, (char*)0, 0 };
11906 static KmParameter _GEANT_SCAN_PCUTS_PCUTNE = { "PCUTNE", 6,
11907  "Parametrization Cut for neutral hadrons", (char*)0, (char*)0, 12, 0,
11908  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11909  &_GEANT_SCAN_PCUTS_PCUTNE_type };
11910 static KmParReal   _GEANT_SCAN_PCUTS_PCUTMU_type = { (char*)0, (char*)0,
11911  (char*)0, (char*)0, 0 };
11912 static KmParameter _GEANT_SCAN_PCUTS_PCUTMU = { "PCUTMU", 6,
11913  "Parametrization Cut for muons", (char*)0, (char*)0, 12, 0, (char**)0, 0,
11914  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PCUTS_PCUTMU_type };
11915 static KmParameter *_GEANT_SCAN_PCUTS_parameters[] = {
11916  &_GEANT_SCAN_PCUTS_IPARAM, &_GEANT_SCAN_PCUTS_PCUTGA,
11917  &_GEANT_SCAN_PCUTS_PCUTEL, &_GEANT_SCAN_PCUTS_PCUTHA,
11918  &_GEANT_SCAN_PCUTS_PCUTNE, &_GEANT_SCAN_PCUTS_PCUTMU };
11919 static char *_GEANT_SCAN_PCUTS_guidance[] = {
11920  "Control parametrization at tracking time.",
11921  "     IPARAM=0       No parametrization is performed",
11922  "     IPARAM=1       Parametrization is performed",
11923  "If parametrization is active and a particle falls below its",
11924  "parametrization cut, then the particle will be replaced by",
11925  "a parametrized shower which will be tracked in the SCAN", "geometry." };
11926 static KmCommand _GEANT_SCAN_PCUTS = { &_GEANT_SCAN_LSCAN,
11927  "/GEANT/SCAN/PCUTS", "PCUTS", 0, 2, 6, 0, _GEANT_SCAN_PCUTS_parameters, 0, 0,
11928  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 7,
11929  _GEANT_SCAN_PCUTS_guidance, 0, (char**)0, (char*)0, (int*)0 };
11930  
11931 static char *_GEANT_SCAN_STURN_CHOPT_range[] = { "ON", "OFF", "INIT" };
11932 static char *_GEANT_SCAN_STURN_CHOPT_text[] = { (char*)0, (char*)0, (char*)0 };
11933 static KmParOption _GEANT_SCAN_STURN_CHOPT_type = {
11934  _GEANT_SCAN_STURN_CHOPT_text, (int*)0, (int*)0 };
11935 static KmParameter _GEANT_SCAN_STURN_CHOPT = { "CHOPT", 5,
11936  "SCAN mode setting", (char*)0, (char*)0, 8, 3, _GEANT_SCAN_STURN_CHOPT_range,
11937  3, _GEANT_SCAN_STURN_CHOPT_range, (KmParFlag)0, KmTYPE_OPTION,
11938  &_GEANT_SCAN_STURN_CHOPT_type };
11939 static KmParameter *_GEANT_SCAN_STURN_parameters[] = {
11940  &_GEANT_SCAN_STURN_CHOPT };
11941 static char *_GEANT_SCAN_STURN_guidance[] = {
11942  "Switch on/off SCAN mode. If SCAN mode is on, SCAN geantinos",
11943  "are generated and tracked to fill (or complete) the current",
11944  "scan data structure. If SCAN mode is off, normal kinematics",
11945  "generation and tracking will take place. If INIT is given,",
11946  "the current SCAN data structure (if any) will be dropped",
11947  "and SCAN mode will be turned on." };
11948 static KmCommand _GEANT_SCAN_STURN = { &_GEANT_SCAN_PCUTS,
11949  "/GEANT/SCAN/STURN", "STURN", 0, 2, 1, 1, _GEANT_SCAN_STURN_parameters, 0, 0,
11950  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 6,
11951  _GEANT_SCAN_STURN_guidance, 0, (char**)0, (char*)0, (int*)0 };
11952  
11953 static KmParReal   _GEANT_SCAN_SFACTORS_FACTX0_type = { (char*)0, (char*)0,
11954  (char*)0, (char*)0, 0 };
11955 static KmParameter _GEANT_SCAN_SFACTORS_FACTX0 = { "FACTX0", 6,
11956  "Scale factor for SX0", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11957  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTX0_type };
11958 static KmParReal   _GEANT_SCAN_SFACTORS_FACTL_type = { (char*)0, (char*)0,
11959  (char*)0, (char*)0, 0 };
11960 static KmParameter _GEANT_SCAN_SFACTORS_FACTL = { "FACTL", 5,
11961  "Scale factor for SL", "1000.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11962  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTL_type };
11963 static KmParReal   _GEANT_SCAN_SFACTORS_FACTR_type = { (char*)0, (char*)0,
11964  (char*)0, (char*)0, 0 };
11965 static KmParameter _GEANT_SCAN_SFACTORS_FACTR = { "FACTR", 5,
11966  "Scale factor for R", "100.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
11967  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_SFACTORS_FACTR_type };
11968 static KmParameter *_GEANT_SCAN_SFACTORS_parameters[] = {
11969  &_GEANT_SCAN_SFACTORS_FACTX0, &_GEANT_SCAN_SFACTORS_FACTL,
11970  &_GEANT_SCAN_SFACTORS_FACTR };
11971 static char *_GEANT_SCAN_SFACTORS_guidance[] = {
11972  "Set scale factors for SX0,SL and R. The given scale factors must be",
11973  "such that:", "  SX0*FACTX0 < 2**15-1 (32767)",
11974  "  SL*FACTL   < 2**10-1 (1023)", "  SR*FACTR   < 2**17-1 (131071)" };
11975 static KmCommand _GEANT_SCAN_SFACTORS = { &_GEANT_SCAN_STURN,
11976  "/GEANT/SCAN/SFACTORS", "SFACTORS", 0, 2, 3, 3,
11977  _GEANT_SCAN_SFACTORS_parameters, 0, 0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0,
11978  (pCharFunc*)0, 5, _GEANT_SCAN_SFACTORS_guidance, 0, (char**)0, (char*)0,
11979  (int*)0 };
11980  
11981 static KmParReal   _GEANT_SCAN_VERTEX_VX_type = { (char*)0, (char*)0,
11982  (char*)0, (char*)0, 0 };
11983 static KmParameter _GEANT_SCAN_VERTEX_VX = { "VX", 2, "Scan X-origin", "0.",
11984  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11985  &_GEANT_SCAN_VERTEX_VX_type };
11986 static KmParReal   _GEANT_SCAN_VERTEX_VY_type = { (char*)0, (char*)0,
11987  (char*)0, (char*)0, 0 };
11988 static KmParameter _GEANT_SCAN_VERTEX_VY = { "VY", 2, "Scan Y-origin", "0.",
11989  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11990  &_GEANT_SCAN_VERTEX_VY_type };
11991 static KmParReal   _GEANT_SCAN_VERTEX_VZ_type = { (char*)0, (char*)0,
11992  (char*)0, (char*)0, 0 };
11993 static KmParameter _GEANT_SCAN_VERTEX_VZ = { "VZ", 2, "Scan Z-origin", "0.",
11994  (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
11995  &_GEANT_SCAN_VERTEX_VZ_type };
11996 static KmParameter *_GEANT_SCAN_VERTEX_parameters[] = {
11997  &_GEANT_SCAN_VERTEX_VX, &_GEANT_SCAN_VERTEX_VY, &_GEANT_SCAN_VERTEX_VZ };
11998 static char *_GEANT_SCAN_VERTEX_guidance[] = {
11999  "All Geantinos tracked will start from position VX,VY,VZ." };
12000 static KmCommand _GEANT_SCAN_VERTEX = { &_GEANT_SCAN_SFACTORS,
12001  "/GEANT/SCAN/VERTEX", "VERTEX", 0, 2, 3, 3, _GEANT_SCAN_VERTEX_parameters, 0,
12002  0, gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
12003  _GEANT_SCAN_VERTEX_guidance, 0, (char**)0, (char*)0, (int*)0 };
12004  
12005 static KmParameter _GEANT_SCAN_SLIST_LIST = { "LIST", 4,
12006  "List of master volumes", (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0,
12007  (KmParFlag)0, KmTYPE_CHAR,  (void*)0 };
12008 static KmParameter *_GEANT_SCAN_SLIST_parameters[] = { &_GEANT_SCAN_SLIST_LIST
12009  };
12010 static char *_GEANT_SCAN_SLIST_guidance[] = {
12011  "Only boundary crossings of volumes given in LIST will be seen",
12012  "in the SCAN geometry. If no parameters are given, the current",
12013  "SCAN volumes will be listed. If a full stop (.) is given, the list",
12014  "of scan volumes will be erased." };
12015 static KmCommand _GEANT_SCAN_SLIST = { &_GEANT_SCAN_VERTEX,
12016  "/GEANT/SCAN/SLIST", "SLIST", 0, 2, 1, 1, _GEANT_SCAN_SLIST_parameters, 0, 0,
12017  gxscan_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12018  _GEANT_SCAN_SLIST_guidance, 0, (char**)0, (char*)0, (int*)0 };
12019  
12020 static KmParInt    _GEANT_SCAN_TETA_NTETA_type = { (char*)0, (char*)0,
12021  (char*)0, (char*)0, 0 };
12022 static KmParameter _GEANT_SCAN_TETA_NTETA = { "NTETA", 5,
12023  "Number of TETA divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
12024  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_NTETA_type };
12025 static KmParReal   _GEANT_SCAN_TETA_TETMIN_type = { (char*)0, (char*)0,
12026  (char*)0, (char*)0, 0 };
12027 static KmParameter _GEANT_SCAN_TETA_TETMIN = { "TETMIN", 6,
12028  "Minimum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
12029  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMIN_type };
12030 static KmParReal   _GEANT_SCAN_TETA_TETMAX_type = { (char*)0, (char*)0,
12031  (char*)0, (char*)0, 0 };
12032 static KmParameter _GEANT_SCAN_TETA_TETMAX = { "TETMAX", 6,
12033  "Maximum value of TETA", (char*)0, (char*)0, 12, 0, (char**)0, 0, (char**)0,
12034  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_TETA_TETMAX_type };
12035 static KmParInt    _GEANT_SCAN_TETA_DIVTYP_type = { "1", "3", "1", "3", 0 };
12036 static KmParameter _GEANT_SCAN_TETA_DIVTYP = { "DIVTYP", 6,
12037  "Type of TETA division", (char*)0, (char*)0, 2, 0, (char**)0, 0, (char**)0,
12038  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_TETA_DIVTYP_type };
12039 static KmParameter *_GEANT_SCAN_TETA_parameters[] = { &_GEANT_SCAN_TETA_NTETA,
12040  &_GEANT_SCAN_TETA_TETMIN, &_GEANT_SCAN_TETA_TETMAX, &_GEANT_SCAN_TETA_DIVTYP
12041  };
12042 static char *_GEANT_SCAN_TETA_guidance[] = {
12043  "To specify number of divisions along TETA.",
12044  "If DIVTYP=1 divisions in pseudo-rapidity ETA.",
12045  "If DIVTYP=2 divisions in degrees following the THETA angle.",
12046  "If DIVTYP=3 divisions in cos(TETA).",
12047  "If no parameter is given, the current values of the parameters",
12048  "are displayed." };
12049 static KmCommand _GEANT_SCAN_TETA = { &_GEANT_SCAN_SLIST, "/GEANT/SCAN/TETA",
12050  "TETA", 0, 2, 4, 1, _GEANT_SCAN_TETA_parameters, 0, 0, gxscan_, (IntFunc*)0,
12051  (SUBROUTINE*)0, (pCharFunc*)0, 6, _GEANT_SCAN_TETA_guidance, 0, (char**)0,
12052  (char*)0, (int*)0 };
12053  
12054 static KmParInt    _GEANT_SCAN_PHI_NPHI_type = { (char*)0, (char*)0, (char*)0,
12055  (char*)0, 0 };
12056 static KmParameter _GEANT_SCAN_PHI_NPHI = { "NPHI", 4,
12057  "Number of PHI divisions", "90", (char*)0, 8, 0, (char**)0, 0, (char**)0,
12058  (KmParFlag)0, KmTYPE_INT, &_GEANT_SCAN_PHI_NPHI_type };
12059 static KmParReal   _GEANT_SCAN_PHI_PHIMIN_type = { "0.", "360.", "0.", "360.",
12060  0 };
12061 static KmParameter _GEANT_SCAN_PHI_PHIMIN = { "PHIMIN", 6,
12062  "Minimum PHI in degrees", "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12063  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMIN_type };
12064 static KmParReal   _GEANT_SCAN_PHI_PHIMAX_type = { "0.", "360.", "0.", "360.",
12065  0 };
12066 static KmParameter _GEANT_SCAN_PHI_PHIMAX = { "PHIMAX", 6,
12067  "Maximum PHI in degrees", "360.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12068  (KmParFlag)0, KmTYPE_REAL, &_GEANT_SCAN_PHI_PHIMAX_type };
12069 static KmParameter *_GEANT_SCAN_PHI_parameters[] = { &_GEANT_SCAN_PHI_NPHI,
12070  &_GEANT_SCAN_PHI_PHIMIN, &_GEANT_SCAN_PHI_PHIMAX };
12071 static char *_GEANT_SCAN_PHI_guidance[] = {
12072  "To specify number of divisions along PHI. If no parameter is",
12073  "given, the current values of the parameters are displayed." };
12074 static KmCommand _GEANT_SCAN_PHI = { &_GEANT_SCAN_TETA, "/GEANT/SCAN/PHI",
12075  "PHI", 0, 2, 3, 1, _GEANT_SCAN_PHI_parameters, 0, 0, gxscan_, (IntFunc*)0,
12076  (SUBROUTINE*)0, (pCharFunc*)0, 2, _GEANT_SCAN_PHI_guidance, 0, (char**)0,
12077  (char*)0, (int*)0 };
12078  
12079 static char *_GEANT_SCAN_guidance[] = {
12080  "To define parameters for the SCAN geometry. If the routine GUSTEP",
12081  "and GUKINE are properly instrumented (see examples in GEANX),",
12082  "when the TRI command is entered NTETA Geantinos will be",
12083  "tracked through the real detector starting at the vertex position",
12084  "defined by the command vertex. A simplified version of the geometry",
12085  "is automatically generated in (ETA,PHI) or (THETA,PHI) following",
12086  "the option given in the command TETA. The data structure LSCAN",
12087  "generated may be saved on an RZ file for subsequent processing.",
12088  "This data structure may be used for fast parametrization techniques." };
12089 static KmMenu _GEANT_SCAN = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/SCAN", "SCAN",
12090  2, &_GEANT_SCAN_PHI, 9, _GEANT_SCAN_guidance };
12091  
12092 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_SCAN, "/GEANT", "GEANT", 1,
12093  (KmCommand*)0, 0, (char**)0 };
12094  
12095   klnkmenu( &_GEANT, 921023 );
12096 }
12097  
12098  
12099 #ifdef F77_LCASE
12100 #  define gkphys_ gkphys
12101 #  define gxphys_ gxphys
12102 #endif
12103  
12104 #ifdef F77_UCASE
12105 #  define gkphys_ GKPHYS
12106 #  define gxphys_ GXPHYS
12107 #endif
12108  
12109 #ifdef IBM370
12110 #  pragma linkage(GKPHYS,FORTRAN)
12111 #  pragma linkage(GXPHYS,FORTRAN)
12112 #endif
12113  
12114 extern void gkphys_();
12115 extern void gxphys_();
12116  
12117 void gkphys_()
12118 {
12119  
12120 static char *_GEANT_PHYSICS_PHYSI_guidance[] = {
12121  "Call the GEANT initialisation routine GPHYSI to recompute",
12122  "the tables of cross-sections and energy loss. This command",
12123  "must be invoked after CUTS, LOSS or ERAN commands." };
12124 static KmCommand _GEANT_PHYSICS_PHYSI = {  (KmCommand*)0,
12125  "/GEANT/PHYSICS/PHYSI", "PHYSI", 0, 2, 0, 0, (KmParameter**)0, 0, 0, gxphys_,
12126  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3, _GEANT_PHYSICS_PHYSI_guidance,
12127  0, (char**)0, (char*)0, (int*)0 };
12128  
12129 static KmParInt    _GEANT_PHYSICS_DRPRT_IPART_type = { (char*)0, (char*)0,
12130  (char*)0, (char*)0, 0 };
12131 static KmParameter _GEANT_PHYSICS_DRPRT_IPART = { "IPART", 5,
12132  "GEANT particle number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
12133  (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IPART_type };
12134 static KmParInt    _GEANT_PHYSICS_DRPRT_IMATE_type = { (char*)0, (char*)0,
12135  (char*)0, (char*)0, 0 };
12136 static KmParameter _GEANT_PHYSICS_DRPRT_IMATE = { "IMATE", 5,
12137  "GEANT material number", (char*)0, (char*)0, 8, 0, (char**)0, 0, (char**)0,
12138  (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_DRPRT_IMATE_type };
12139 static KmParReal   _GEANT_PHYSICS_DRPRT_STEP_type = { (char*)0, (char*)0,
12140  (char*)0, (char*)0, 0 };
12141 static KmParameter _GEANT_PHYSICS_DRPRT_STEP = { "STEP", 4,
12142  "step length in centimeters", (char*)0, (char*)0, 12, 0, (char**)0, 0,
12143  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_DRPRT_STEP_type };
12144 static KmParInt    _GEANT_PHYSICS_DRPRT_NPOINT_type = { "2", "100", "2",
12145  "100", 0 };
12146 static KmParameter _GEANT_PHYSICS_DRPRT_NPOINT = { "NPOINT", 6,
12147  "number of logarithmically spaced energy points", "10", (char*)0, 4, 0,
12148  (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12149  &_GEANT_PHYSICS_DRPRT_NPOINT_type };
12150 static KmParameter *_GEANT_PHYSICS_DRPRT_parameters[] = {
12151  &_GEANT_PHYSICS_DRPRT_IPART, &_GEANT_PHYSICS_DRPRT_IMATE,
12152  &_GEANT_PHYSICS_DRPRT_STEP, &_GEANT_PHYSICS_DRPRT_NPOINT };
12153 static char *_GEANT_PHYSICS_DRPRT_guidance[] = {
12154  "This routine prints the relevant parameters linked with the energy loss",
12155  "fluctuation." };
12156 static KmCommand _GEANT_PHYSICS_DRPRT = { &_GEANT_PHYSICS_PHYSI,
12157  "/GEANT/PHYSICS/DRPRT", "DRPRT", 0, 2, 4, 3, _GEANT_PHYSICS_DRPRT_parameters,
12158  0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 2,
12159  _GEANT_PHYSICS_DRPRT_guidance, 0, (char**)0, (char*)0, (int*)0 };
12160  
12161 static KmParReal   _GEANT_PHYSICS_CUTS_CUTGAM_type = { (char*)0, (char*)0,
12162  (char*)0, (char*)0, 0 };
12163 static KmParameter _GEANT_PHYSICS_CUTS_CUTGAM = { "CUTGAM", 6,
12164  "Cut for gammas", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12165  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTGAM_type };
12166 static KmParReal   _GEANT_PHYSICS_CUTS_CUTELE_type = { (char*)0, (char*)0,
12167  (char*)0, (char*)0, 0 };
12168 static KmParameter _GEANT_PHYSICS_CUTS_CUTELE = { "CUTELE", 6,
12169  "Cut for electrons", "0.001", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12170  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTELE_type };
12171 static KmParReal   _GEANT_PHYSICS_CUTS_CUTHAD_type = { (char*)0, (char*)0,
12172  (char*)0, (char*)0, 0 };
12173 static KmParameter _GEANT_PHYSICS_CUTS_CUTHAD = { "CUTHAD", 6,
12174  "Cut for charged hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12175  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTHAD_type };
12176 static KmParReal   _GEANT_PHYSICS_CUTS_CUTNEU_type = { (char*)0, (char*)0,
12177  (char*)0, (char*)0, 0 };
12178 static KmParameter _GEANT_PHYSICS_CUTS_CUTNEU = { "CUTNEU", 6,
12179  "Cut for neutral hadrons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12180  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTNEU_type };
12181 static KmParReal   _GEANT_PHYSICS_CUTS_CUTMUO_type = { (char*)0, (char*)0,
12182  (char*)0, (char*)0, 0 };
12183 static KmParameter _GEANT_PHYSICS_CUTS_CUTMUO = { "CUTMUO", 6,
12184  "Cut for muons", "0.01", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12185  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_CUTMUO_type };
12186 static KmParReal   _GEANT_PHYSICS_CUTS_BCUTE_type = { (char*)0, (char*)0,
12187  (char*)0, (char*)0, 0 };
12188 static KmParameter _GEANT_PHYSICS_CUTS_BCUTE = { "BCUTE", 5,
12189  "Cut for electron brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12190  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTE_type };
12191 static KmParReal   _GEANT_PHYSICS_CUTS_BCUTM_type = { (char*)0, (char*)0,
12192  (char*)0, (char*)0, 0 };
12193 static KmParameter _GEANT_PHYSICS_CUTS_BCUTM = { "BCUTM", 5,
12194  "Cut for muon brems.", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12195  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_BCUTM_type };
12196 static KmParReal   _GEANT_PHYSICS_CUTS_DCUTE_type = { (char*)0, (char*)0,
12197  (char*)0, (char*)0, 0 };
12198 static KmParameter _GEANT_PHYSICS_CUTS_DCUTE = { "DCUTE", 5,
12199  "Cut for electron delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0,
12200  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTE_type };
12201 static KmParReal   _GEANT_PHYSICS_CUTS_DCUTM_type = { (char*)0, (char*)0,
12202  (char*)0, (char*)0, 0 };
12203 static KmParameter _GEANT_PHYSICS_CUTS_DCUTM = { "DCUTM", 5,
12204  "Cut for muon delta-rays", "-1.", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12205  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_DCUTM_type };
12206 static KmParReal   _GEANT_PHYSICS_CUTS_PPCUTM_type = { (char*)0, (char*)0,
12207  (char*)0, (char*)0, 0 };
12208 static KmParameter _GEANT_PHYSICS_CUTS_PPCUTM = { "PPCUTM", 6,
12209  "Cut for e+e- pairs by muons", "0.01", (char*)0, 12, 0, (char**)0, 0,
12210  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_PPCUTM_type };
12211 static KmParReal   _GEANT_PHYSICS_CUTS_TOFMAX_type = { (char*)0, (char*)0,
12212  (char*)0, (char*)0, 0 };
12213 static KmParameter _GEANT_PHYSICS_CUTS_TOFMAX = { "TOFMAX", 6,
12214  "Time of flight cut", "1.E+10", (char*)0, 12, 0, (char**)0, 0, (char**)0,
12215  (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_CUTS_TOFMAX_type };
12216 static KmParReal   _GEANT_PHYSICS_CUTS_GCUTS_type = { (char*)0, (char*)0,
12217  (char*)0, (char*)0, 0 };
12218 static KmParameter _GEANT_PHYSICS_CUTS_GCUTS = { "GCUTS", 5, "5 user words",
12219  "0.", (char*)0, 12, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_REAL,
12220  &_GEANT_PHYSICS_CUTS_GCUTS_type };
12221 static KmParameter *_GEANT_PHYSICS_CUTS_parameters[] = {
12222  &_GEANT_PHYSICS_CUTS_CUTGAM, &_GEANT_PHYSICS_CUTS_CUTELE,
12223  &_GEANT_PHYSICS_CUTS_CUTHAD, &_GEANT_PHYSICS_CUTS_CUTNEU,
12224  &_GEANT_PHYSICS_CUTS_CUTMUO, &_GEANT_PHYSICS_CUTS_BCUTE,
12225  &_GEANT_PHYSICS_CUTS_BCUTM, &_GEANT_PHYSICS_CUTS_DCUTE,
12226  &_GEANT_PHYSICS_CUTS_DCUTM, &_GEANT_PHYSICS_CUTS_PPCUTM,
12227  &_GEANT_PHYSICS_CUTS_TOFMAX, &_GEANT_PHYSICS_CUTS_GCUTS };
12228 static char *_GEANT_PHYSICS_CUTS_guidance[] = {
12229  "To change physics cuts. If no parameter is given, the list",
12230  "of the current cuts is printed.",
12231  " If the default values (-1.) for       BCUTE ,BCUTM ,DCUTE ,DCUTM",
12232  " are not modified, they will be set to CUTGAM,CUTGAM,CUTELE,CUTELE",
12233  " respectively.", "If one of the parameters from CUTGAM to PPCUTM included",
12234  "is modified, cross-sections and energy loss tables must be",
12235  "recomputed via the command 'PHYSI'." };
12236 static KmCommand _GEANT_PHYSICS_CUTS = { &_GEANT_PHYSICS_DRPRT,
12237  "/GEANT/PHYSICS/CUTS", "CUTS", 0, 2, 12, 0, _GEANT_PHYSICS_CUTS_parameters,
12238  0, 0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
12239  _GEANT_PHYSICS_CUTS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12240  
12241 static char *_GEANT_PHYSICS_SYNC_ISYNC_range[] = { "0", "1" };
12242 static KmParInt    _GEANT_PHYSICS_SYNC_ISYNC_type = { (char*)0, (char*)0,
12243  (char*)0, (char*)0, 0 };
12244 static KmParameter _GEANT_PHYSICS_SYNC_ISYNC = { "ISYNC", 5, "Flag ISYNC",
12245  "1", (char*)0, 8, 2, _GEANT_PHYSICS_SYNC_ISYNC_range, 2,
12246  _GEANT_PHYSICS_SYNC_ISYNC_range, (KmParFlag)0, KmTYPE_INT,
12247  &_GEANT_PHYSICS_SYNC_ISYNC_type };
12248 static KmParameter *_GEANT_PHYSICS_SYNC_parameters[] = {
12249  &_GEANT_PHYSICS_SYNC_ISYNC };
12250 static char *_GEANT_PHYSICS_SYNC_guidance[] = {
12251  "To control synchrotron radiation:", " ISYNC=0 no synchrotron radiation;",
12252  "      =1 synchrotron radiation." };
12253 static KmCommand _GEANT_PHYSICS_SYNC = { &_GEANT_PHYSICS_CUTS,
12254  "/GEANT/PHYSICS/SYNC", "SYNC", 0, 2, 1, 0, _GEANT_PHYSICS_SYNC_parameters, 0,
12255  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12256  _GEANT_PHYSICS_SYNC_guidance, 0, (char**)0, (char*)0, (int*)0 };
12257  
12258 static char *_GEANT_PHYSICS_STRA_ISTRA_range[] = { "0", "1", "2" };
12259 static KmParInt    _GEANT_PHYSICS_STRA_ISTRA_type = { (char*)0, (char*)0,
12260  (char*)0, (char*)0, 0 };
12261 static KmParameter _GEANT_PHYSICS_STRA_ISTRA = { "ISTRA", 5, "Flag ISTRA",
12262  "0", (char*)0, 8, 3, _GEANT_PHYSICS_STRA_ISTRA_range, 3,
12263  _GEANT_PHYSICS_STRA_ISTRA_range, (KmParFlag)0, KmTYPE_INT,
12264  &_GEANT_PHYSICS_STRA_ISTRA_type };
12265 static KmParameter *_GEANT_PHYSICS_STRA_parameters[] = {
12266  &_GEANT_PHYSICS_STRA_ISTRA };
12267 static char *_GEANT_PHYSICS_STRA_guidance[] = {
12268  "To control energy loss fluctuation model:", " ISTRA=0 Urban model;",
12269  "      =1 PAI model;", "      =2 PAI+ASHO model (not active at the moment)."
12270  };
12271 static KmCommand _GEANT_PHYSICS_STRA = { &_GEANT_PHYSICS_SYNC,
12272  "/GEANT/PHYSICS/STRA", "STRA", 0, 2, 1, 0, _GEANT_PHYSICS_STRA_parameters, 0,
12273  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12274  _GEANT_PHYSICS_STRA_guidance, 0, (char**)0, (char*)0, (int*)0 };
12275  
12276 static char *_GEANT_PHYSICS_RAYL_IRAYL_range[] = { "0", "1" };
12277 static KmParInt    _GEANT_PHYSICS_RAYL_IRAYL_type = { (char*)0, (char*)0,
12278  (char*)0, (char*)0, 0 };
12279 static KmParameter _GEANT_PHYSICS_RAYL_IRAYL = { "IRAYL", 5, "Flag IRAYL",
12280  "1", (char*)0, 8, 2, _GEANT_PHYSICS_RAYL_IRAYL_range, 2,
12281  _GEANT_PHYSICS_RAYL_IRAYL_range, (KmParFlag)0, KmTYPE_INT,
12282  &_GEANT_PHYSICS_RAYL_IRAYL_type };
12283 static KmParameter *_GEANT_PHYSICS_RAYL_parameters[] = {
12284  &_GEANT_PHYSICS_RAYL_IRAYL };
12285 static char *_GEANT_PHYSICS_RAYL_guidance[] = {
12286  "To control Rayleigh scattering.", " IRAYL=0 no Rayleigh scattering.",
12287  "      =1 Rayleigh." };
12288 static KmCommand _GEANT_PHYSICS_RAYL = { &_GEANT_PHYSICS_STRA,
12289  "/GEANT/PHYSICS/RAYL", "RAYL", 0, 2, 1, 0, _GEANT_PHYSICS_RAYL_parameters, 0,
12290  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12291  _GEANT_PHYSICS_RAYL_guidance, 0, (char**)0, (char*)0, (int*)0 };
12292  
12293 static char *_GEANT_PHYSICS_PHOT_IPHOT_range[] = { "0", "1", "2" };
12294 static KmParInt    _GEANT_PHYSICS_PHOT_IPHOT_type = { (char*)0, (char*)0,
12295  (char*)0, (char*)0, 0 };
12296 static KmParameter _GEANT_PHYSICS_PHOT_IPHOT = { "IPHOT", 5, "Flag IPHOT",
12297  "1", (char*)0, 8, 3, _GEANT_PHYSICS_PHOT_IPHOT_range, 3,
12298  _GEANT_PHYSICS_PHOT_IPHOT_range, (KmParFlag)0, KmTYPE_INT,
12299  &_GEANT_PHYSICS_PHOT_IPHOT_type };
12300 static KmParameter *_GEANT_PHYSICS_PHOT_parameters[] = {
12301  &_GEANT_PHYSICS_PHOT_IPHOT };
12302 static char *_GEANT_PHYSICS_PHOT_guidance[] = { "To control Photo effect.",
12303  " IPHOT=0 no photo electric effect.",
12304  "      =1 Photo effect. Electron processed.",
12305  "      =2 Photo effect. No electron stored." };
12306 static KmCommand _GEANT_PHYSICS_PHOT = { &_GEANT_PHYSICS_RAYL,
12307  "/GEANT/PHYSICS/PHOT", "PHOT", 0, 2, 1, 0, _GEANT_PHYSICS_PHOT_parameters, 0,
12308  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12309  _GEANT_PHYSICS_PHOT_guidance, 0, (char**)0, (char*)0, (int*)0 };
12310  
12311 static char *_GEANT_PHYSICS_PFIS_IPFIS_range[] = { "0", "1", "2" };
12312 static KmParInt    _GEANT_PHYSICS_PFIS_IPFIS_type = { (char*)0, (char*)0,
12313  (char*)0, (char*)0, 0 };
12314 static KmParameter _GEANT_PHYSICS_PFIS_IPFIS = { "IPFIS", 5, "Flag IPFIS",
12315  "1", (char*)0, 8, 3, _GEANT_PHYSICS_PFIS_IPFIS_range, 3,
12316  _GEANT_PHYSICS_PFIS_IPFIS_range, (KmParFlag)0, KmTYPE_INT,
12317  &_GEANT_PHYSICS_PFIS_IPFIS_type };
12318 static KmParameter *_GEANT_PHYSICS_PFIS_parameters[] = {
12319  &_GEANT_PHYSICS_PFIS_IPFIS };
12320 static char *_GEANT_PHYSICS_PFIS_guidance[] = {
12321  "To control photo fission mechanism.", " IPFIS=0 no photo fission.",
12322  "      =1 Photo fission. secondaries processed.",
12323  "      =2 Photo fission. No secondaries stored." };
12324 static KmCommand _GEANT_PHYSICS_PFIS = { &_GEANT_PHYSICS_PHOT,
12325  "/GEANT/PHYSICS/PFIS", "PFIS", 0, 2, 1, 0, _GEANT_PHYSICS_PFIS_parameters, 0,
12326  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12327  _GEANT_PHYSICS_PFIS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12328  
12329 static char *_GEANT_PHYSICS_PAIR_IPAIR_range[] = { "0", "1", "2" };
12330 static KmParInt    _GEANT_PHYSICS_PAIR_IPAIR_type = { (char*)0, (char*)0,
12331  (char*)0, (char*)0, 0 };
12332 static KmParameter _GEANT_PHYSICS_PAIR_IPAIR = { "IPAIR", 5, "Flag IPAIR",
12333  "1", (char*)0, 8, 3, _GEANT_PHYSICS_PAIR_IPAIR_range, 3,
12334  _GEANT_PHYSICS_PAIR_IPAIR_range, (KmParFlag)0, KmTYPE_INT,
12335  &_GEANT_PHYSICS_PAIR_IPAIR_type };
12336 static KmParameter *_GEANT_PHYSICS_PAIR_parameters[] = {
12337  &_GEANT_PHYSICS_PAIR_IPAIR };
12338 static char *_GEANT_PHYSICS_PAIR_guidance[] = {
12339  "To control pair production mechanism.", " IPAIR=0 no pair production.",
12340  "      =1 Pair production. secondaries processed.",
12341  "      =2 Pair production. No secondaries stored." };
12342 static KmCommand _GEANT_PHYSICS_PAIR = { &_GEANT_PHYSICS_PFIS,
12343  "/GEANT/PHYSICS/PAIR", "PAIR", 0, 2, 1, 0, _GEANT_PHYSICS_PAIR_parameters, 0,
12344  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12345  _GEANT_PHYSICS_PAIR_guidance, 0, (char**)0, (char*)0, (int*)0 };
12346  
12347 static char *_GEANT_PHYSICS_MUNU_IMUNU_range[] = { "0", "1", "2" };
12348 static KmParInt    _GEANT_PHYSICS_MUNU_IMUNU_type = { (char*)0, (char*)0,
12349  (char*)0, (char*)0, 0 };
12350 static KmParameter _GEANT_PHYSICS_MUNU_IMUNU = { "IMUNU", 5, "Flag IMUNU",
12351  "1", (char*)0, 8, 3, _GEANT_PHYSICS_MUNU_IMUNU_range, 3,
12352  _GEANT_PHYSICS_MUNU_IMUNU_range, (KmParFlag)0, KmTYPE_INT,
12353  &_GEANT_PHYSICS_MUNU_IMUNU_type };
12354 static KmParameter *_GEANT_PHYSICS_MUNU_parameters[] = {
12355  &_GEANT_PHYSICS_MUNU_IMUNU };
12356 static char *_GEANT_PHYSICS_MUNU_guidance[] = {
12357  "To control muon nuclear interactions.",
12358  " IMUNU=0 no muon-nuclear interactions.",
12359  "      =1 Nuclear interactions. Secondaries processed.",
12360  "      =2 Nuclear interactions. Secondaries not processed." };
12361 static KmCommand _GEANT_PHYSICS_MUNU = { &_GEANT_PHYSICS_PAIR,
12362  "/GEANT/PHYSICS/MUNU", "MUNU", 0, 2, 1, 0, _GEANT_PHYSICS_MUNU_parameters, 0,
12363  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12364  _GEANT_PHYSICS_MUNU_guidance, 0, (char**)0, (char*)0, (int*)0 };
12365  
12366 static char *_GEANT_PHYSICS_MULS_IMULS_range[] = { "0", "1", "2", "3" };
12367 static KmParInt    _GEANT_PHYSICS_MULS_IMULS_type = { (char*)0, (char*)0,
12368  (char*)0, (char*)0, 0 };
12369 static KmParameter _GEANT_PHYSICS_MULS_IMULS = { "IMULS", 5, "Flag IMULS",
12370  "1", (char*)0, 8, 4, _GEANT_PHYSICS_MULS_IMULS_range, 4,
12371  _GEANT_PHYSICS_MULS_IMULS_range, (KmParFlag)0, KmTYPE_INT,
12372  &_GEANT_PHYSICS_MULS_IMULS_type };
12373 static KmParameter *_GEANT_PHYSICS_MULS_parameters[] = {
12374  &_GEANT_PHYSICS_MULS_IMULS };
12375 static char *_GEANT_PHYSICS_MULS_guidance[] = {
12376  "To control multiple scattering.", " IMULS=0 no multiple scattering.",
12377  "      =1 Moliere or Coulomb scattering.",
12378  "      =2 Moliere or Coulomb scattering.", "      =3 Gaussian scattering." };
12379 static KmCommand _GEANT_PHYSICS_MULS = { &_GEANT_PHYSICS_MUNU,
12380  "/GEANT/PHYSICS/MULS", "MULS", 0, 2, 1, 0, _GEANT_PHYSICS_MULS_parameters, 0,
12381  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 5,
12382  _GEANT_PHYSICS_MULS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12383  
12384 static char *_GEANT_PHYSICS_LOSS_ILOSS_range[] = { "0", "1", "2", "3", "4" };
12385 static KmParInt    _GEANT_PHYSICS_LOSS_ILOSS_type = { (char*)0, (char*)0,
12386  (char*)0, (char*)0, 0 };
12387 static KmParameter _GEANT_PHYSICS_LOSS_ILOSS = { "ILOSS", 5, "Flag ILOSS",
12388  "2", (char*)0, 8, 5, _GEANT_PHYSICS_LOSS_ILOSS_range, 5,
12389  _GEANT_PHYSICS_LOSS_ILOSS_range, (KmParFlag)0, KmTYPE_INT,
12390  &_GEANT_PHYSICS_LOSS_ILOSS_type };
12391 static KmParameter *_GEANT_PHYSICS_LOSS_parameters[] = {
12392  &_GEANT_PHYSICS_LOSS_ILOSS };
12393 static char *_GEANT_PHYSICS_LOSS_guidance[] = { "To control energy loss.",
12394  " ILOSS=0 no energy loss;", "      =1 restricted energy loss fluctuations;",
12395  "      =2 complete energy loss fluctuations;", "      =3 same as 1;",
12396  "      =4 no energy loss fluctuations.",
12397  "If the value ILOSS is changed, then cross-sections and energy loss",
12398  "tables must be recomputed via the command 'PHYSI'." };
12399 static KmCommand _GEANT_PHYSICS_LOSS = { &_GEANT_PHYSICS_MULS,
12400  "/GEANT/PHYSICS/LOSS", "LOSS", 0, 2, 1, 0, _GEANT_PHYSICS_LOSS_parameters, 0,
12401  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 8,
12402  _GEANT_PHYSICS_LOSS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12403  
12404 static KmParInt    _GEANT_PHYSICS_LABS_LABS_type = { (char*)0, (char*)0,
12405  (char*)0, (char*)0, 0 };
12406 static KmParameter _GEANT_PHYSICS_LABS_LABS = { "LABS", 4, "Flag LABS", "0",
12407  (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12408  &_GEANT_PHYSICS_LABS_LABS_type };
12409 static KmParameter *_GEANT_PHYSICS_LABS_parameters[] = {
12410  &_GEANT_PHYSICS_LABS_LABS };
12411 static char *_GEANT_PHYSICS_LABS_guidance[] = {
12412  "To control absorbtion of Cerenkov photons:",
12413  "    LABS=0 no absorbtion of photons;", "    LABS=1 absorbtion of photons;" };
12414 static KmCommand _GEANT_PHYSICS_LABS = { &_GEANT_PHYSICS_LOSS,
12415  "/GEANT/PHYSICS/LABS", "LABS", 0, 2, 1, 0, _GEANT_PHYSICS_LABS_parameters, 0,
12416  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12417  _GEANT_PHYSICS_LABS_guidance, 0, (char**)0, (char*)0, (int*)0 };
12418  
12419 static KmParInt    _GEANT_PHYSICS_HADR_IHADR_type = { (char*)0, (char*)0,
12420  (char*)0, (char*)0, 0 };
12421 static KmParameter _GEANT_PHYSICS_HADR_IHADR = { "IHADR", 5, "Flag IHADR",
12422  "1", (char*)0, 8, 0, (char**)0, 0, (char**)0, (KmParFlag)0, KmTYPE_INT,
12423  &_GEANT_PHYSICS_HADR_IHADR_type };
12424 static KmParameter *_GEANT_PHYSICS_HADR_parameters[] = {
12425  &_GEANT_PHYSICS_HADR_IHADR };
12426 static char *_GEANT_PHYSICS_HADR_guidance[] = {
12427  "To control hadronic interactions.", " IHADR=0 no hadronic interactions.",
12428  "      =1 Hadronic interactions. secondaries processed.",
12429  "      =2 Hadronic interactions. No secondaries stored." };
12430 static KmCommand _GEANT_PHYSICS_HADR = { &_GEANT_PHYSICS_LABS,
12431  "/GEANT/PHYSICS/HADR", "HADR", 0, 2, 1, 0, _GEANT_PHYSICS_HADR_parameters, 0,
12432  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12433  _GEANT_PHYSICS_HADR_guidance, 0, (char**)0, (char*)0, (int*)0 };
12434  
12435 static KmParReal   _GEANT_PHYSICS_ERAN_EKMIN_type = { (char*)0, (char*)0,
12436  (char*)0, (char*)0, 0 };
12437 static KmParameter _GEANT_PHYSICS_ERAN_EKMIN = { "EKMIN", 5,
12438  "Minimum energy of the tables", "1E-5", (char*)0, 12, 0, (char**)0, 0,
12439  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMIN_type };
12440 static KmParReal   _GEANT_PHYSICS_ERAN_EKMAX_type = { (char*)0, (char*)0,
12441  (char*)0, (char*)0, 0 };
12442 static KmParameter _GEANT_PHYSICS_ERAN_EKMAX = { "EKMAX", 5,
12443  "Maximum energy of the tables", "1E+4", (char*)0, 12, 0, (char**)0, 0,
12444  (char**)0, (KmParFlag)0, KmTYPE_REAL, &_GEANT_PHYSICS_ERAN_EKMAX_type };
12445 static KmParInt    _GEANT_PHYSICS_ERAN_NEKBIN_type = { "1", "200", "1", "200",
12446  0 };
12447 static KmParameter _GEANT_PHYSICS_ERAN_NEKBIN = { "NEKBIN", 6,
12448  "Number of bins in the tables", "90", (char*)0, 4, 0, (char**)0, 0,
12449  (char**)0, (KmParFlag)0, KmTYPE_INT, &_GEANT_PHYSICS_ERAN_NEKBIN_type };
12450 static KmParameter *_GEANT_PHYSICS_ERAN_parameters[] = {
12451  &_GEANT_PHYSICS_ERAN_EKMIN, &_GEANT_PHYSICS_ERAN_EKMAX,
12452  &_GEANT_PHYSICS_ERAN_NEKBIN };
12453 static char *_GEANT_PHYSICS_ERAN_guidance[] = {
12454  "To define the range and binning of internal tables." };
12455 static KmCommand _GEANT_PHYSICS_ERAN = { &_GEANT_PHYSICS_HADR,
12456  "/GEANT/PHYSICS/ERAN", "ERAN", 0, 2, 3, 0, _GEANT_PHYSICS_ERAN_parameters, 0,
12457  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 1,
12458  _GEANT_PHYSICS_ERAN_guidance, 0, (char**)0, (char*)0, (int*)0 };
12459  
12460 static char *_GEANT_PHYSICS_DRAY_IDRAY_range[] = { "0", "1", "2" };
12461 static KmParInt    _GEANT_PHYSICS_DRAY_IDRAY_type = { (char*)0, (char*)0,
12462  (char*)0, (char*)0, 0 };
12463 static KmParameter _GEANT_PHYSICS_DRAY_IDRAY = { "IDRAY", 5, "Flag IDRAY",
12464  "1", (char*)0, 8, 3, _GEANT_PHYSICS_DRAY_IDRAY_range, 3,
12465  _GEANT_PHYSICS_DRAY_IDRAY_range, (KmParFlag)0, KmTYPE_INT,
12466  &_GEANT_PHYSICS_DRAY_IDRAY_type };
12467 static KmParameter *_GEANT_PHYSICS_DRAY_parameters[] = {
12468  &_GEANT_PHYSICS_DRAY_IDRAY };
12469 static char *_GEANT_PHYSICS_DRAY_guidance[] = {
12470  "To control delta rays mechanism.", " IDRAY=0 no delta rays.",
12471  "      =1 Delta rays. secondaries processed.",
12472  "      =2 Delta rays. No secondaries stored." };
12473 static KmCommand _GEANT_PHYSICS_DRAY = { &_GEANT_PHYSICS_ERAN,
12474  "/GEANT/PHYSICS/DRAY", "DRAY", 0, 2, 1, 0, _GEANT_PHYSICS_DRAY_parameters, 0,
12475  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12476  _GEANT_PHYSICS_DRAY_guidance, 0, (char**)0, (char*)0, (int*)0 };
12477  
12478 static char *_GEANT_PHYSICS_DCAY_IDCAY_range[] = { "0", "1", "2" };
12479 static KmParInt    _GEANT_PHYSICS_DCAY_IDCAY_type = { (char*)0, (char*)0,
12480  (char*)0, (char*)0, 0 };
12481 static KmParameter _GEANT_PHYSICS_DCAY_IDCAY = { "IDCAY", 5, "Flag IDCAY",
12482  "1", (char*)0, 8, 3, _GEANT_PHYSICS_DCAY_IDCAY_range, 3,
12483  _GEANT_PHYSICS_DCAY_IDCAY_range, (KmParFlag)0, KmTYPE_INT,
12484  &_GEANT_PHYSICS_DCAY_IDCAY_type };
12485 static KmParameter *_GEANT_PHYSICS_DCAY_parameters[] = {
12486  &_GEANT_PHYSICS_DCAY_IDCAY };
12487 static char *_GEANT_PHYSICS_DCAY_guidance[] = { "To control Decay mechanism.",
12488  " IDCAY=0 no decays.", "      =1 Decays. secondaries processed.",
12489  "      =2 Decays. No secondaries stored." };
12490 static KmCommand _GEANT_PHYSICS_DCAY = { &_GEANT_PHYSICS_DRAY,
12491  "/GEANT/PHYSICS/DCAY", "DCAY", 0, 2, 1, 0, _GEANT_PHYSICS_DCAY_parameters, 0,
12492  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12493  _GEANT_PHYSICS_DCAY_guidance, 0, (char**)0, (char*)0, (int*)0 };
12494  
12495 static char *_GEANT_PHYSICS_COMP_ICOMP_range[] = { "0", "1", "2" };
12496 static KmParInt    _GEANT_PHYSICS_COMP_ICOMP_type = { (char*)0, (char*)0,
12497  (char*)0, (char*)0, 0 };
12498 static KmParameter _GEANT_PHYSICS_COMP_ICOMP = { "ICOMP", 5, "Flag ICOMP",
12499  "1", (char*)0, 8, 3, _GEANT_PHYSICS_COMP_ICOMP_range, 3,
12500  _GEANT_PHYSICS_COMP_ICOMP_range, (KmParFlag)0, KmTYPE_INT,
12501  &_GEANT_PHYSICS_COMP_ICOMP_type };
12502 static KmParameter *_GEANT_PHYSICS_COMP_parameters[] = {
12503  &_GEANT_PHYSICS_COMP_ICOMP };
12504 static char *_GEANT_PHYSICS_COMP_guidance[] = {
12505  "To control Compton scattering", " ICOMP=0 no Compton",
12506  "      =1 Compton. Electron processed.",
12507  "      =2 Compton. No electron stored." };
12508 static KmCommand _GEANT_PHYSICS_COMP = { &_GEANT_PHYSICS_DCAY,
12509  "/GEANT/PHYSICS/COMP", "COMP", 0, 2, 1, 0, _GEANT_PHYSICS_COMP_parameters, 0,
12510  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12511  _GEANT_PHYSICS_COMP_guidance, 0, (char**)0, (char*)0, (int*)0 };
12512  
12513 static char *_GEANT_PHYSICS_CKOV_ICKOV_range[] = { "0", "1", "2" };
12514 static KmParInt    _GEANT_PHYSICS_CKOV_ICKOV_type = { (char*)0, (char*)0,
12515  (char*)0, (char*)0, 0 };
12516 static KmParameter _GEANT_PHYSICS_CKOV_ICKOV = { "ICKOV", 5, "Flag ICKOV",
12517  "0", (char*)0, 8, 3, _GEANT_PHYSICS_CKOV_ICKOV_range, 3,
12518  _GEANT_PHYSICS_CKOV_ICKOV_range, (KmParFlag)0, KmTYPE_INT,
12519  &_GEANT_PHYSICS_CKOV_ICKOV_type };
12520 static KmParameter *_GEANT_PHYSICS_CKOV_parameters[] = {
12521  &_GEANT_PHYSICS_CKOV_ICKOV };
12522 static char *_GEANT_PHYSICS_CKOV_guidance[] = {
12523  "To control Cerenkov production", " ICOMP=0 no Cerenkov;",
12524  "      =1 Cerenkov;", "      =2 Cerenkov with primary stopped at each step."
12525  };
12526 static KmCommand _GEANT_PHYSICS_CKOV = { &_GEANT_PHYSICS_COMP,
12527  "/GEANT/PHYSICS/CKOV", "CKOV", 0, 2, 1, 0, _GEANT_PHYSICS_CKOV_parameters, 0,
12528  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12529  _GEANT_PHYSICS_CKOV_guidance, 0, (char**)0, (char*)0, (int*)0 };
12530  
12531 static char *_GEANT_PHYSICS_BREM_IBREM_range[] = { "0", "1", "2" };
12532 static KmParInt    _GEANT_PHYSICS_BREM_IBREM_type = { (char*)0, (char*)0,
12533  (char*)0, (char*)0, 0 };
12534 static KmParameter _GEANT_PHYSICS_BREM_IBREM = { "IBREM", 5, "Flag IBREM",
12535  "1", (char*)0, 8, 3, _GEANT_PHYSICS_BREM_IBREM_range, 3,
12536  _GEANT_PHYSICS_BREM_IBREM_range, (KmParFlag)0, KmTYPE_INT,
12537  &_GEANT_PHYSICS_BREM_IBREM_type };
12538 static KmParameter *_GEANT_PHYSICS_BREM_parameters[] = {
12539  &_GEANT_PHYSICS_BREM_IBREM };
12540 static char *_GEANT_PHYSICS_BREM_guidance[] = { "To control bremstrahlung.",
12541  " IBREM=0 no bremstrahlung", "      =1 bremstrahlung. Photon processed.",
12542  "      =2 bremstrahlung. No photon stored." };
12543 static KmCommand _GEANT_PHYSICS_BREM = { &_GEANT_PHYSICS_CKOV,
12544  "/GEANT/PHYSICS/BREM", "BREM", 0, 2, 1, 0, _GEANT_PHYSICS_BREM_parameters, 0,
12545  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12546  _GEANT_PHYSICS_BREM_guidance, 0, (char**)0, (char*)0, (int*)0 };
12547  
12548 static char *_GEANT_PHYSICS_AUTO_IAUTO_range[] = { "0", "1" };
12549 static KmParInt    _GEANT_PHYSICS_AUTO_IAUTO_type = { (char*)0, (char*)0,
12550  (char*)0, (char*)0, 0 };
12551 static KmParameter _GEANT_PHYSICS_AUTO_IAUTO = { "IAUTO", 5, "Flag IAUTO",
12552  "1", (char*)0, 8, 2, _GEANT_PHYSICS_AUTO_IAUTO_range, 2,
12553  _GEANT_PHYSICS_AUTO_IAUTO_range, (KmParFlag)0, KmTYPE_INT,
12554  &_GEANT_PHYSICS_AUTO_IAUTO_type };
12555 static KmParameter *_GEANT_PHYSICS_AUTO_parameters[] = {
12556  &_GEANT_PHYSICS_AUTO_IAUTO };
12557 static char *_GEANT_PHYSICS_AUTO_guidance[] = {
12558  "To control automatic calculation of tracking medium parameters:",
12559  " IAUTO=0 no automatic calculation;", "      =1 automati calculation." };
12560 static KmCommand _GEANT_PHYSICS_AUTO = { &_GEANT_PHYSICS_BREM,
12561  "/GEANT/PHYSICS/AUTO", "AUTO", 0, 2, 1, 0, _GEANT_PHYSICS_AUTO_parameters, 0,
12562  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 3,
12563  _GEANT_PHYSICS_AUTO_guidance, 0, (char**)0, (char*)0, (int*)0 };
12564  
12565 static char *_GEANT_PHYSICS_ANNI_IANNI_range[] = { "0", "1", "2" };
12566 static KmParInt    _GEANT_PHYSICS_ANNI_IANNI_type = { (char*)0, (char*)0,
12567  (char*)0, (char*)0, 0 };
12568 static KmParameter _GEANT_PHYSICS_ANNI_IANNI = { "IANNI", 5, "Flag IANNI",
12569  "1", (char*)0, 8, 3, _GEANT_PHYSICS_ANNI_IANNI_range, 3,
12570  _GEANT_PHYSICS_ANNI_IANNI_range, (KmParFlag)0, KmTYPE_INT,
12571  &_GEANT_PHYSICS_ANNI_IANNI_type };
12572 static KmParameter *_GEANT_PHYSICS_ANNI_parameters[] = {
12573  &_GEANT_PHYSICS_ANNI_IANNI };
12574 static char *_GEANT_PHYSICS_ANNI_guidance[] = {
12575  "To control positron annihilation.", " IANNI=0 no annihilation",
12576  "      =1 annihilation. Decays processed.",
12577  "      =2 annihilation. No decay products stored." };
12578 static KmCommand _GEANT_PHYSICS_ANNI = { &_GEANT_PHYSICS_AUTO,
12579  "/GEANT/PHYSICS/ANNI", "ANNI", 0, 2, 1, 0, _GEANT_PHYSICS_ANNI_parameters, 0,
12580  0, gxphys_, (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 4,
12581  _GEANT_PHYSICS_ANNI_guidance, 0, (char**)0, (char*)0, (int*)0 };
12582  
12583 static char *_GEANT_PHYSICS_guidance[] = {
12584  "Commands to set physics parameters." };
12585 static KmMenu _GEANT_PHYSICS = {  (KmMenu*)0,  (KmMenu*)0, "/GEANT/PHYSICS",
12586  "PHYSICS", 2, &_GEANT_PHYSICS_ANNI, 1, _GEANT_PHYSICS_guidance };
12587  
12588 static KmMenu _GEANT = {  (KmMenu*)0, &_GEANT_PHYSICS, "/GEANT", "GEANT", 1,
12589  (KmCommand*)0, 0, (char**)0 };
12590  
12591   klnkmenu( &_GEANT, 921023 );
12592 }
12593  
12594  
12595 #ifdef F77_LCASE
12596 #  define gkfort_ gkfort
12597 #  define gxfort_ gxfort
12598 #endif
12599  
12600 #ifdef F77_UCASE
12601 #  define gkfort_ GKFORT
12602 #  define gxfort_ GXFORT
12603 #endif
12604  
12605 #ifdef IBM370
12606 #  pragma linkage(GKFORT,FORTRAN)
12607 #  pragma linkage(GXFORT,FORTRAN)
12608 #endif
12609  
12610 extern void gkfort_();
12611 extern void gxfort_();
12612  
12613 void gkfort_()
12614 {
12615  
12616 static KmParameter _FORTRAN_FORTRAN_FNAME = { "FNAME", 5, "File name",
12617  (char*)0, (char*)0, 20, 0, (char**)0, 0, (char**)0, (KmParFlag)0,
12618  KmTYPE_CHAR,  (void*)0 };
12619 static KmParameter *_FORTRAN_FORTRAN_parameters[] = { &_FORTRAN_FORTRAN_FNAME
12620  };
12621 static char *_FORTRAN_FORTRAN_guidance[] = {
12622  "The routines in the file FNAME will be compiled by COMIS.",
12623  "If routines with names: UGEOM,GUKINE,GUOUT,UGLAST are found,",
12624  "then they will be automatically called by GXINT instead of",
12625  "the routines with the same names compiled with the standard",
12626  "Fortran compiler and linked with the application.",
12627  "The user callable routines from the GEANT library as well as",
12628  "routines from PACKLIB (HBOOK,HPLOT,HIGZ,ZEBRA) may be called",
12629  "from these user routines. All GEANT common blocks may be", "referenced.",
12630  "In case where the routine UGEOM is called several times,",
12631  "it is important to DROP all the initialisation data structures",
12632  "JVOLUM,JMATE,JTMED,etc already in memory by using the routine GIDROP.",
12633  " Example of an interactive session where the routine UGEOM is modified:",
12634  "", "   GEANT > Edit ugeom.for", "   GEANT > Fortran ugeom.for",
12635  "   GEANT > Call GIDROP", "   GEANT > Call UGEOM", "   GEANT > Dtree",
12636  "   GEANT > Edit ugeom.for", "   GEANT > Fortran ugeom.for",
12637  "   GEANT > Call GIDROP", "   GEANT > Call UGEOM", "   GEANT > Dtree",
12638  "If FNAME='-', calls to user routines is reset and standard",
12639  "routines called instead." };
12640 static KmCommand _FORTRAN_FORTRAN = {  (KmCommand*)0, "/FORTRAN/FORTRAN",
12641  "FORTRAN", 0, 1, 1, 1, _FORTRAN_FORTRAN_parameters, 0, 0, gxfort_,
12642  (IntFunc*)0, (SUBROUTINE*)0, (pCharFunc*)0, 26, _FORTRAN_FORTRAN_guidance, 0,
12643  (char**)0, (char*)0, (int*)0 };
12644  
12645 static KmMenu _FORTRAN = {  (KmMenu*)0,  (KmMenu*)0, "/FORTRAN", "FORTRAN", 1,
12646  &_FORTRAN_FORTRAN, 0, (char**)0 };
12647  
12648   klnkmenu( &_FORTRAN, 921023 );
12649 }
12650  
12651 #endif