This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / doc / history / v_315.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:19:48  cernlib
6 * Geant
7 *
8 *
9 #include "sys/CERNLIB_machine.h"
10 #include "pilot.h"
11 *CMZ :  3.21/02 29/03/94  15.41.18  by  S.Giani
12 *-- Author :
13 *
14 *
15 *        Maintenance and support for the GEANT MonteCarlo system
16 *        are performed by the Simulation Section of the CERN
17 *        Computing and Networks division. For any problem please
18 *        contact:
19 *
20 *                        Federico Carminati
21 *                        CERN-CN
22 *                        1211 Geneva 23
23 *                        Tel:        +41 22 767.4959
24 *                        Telefax:    +41 22 767.7155
25 *                        E-mail:
26 *                        BITnet/EARN: FCA@CERNVM
27 *                        DECnet     : VXCERN::FCA (Node 22.190)
28 *                        Internet   : fca@cernvm.cern.ch
29 *
30 *        An electronic GEANT discussion list has been set up on CERNVM.
31 *        To be included in the mailing list it is enough to send the
32 *        following message:
33 *
34 *       TELL LISTSERV AT CERNVM SUBSCRIBE LGEANT Firstname Lastname Inst
35 *
36 *        People who do not dispose of a TELL (or equivalent) bitnet
37 *        command should send a mail to LISTSERV@CERNVM containing the
38 *        only line:
39 *
40 *                   SUBSCRIBE LGEANT Firstname Lastname Inst
41 *
42 *================================= History
43 *
44 *===> 20/NOV/1990
45 *
46 *        Current plans set the release of GEANT 3.15 around the third
47 *        quarter of 1991.
48 *
49 *===> 27/NOV/1990
50 *
51 *        Correction in GTRACK to set correctly the value of PREC
52 *        to match machine precision. Thanks to Stephan Egli and
53 *        M.Maire.
54 *        Introduced in the 314 correction cradle.
55 *
56 *===> 28/NOV/1990
57 *
58 *        Correction in GNTUBE to avoid square root of a negative
59 *        number. Thanks to M.Maire
60 *        Introduced in the 314 correction cradle.
61 *
62 *        Eliminate TOFG=0 from GINIT, already done in GTRIGI
63 *        Thanks to F.Carminati
64 *        Introduced in the 314 correction cradle.
65 *
66 *===> 29/NOV/1990
67 *
68 *        UNIX and BSLASH flags correctly set inside *GEANT.
69 *        Thanks to A.Nathaniel
70 *        GPMATE now prints also the components in case of
71 *        mixtures. If NUMB is <0 then materials from 1 to
72 *        -NUMB are printed. Thanks to Stephan Egli.
73 *
74 *        Corrections in GRGET (obsolete), GGET, GRIN to reset
75 *        correctly the number in GCNUM. Thanks to Stephan Egli
76 *        Introduced in the 314 correction cradle.
77 *
78 *===> 30/NOV/1990
79 *
80 *        New version of GNOELT and GNELTU, thanks to Yoshihisa Iga
81 *        and R.Nierhaus
82 *        Introduced in the 314 correction cradle.
83 *
84 *        Correction in GTRAK, all mechanisms turned off in the
85 *        vacuum. Thanks to S.Egli
86 *        Introduced in the 314 correction cradle.
87 *
88 *
89 *===> 03/DEC/1990
90 *
91 *        New routine GXPICK for the interactive version (Command
92 *        DRAWING/PICK) to pick a point in a detector and return
93 *        volume/material characteristics. Thanks to S.Egli.
94 *
95 *===> 04/DEC/1990
96 *
97 *        MAXNOD from 2000 to 8000 in GDTR0. Suggestion by S.Egli.
98 *        Introduced in the 314 correction cradle.
99 *
100 *        Bug corrected in GGCLOS, do not touch ISEARC in case
101 *        of user search (ISEARC.GT.0). Thanks to D.Ward.
102 *        Introduced in the 314 correction cradle.
103 *
104 *===> 05/DEC/1990
105 *
106 *        Correction in TWOB, get correctly Tmin and Tmax and
107 *        their distribution. Thanks to Marko Mikuz.
108 *        Introduced in the 314 correction cradle.
109 *
110 *===> 06/DEC/1990
111 *
112 *        Correction in TWOCLU and GENXPT to improve energy
113 *        conservation. Thanks to S.Egli.
114 *        Introduced in the 314 correction cradle.
115 *
116 *===> 11/DEC/1990
117 *
118 *        Generic function LOG introduced in GHFRAK. Generic
119 *        functions MAX and MIN introduced in several routines
120 *        in GGEOM (HYPE) and CGPACK. Generic SIN, COS, ATAN and
121 *        SQRT introduced in CGPACK. Thanks to Federico Carminati.
122 *        Introduced in the 314 correction cradle.
123 *
124 *===> 13/DEC/1990
125 *
126 *        GTAU routine to be obsoleted.
127 *
128 *        Supporting link for the LSCAN data structure mispelled
129 *        in several places. Corrected now. Thanks to Isabel Josa.
130 *        Introduced in the 314 correction cradle.
131 *
132 *        Unused variable IPOT eliminated from GHFFER.
133 *
134 *        Changes in the interactive part for ATC GKS which does
135 *        not use FORTRAN unit for metafiles. (routines GXINT and
136 *        GXGCON). Thanks to W.Koellner
137 *
138 *===> 14/DEC/1990
139 *
140 *        REAL*8 changed to DOUBLE PRECISION in CGPACK.
141 *        Life of the D+/- mesons was 100 times too short.
142 *        Thanks to Cheng He Sheng.
143 *        Introduced in the 314 correction cradle.
144 *
145 *===> 19/DEC/1990
146 *
147 *        Modification in GDRAW and GDSPEC to correct a bug.
148 *        Modifications in GLVOLU not to print a warning message
149 *        caused by drawing.
150 *        Introduced in the 314 correction cradle.
151 *
152 *===> 20/DEC/1990
153 *
154 *        Correction in GRAYLI affecting Rayleigh effect in
155 *        mixtures.
156 *        Introduced in the 314 correction cradle.
157 *
158 *        Recode of GRAYLI and GHESIG to be safer with respect
159 *        to compiler optimization.
160 *        Thanks to Rafi Yaari.
161 *
162 *===> 8/JAN/1991
163 *
164 *        Corrections in GRGET, GGET, GRIN to set correctly
165 *        NPART, NTMED, NMATE, NVOLUM. Thanks to Lee Roberts.
166 *        Introduced in the 314 correction cradle.
167 *
168 *        New meaning for ISVOL. If <0 the material is not a
169 *        a detector but the tracking parameters are the same
170 *        as in the case ISVOL>0 (sensitive medium).
171 *        Thanks to Michel Maire.
172 *        Introduced in the 314 correction cradle.
173 *
174 *===> 9/JAN/1991
175 *
176 *        TMAXFD not recomputed with IGAUTO=1 if the value given
177 *        by the user >= 0. Default value reset to 20. instead of
178 *        60. degrees. Thanks to W.Mueller and M.Maire
179 *        Introduced in the 314 correction cradle.
180 *
181 *===> 10/JAN/1991
182 *
183 *        Corrections in GPFIS, GPFISI and GPHYSI for the fotofission
184 *        and fotoabsorbtion (Giant resonance) of photons on Uranium
185 *        and plutonium. Thanks to Harm Fesefeld.
186 *        Introduced in the 314 correction cradle.
187 *
188 *        Correction in GPHYSI in case ILOSS=2 and more than one
189 *        tracking medium with the same material number then a
190 *        spurious error message was printed. Thanks to Kevin Sparks
191 *        Introduced in the 314 correction cradle.
192 *
193 *        Corrections in GENXPT, TWOCLU, TWOB, CINEMA and EXNU.
194 *        Thanks to Harm Fesefeldt.
195 *        Introduced in the 314 correction cradle.
196 *
197 *===> 11/JAN/1991
198 *
199 *        Correction in GPPART in case of user words. Thanks to Walter
200 *        Mueller.
201 *        Introduced in the 314 correction cradle.
202 *
203 *        Correction in GSTMED to protect for EPSIL <=0. Thanks to
204 *        Michel Lefebvre.
205 *        Introduced in the 314 correction cradle.
206 *
207 *===> 14/JAN/1991
208 *
209 *        Correction in GRGET to read the banks in the correct
210 *        division. Thanks to M.Maire.
211 *        Introduced in the 314 correction cradle.
212 *
213 *        Improvement of GRIN, GROUT. New global keywords KINE and
214 *        TRIG can now be used. Thanks to Federico Carminati
215 *        Introduced in the 314 correction cradle.
216 *
217 *===> 17/JAN/1991
218 *
219 *        Correction in GSVOLU, GSDVN, GSDVN2, GSDVT, GSDVT2 not to
220 *        use uninitialized LINATT, set by GDINIT. This should take
221 *        care of the problem of empty drawings. Thanks to Simone Giani.
222 *        Introduced in the 314 correction cradle.
223 *
224 *        Correction in GPKINE to print correctly user words and vertex
225 *        information. Thanks to Kevin Sparks.
226 *        Introduced in the 314 correction cradle.
227 *
228 *        Correction in GPVERT to print correctly user words and vertex
229 *        information. Thanks to Soren G. Frederiksen.
230 *        Introduced in the 314 correction cradle.
231 *
232 *===> 18/JAN/1991
233 *
234 *        Max. GCKING stack size parametrized. The actual value of the
235 *        stack is not changed (100), but can be redefined in the
236 *        sequence GCKMAX. Important for LHC studies.
237 *        Thanks to Harm Fesefeldt.
238 *
239 *        Correction in GPRINT to call correctly GPDIGI and GPSETS.
240 *        Thanks to Michel Maire.
241 *        Introduced in the 314 correction cradle.
242 *
243 *===> 22/JAN/1991
244 *
245 *        New facilities of DZDOC introduced in the interactive menu.
246 *        Patchy flag (DZDOC) to assure backward compatibility.
247 *        Thanks to O.Schaile
248 *
249 *===> 31/JAN/1991
250 *
251 *        New facility using the JUMPT package to call user routines.
252 *        Patchy flag (USRJMP) to assure bacward compatibility.
253 *        Thanks to F.Carminati
254 *
255 *===> 05/FEB/1991
256 *
257 *        Correction in GINIT to print the level of the correction
258 *        cradle applied. Thanks to F.Carminati.
259 *        Introduced in the 314 correction cradle.
260 *
261 *        Correction Cradle 3.14/06 stamped and released.
262 *
263 *===> 06/FEB/1991
264 *
265 *        Introduction of the AIX370 flag in GEANX and GEANT.
266 *        Thanks to Roger Howard.
267 *
268 *===> 13/FEB/1991
269 *
270 *        Protection in GTRACK, GFTRAC and GLTRAC, do not update
271 *        pointers to cross section banks in the vacuum.
272 *        Thanks to C.Fuglesang, S.Banerjee, M.Maire.
273 *        Introduced in the 314 correction cradle.
274 *
275 *???>    Backward incompatibility
276 *
277 *        GFDETH returns NAMESH as a character*4 array and
278 *        GFDETD returns NAMESD as a character*4 array.
279 *        Thanks to M.Maire.
280 *
281 *
282 *===> 14/FEB/1991
283 *
284 *        Mods in GPMATE, GPPART, GPTMED, GSDK, GSMATE, GSMIXT, GSPART,
285 *        GSTMED, GSROTM, GPROTM
286 *        to warn against replacement of existing objects. Thanks to
287 *        Steve O'Neale.
288 *        Introduced in the 314 correction cradle.
289 *
290 *        Force load of user routines in GINIT.
291 *        Introduced in the 314 correction cradle.
292 *
293 *===> 15/FEB/1991
294 *
295 *        GSDVN to notify correctly when mother volume does not exists.
296 *        Thanks to Victor Perevoztchikov.
297 *        Introduced in the 314 correction cradle.
298 *
299 *===> 20/FEB/1991
300 *
301 *        Correction in GHEINI for the exponent range to be compatible
302 *        with IEEE machines. Original limits were for IBM/370.
303 *        Routine LIMDAT eliminated. Thanks to Hans-Jochen Trost.
304 *        Introduced in the 314 correction cradle.
305 *
306 *???>    Backward incompatibility
307 *
308 *        Parameter NAMATE returned from GFMATE now a CHARACTER*20
309 *        variable. Thanks to Michel Maire.
310 *
311 *        Monitoring introduced, flag MONITOR. Thanks to F.Carminati.
312 *        Mods in GXINT, GINIT, GLAST. Routine GEAMON introduced.
313 *        Introduced in the 314 correction cradle.
314 *
315 *===> 22/FEB/1991
316 *
317 *        GWORK in GINIT was (DUMMY) called without arguments.
318 *        GUDTIM was (dummy) called as a routine and it is a
319 *        function. Thanks to F.Carminati.
320 *        Introduced in the 314 correction cradle.
321 *
322 *        GUVIEW to specify 3rd argument as a character. Thanks to
323 *        Federico Carminati.
324 *        Introduced in the 314 correction cradle.
325 *
326 *        Call NUCRIN with the right number of arguments (the last
327 *        was not used anyway). Thanks to Federico Carminati.
328 *        Introduced in the 314 correction cradle.
329 *
330 *===> 04/MAR/1991
331 *
332 *        Correction in GMUSIG to avoid division by zero. Thanks to
333 *        M.Verzocchi.
334 *        Introduced in the 314 correction cradle.
335 *
336 *
337 *===> 20/MAR/1991
338 *
339 *        Corrections in GPRELM, muon e+e- soft radiation. Correction in
340 *        GDRELM for the ionization energy loss for muons. Thanks to
341 *        A.Nathaniel. Introduced in the 314 correction cradle.
342 *
343 *===> 21/MAR/1991
344 *
345 *        Correction in GPHYSI to initialise the JMULOF bank even in
346 *        the case of vacuum. Electron tracking in vacuum was not taking
347 *        into account the TMAXFD parameter. Correction in GRANGI to set
348 *        the range to BIG in case of 0 energy loss tabulated in JLOSS.
349 *        Correction in GPHYSI to switch off all the mechanisms in the
350 *        vacuum but decay. The corresponding code in GTRACK has been
351 *        removed. The previous corrections for IUPD in GLTRAC, GFTRAC
352 *        and GTRACK have been removed as well. Thanks to D.Ward, R.Brun,
353 *        F.Carminati
354 *        Introduced in the 314 correction cradle.
355 *
356 *        Corrections in GRANGI and in GTHADR to cure small steps in
357 *        tracking. Thanks to M.Maire.
358 *        Introduced in the 314 correction cradle.
359 *
360 *===> 25/MAR/1991
361 *
362 *???>    Backward incompatibility
363 *
364 *        GFPART returns NAPART as a CHARACTER*20 array. Thanks to R.Rui
365 *        Introduced in the 314 correction cradle.
366 *
367 *===> 26/MAR/1991
368 *
369 *        GFTMAT will return the correct values for the vacuum, except
370 *        for hadrons. Thanks to P.Gumplinger.
371 *        Introduced in the 314 correction cradle.
372 *
373 *        Correction in GPCXYZ when the number of mechanisms is greater
374 *        than 6. Thanks to Y.Iga.
375 *        Introduced in the 314 correction cradle.
376 *
377 *
378 *===> 27/MAR/1991
379 *
380 *        GDXYZ corrected to use HIGZ generic line types. Thanks to
381 *        M.Maire.
382 *        Introduced in the 314 correction cradle.
383 *
384 *        Correction in the CDF for RZ/IN and RZ/OUT. Thanks to
385 *        F.Carminati.
386 *        Introduced in the 314 correction cradle.
387 *
388 *===> 04/APR/1991
389 *
390 *        For reasons of speed GKS-type lines are used now in
391 *        GDCXYZ, GDXYZ. Thanks to F.Carminati.
392 *        Introduced in the 314 correction cradle.
393 *
394 *===> 18/APR/1991
395 *
396 *        Correction of the logic for TMAXFD. Now is:
397 *
398 *            AUTO 1: 0<TMAXFD<20  --> accepted
399 *                      TMAXFD>20  --> set to 20
400 *                      TMAXFD<=0  --> set to 20
401 *
402 *            AUTO 0:   TMAXFD>0   --> accepted
403 *                      TMAXFD<=0  --> set to 20
404 *
405 *        Thanks to Gerry Lynch.
406 *        Introduced in the 314 correction cradle.
407 *
408 *        Correction in GMULOF. STMIN=BIG for the vacuum. Thanks
409 *        to F.Carminati.
410 *        Introduced in the 314 correction cradle.
411 *
412 *        Correction in GRFILE, GRIN called with IDVERS=0 and not
413 *        999. Thanks to F.Carminati.
414 *        Introduced in the 314 correction cradle.
415 *
416 *===> 22/APR/1991
417 *
418 *        Corrections in GPRELA, GMULOF, GPHYSI and GTNEXT. Now
419 *        STMIN is set to 0. for vacuum independly of the AUTO
420 *        flag. Thanks to M.Maire.
421 *        Introduced in the 314 correction cradle.
422 *
423 *        Format correction in GSDVN. Thanks to Federico Carminati.
424 *        Introduced in the 314 correction cradle.
425 *
426 *===> 23/APR/1991
427 *
428 *        Correction in GINIT to initialize LIN via IQTTIN if
429 *        different from 0. Thanks to F.Carminati
430 *        Introduced in the 314 correction cradle.
431 *
432 *===> 24/APR/1991
433 *
434 *        New routines GPLMAT, GPRMAT, GPGKIN from Michel Maire.
435 *
436 *===> 25/APR/1991
437 *
438 *        geant.metafile is not opened any more by default.
439 *        The METAFILE command now accepts the metafile name
440 *        for packages like ATC-GKS which do not use FORTRAN.
441 *        Thanks to W.Koellner.
442 *
443 *===> 01/MAY/1991
444 *
445 *        Problem corrected in GHEISH for neutron cascade. A neutron
446 *        undergoing an hadronic reaction could generate two recoil
447 *        protons. Thanks to Henk den Bok.
448 *        Introduced in the 314 correction cradle.
449 *
450 *        Correction in GNEXT/GTNEXT. STMIN not used anymore for
451 *        MANY volumes. Thanks to M.Maire.
452 *        Introduced in the 314 correction cradle.
453 *
454 *===> 02/MAY/1991
455 *
456 *        Call to NVETIM routine removed from GHEISHA. Thanks to
457 *        F.Carminati.
458 *
459 *===> 07/MAY/1991
460 *
461 *        RNDM interactive command added to set the random number
462 *        generator seeds. Thanks to F.Carminati.
463 *
464 *===> 08/MAY/1991
465 *
466 *        New routine GDTRAK introduced to draw a track and delete
467 *        it from the JXYZ buffer optionally. Thanks to R.Brun,
468 *        F.Carminati.
469 *
470 *        Important correction in GTGAMA, GTNEUT to avoid problems
471 *        due to machine precision. When a push is made to cross a
472 *        volume boundary the condition that the change in coordinate
473 *        be not negligible is imposed. Thanks to F.Carminati, R.Brun.
474 *        Introduced in the 314 correction cradle.
475 *
476 *===> 09/MAY/1991
477 *
478 *        Correction in GMGAUS due to G.Lynch. The sigma of the multiple
479 *        scattering in the gaussian approssimation was too small.
480 *        Introduced in the 314 correction cradle.
481 *
482 *===> 14/MAY/1991
483 *
484 *        Corrections in GTELEC, GTHADR and GTMUON to introduce the
485 *        same boundary correction than in GTNEUT, GTGAMA. Thanks to
486 *        P.Gumplinger.
487 *        Introduced in the 314 correction cradle.
488 *
489 *        New menu in GXINT to handle FZ files. Thanks to F.Carminati
490 *
491 *===> 17/MAY/1991
492 *
493 *        Correction in GHFHDN to reset to 0. TOFD. Thanks to
494 *        R.Rui.
495 *        Introduced in the 314 correction cradle.
496 *
497 *===> 31/MAY/1991
498 *
499 *        Correction in GTRACK to allow PREC to decrease and avoid
500 *        problems when changing particle and position but not medium.
501 *        Thanks to R.Spiwoks.
502 *        Introduced in the 314 correction cradle.
503 *
504 *===>  4/JUN/1991
505 *
506 *        New version of the hidden line removal, thanks to S.Giani.
507 *        New menu CVOL introduced to cut volumes and new SHIFT
508 *        command to shift volumes for drawing.
509 *
510 *        Correction in GHEISH. The ENP parameters are reset to 0.
511 *        at the beginning of every event. Thanks to Henk den Bok.
512 *        Introduced in the 314 correction cradle.
513 *
514 *===>  5/JUN/1991
515 *
516 *        Correction introduced in GPHYSI. JTM recalculated after
517 *        bank push. Thanks to K.Sparks.
518 *        Introduced in the 314 correction cradle.
519 *
520 *===> 11/JUN/1991
521 *
522 *        Correction introduced in GTELEC, GTMUON, GTHADR. When the
523 *        energy loss is below machine precision, it is recalculated
524 *        via the De/Dx table. Thanks to H.Fesefeld and Ralf Spiwoks.
525 *        Introduced in the 314 correction cradle.
526 *
527 *        Booking of the bank IMAT-4 delayed till GPHYSI. Will save some
528 *        words in case of materials which are not inserted in a tracking
529 *        medium. Thanks to F.Carminati.
530 *
531 *???>    Backward incompatibility
532 *
533 *        The argument DMAXMS in the calling sequence of GSTMED, unused
534 *        in 314, will be called STEMAX and will assume the meaning of
535 *        maximum step allowed for a particle in the given material.
536 *        This will only affect people running with AUTO 0. In case of
537 *        automatic computation of the tracking media parameters, this
538 *        number will be set to BIG (=1.E10).
539 *        Thanks to F.Carminati, M.Maire.
540 *
541 *===> 12/JUN/1991
542 *
543 *        Corrections in GMUNU to allow the usage of a variable number of
544 *        energy bins. Corrections in PHASP and GMUSIG for very high
545 *        energies. Thanks to Hans-Jochen Trost.
546 *        Introduced in the 314 correction cradle.
547 *
548 *        Correction in GFLTHE to avoid division by 0. Thanks to
549 *        Roy Bossingham.
550 *        Introduced in the 314 correction cradle.
551 *
552 *===> 13/JUN/1991
553 *
554 *        Correction in GINPGO and GINPCO to check correctly the PHI
555 *        limits. Thanks to R.Bossingham.
556 *        Introduced in the 314 correction cradle.
557 *
558 *===> 19/JUN/1991
559 *
560 *        Correction in GMUNU to calculate correctly the angle of the
561 *        incoming muon. Thanks to H-J.Trost.
562 *        Introduced in the 314 correction cradle.
563 *
564 *===> 20/JUN/1991
565 *
566 *        Corrections in GLANDZ for high energy to avoid numerical
567 *        problems. Thanks to H-J.Trost.
568 *        Introduced in the 314 correction cradle.
569 *
570 *===> 26/JUN/1991
571 *
572 *        All the routines and the commons of the HADRIN/NUCRIN
573 *        package have been renamed. All routines begin now with
574 *        GHF and all commons with GCF. This to avoid interactions
575 *        with the interface with FLUKA. Thanks to F.Carminati
576 *
577 *===> 28/JUN/1991
578 *
579 *        New algorithm for pushing a view bank. Now push of the
580 *        max between MORGS and the 25% of the size of the view
581 *        bank. Thanks to S.Giani.
582 *
583 *===> 17/JUL/1991
584 *
585 *        Common HIATT of HIGZ removed from GXCONT and workstation type
586 *        retrieved in GXDZ from Workstation ID. Thanks to O.Couet.
587 *
588 *        Modification in GMUSIG to protect against possible division
589 *        by zero. Thanks to M.Sarris.
590 *
591 *        Correction in GDSHOW to recalculate COSPSI and SINPSI. Thanks
592 *        to M.Verzocchi.
593 *        Introduced in the 314 correction cradle.
594 *
595 *===> 18/JUL/1991
596 *
597 *        Correction in GINVOL. When tracking in magnetic
598 *        field they could return the wrong volume. Thanks to D.Greiner.
599 *        Introduced in the 314 correction cradle.
600 *
601 *===> 24/JUL/1991
602 *
603 *        Corrections in GRIN to allow tracking after reading a data
604 *        structure. Thanks to R.Brun.
605 *        Introduced in the 314 correction cradle.
606 *
607 *        Modifications in GXINT to allow running with the MOTIF
608 *        user interface. Thanks to R.Brun.
609 *
610 *===> 31/JUL/1991
611 *
612 *        INT=0 suppressed in GHEISH after nuclear fission.
613 *        Thanks to Kati Lassila.
614 *
615 *===> 01/AUG/1991
616 *
617 *        Protection introduced in GMUSIG. Thanks to Jochen Trost.
618 *        Introduced in the 314 correction cradle.
619 *
620 *===> 02/AUG/1991
621 *
622 *        Correction in GHSTOP to fix the calculation of the time of
623 *        flight for stopping particles. Thanks to L.Roberts.
624 *        Introduced in the 314 correction cradle.
625 *
626 *        Correction in GNPGON not to calculate safety for the inner
627 *        radius when this is 0. Thanks to Andrei Nomerotsky.
628 *        Introduced in the 314 correction cradle.
629 *
630 *        Correction in GNOTRP to return the correct SNXT. Thanks to
631 *        V.Innocente.
632 *        Introduced in the 314 correction cradle.
633 *
634 *        Correction in GHSTOP not to discard hadrons at rest, they
635 *        may decay. Thanks to H.Fesefeld.
636 *        Introduced in the 314 correction cradle.
637 *
638 *        Modifications in GHSTOP and GHEISH to handle user defined
639 *        particles. Thanks to P.Gumplinger.
640 *        Introduced in the 314 correction cradle.
641 *
642 *===> 12/AUG/1991
643 *
644 *        Call to GUINTI added in GINTRI to define user commands. Thanks
645 *        to V.Vercesi.
646 *        Introduced in the 314 correction cradle.
647 *
648 *===> 21/AUG/1991
649 *
650 *        Modification in GTMED to print a warning when FIELDM .EQ. 0
651 *        and IFIELD .NE. 0. Thanks to Federico Carminati
652 *
653 *        Modification in GTHADR to set CFLD = BIG in case FIELDM=0.
654 *        Thanks to V.Vercesi.
655 *        Introduced in the 314 correction cradle.
656 *
657 *===> 27/AUG/1991
658 *
659 *        Call to C dummy routine to initialise X11 introduced in
660 *        GXINT for IBM/VM. Thanks to M.Marquina.
661 *
662 *===> 19/SEP/1991
663 *
664 *        Rayleigh effect now the default. IRAYL is set to 1 by default
665 *        in GINIT. Thanks to M.Maire
666 *
667 *        Changes in the multiple scattering routines. GMOLI1 and GMOLI2
668 *        suppressed and GMOLIO used instead. Corresponding changes in
669 *        GMULTS and GMULOF. The code of GMOLS has been put in line inside
670 *        GMOLIE and GMOLS is obsolete. GPOISS and GMCOUL modified for
671 *        performance reasons.
672 *        Gaussian scattering is now generated according to the Rossi
673 *        gaussian formula and there is no logarithmic term in the
674 *        sigma of the gaussian. This gives a distribution where the
675 *        tails are underestimated, but which is consistent over many
676 *        steps.
677 *        Moliere and single Coulomb scattering are chosen according to
678 *        the value of Omega in the Moliere formula.
679 *        The new meaning of IMULS is the following:
680 *
681 *              IMULS = 0       No multiple scattering
682 *              IMULS = 1,2     Moliere or single Coulomb scattering
683 *              IMULS = 3       Gaussian scattering with Rossi formula
684 *
685 *        Thanks to G.Lynch.
686 *
687 *===> 14/OCT/1991
688 *
689 *         New algorithm for calculation of energy loss. The stopping
690 *         range is now calculated with a parabolical interpolation
691 *         instead than with a linear one. This gives a dE/dx curve
692 *         which is a piecewise linear function and not a step function.
693 *         Thanks to F.Carminati.
694 *
695 *         Modification of GNOPG1 taking care of the case of a particle
696 *         which is very near to the surface and it may appear inside due
697 *         to machine precision. This could cause the volume to be skipped.
698 *         Thanks to R.Nierhaus.
699 *
700 *         Routine GNPGON rewritten for the calculation of SNXT. The
701 *         previous routine was returning wrong results. Thanks to
702 *         R.Nierhaus.
703 *
704 *===> 28/OCT/1991
705 *
706 *         Modifications in the routines GFLPHI and GFCOOR. The ordering
707 *         for TUBS in phi was wrong. Volumes could become invisible.
708 *         Thanks to F.Carminati.
709 *
710 *         New routine GFVERT introduced. Retrieves the parameters of a
711 *         vertex. Thanks to F.Carminati.
712 *
713 *===> 29/OCT/1991
714 *
715 *         Modification in NUCREC to zero the whole of the PV array
716 *         to prevent the use of uninitiated variables. Thanks to
717 *         F.Ranjard. Introduced in the 3.14 correction cradel.
718 *
719 *===>  1/NOV/1991
720 *
721 *         Useless code commented out in GTRAIN. Thanks to F.Carminati.
722 *
723 *         GNCONE gone to double precision. Thanks to J.Toth.
724 *
725 *===>  5/NOV/1991
726 *
727 *         Variable USERW undefined in the RESULT common now set to
728 *         UPWGHT from GCTRAK common. Thanks to F.Ranjard.
729 *
730 *         Type declarations for GCSTAK completed. Thanks to M.Battle.
731 *
732 *===>  5/DEC/1991
733 *
734 *         New calculation of the range table. Simpson integration rule
735 *         used. Modifications in GRANGI, GCOEFF.
736 *
737 *===> 10/DEC/1991
738 *
739 *         Protection introduced against the reading of a pre-315 data
740 *         structure. The value of STEMAX is set to BIG in this case.
741 *         Modification in GPHYSI.
742 *
743 *         Better handling of version numbers in I/O operations.
744 *         Modifications in GPHYSI and GRIN.
745 *
746 *===> 08/JAN/1992
747 *
748 *         Correction in GLANDZ to avoid gaussian distribution for
749 *         very thin layers. The version of GEANT 3.13 has been
750 *         used for this. Thanks to F.Carminati and M.Maire.
751 *
752 *         Corrections in GTNEXT, GINVOL and GTMEDI to protect against
753 *         wrong values of INGOTO when using MANY volumes. Thanks to
754 *         R.Brun.
755 *
756 *===> 15/JAN/1992
757 *
758 *???>    Backward incompatibility
759 *
760 *         The random numbers seeds are stored at the end of every event
761 *         in the JRUNG bank at locations 19 and 20. If the JRUNG data
762 *         structure is read in and the data card RNDM or the interactive
763 *         command RNDM has not been issued (NRNDM(1), NRNDM(2) <> 0),
764 *         and if the words 19/20 are not 0, then the random number
765 *         generator is restarted with these seeds. Thanks to F.Carminati
766 *
767 *         The RNDM command now reads the values of the seeds into
768 *         NRNDM(1) and NRNDM(2) in common GCFLAG. The values 0 0
769 *         can be used for the random seeds. These values will not
770 *         alter the current status of the random number generator,
771 *         but zeroing the variables  NRNDM(1) and NRNDM(2) will
772 *         allow them to be reinitialised with the values stored
773 *         in a data structure read from disk. Thanks to F.Carminati
774 *
775 *         Routine GREND now needs an integer as input. This is to be
776 *         consistent with GRFILE.
777 *
778 *===> 27/JAN/1992
779 *
780 *         The following changes made to the names of FLUKA routines
781 *         to avoid clashes with ISAJET. Thanks to L.Roberts.
782 *
783 *        Type          Original name            New name
784 *        Routine       DECAY                    FKDECA
785 *        Routine       FLAVOR                   FKFLAV
786 *        Routine       SIGINT                   FKSIGI
787 *
788 *===> 31/JAN/1992
789 *
790 *        Corrections in GMEDIA in case of many volumes to avoid
791 *        program crash. Thanks to R.Jones.
792 *
793 *        Change of logics in GRUN. Now if NEVENT is <= 0, no event
794 *        is processed. Thanks to B.Lockman.
795 *
796 *        Common GCFLAX put in the GCFLAG sequence with the BATCH and
797 *        NOLOG variable from GXINT. Thanks to B.Cole.
798 *
799 *        Problem corrected in GDECAY. The mass of the particle was
800 *        altered. If the next particle was the same, the mass was
801 *        not reset to its correct value. Thanks to S.Tonse.
802 *
803 *        TIMINT is now really the time left after initiatlization
804 *        as is specified in the documentation and not the time
805 *        USED for initialization as it was till now.
806 *        Thanks to V.Ivanov.
807 *
808 *        Corrections in GNPGON. Improvement of code safety under
809 *        optimization in GNOGO1, GNPGON, GNPCON. Thanks to Y.Iga.
810 *
811 *===>  4/FEB/1992
812 *
813 *        Corrections in GMULOF and GTHADR. SFIELD takes precedence
814 *        on STMIN in case IFIELD=1 to make sure that the Runge-Kutta
815 *        approssimation still works. Thanks to R.Hawkings.
816 *
817 *===> 10/FEB/1992
818 *
819 *         Correction in GDRAY to improve the precision in the calculation
820 *         of the angle. Thanks to F.Carminati & P.Lubrano.
821 *
822 *         Change in GFKINE. The variable TOFG is not updated any more.
823 *         Thanks to F.Carminati
824 *
825 *         New GMEDIA, GTMEDI, GINVOL to take care of the problems with
826 *         MANY volumes. Thanks to R.Jones.
827 *
828 *===> 14/FEB/1992
829 *
830 *         Bug corrected in GNPGON when the particle was exactly on the
831 *         wall of the last Z section. Thanks to V.Palichik.
832 *
833 *===> 17/FEB/1992
834 *
835 *         Updated routines GLUND, GLUNDI and new sequences LUDAT1, LUDAT3,
836 *         LUJETS. The data cards MSTE, KTYP, PMAS, PWID, IDB have been
837 *         removed because either obsolete or not aplicable. The new code
838 *         runs with JETSET 7.3 upward. Thanks to F.Carminati, T.Sjostrand.
839 *
840 *         Update of GLUDKY to work with 7.3. Thanks to F.Carminati.
841 *
842 *===> 23/FEB/1992
843 *
844 *         New subroutine GFIN to handle sequential input. Routine GGET
845 *         has been maintained for backward compatibility.
846 *         Thanks to F.Carminati.
847 *
848 *===> 01/MAR/1992
849 *
850 *         New Runge-Kutta integration routine for the tracking in
851 *         magnetic field. If the result of the stepping is not accurate,
852 *         the step is divided in 2 parts and the integration repeated
853 *         and so on. Thanks to V.Perevotchikov.
854 *
855 *===> 05/MAR/1992
856 *
857 *         Correction in GLTRAC. When the particle fetched has an entry
858 *         in JKINE the correct vertex number is calculated. Thanks to
859 *         Y.Foka.
860 *
861 *===> 06/MAR/1992
862 *
863 *         Correction in GTELEC. The calculated range may be slightly
864 *         larger than the maximum allowed range due to precision
865 *         problems and this was leading to very small negative steps.
866 *         Thanks to R.Brun.
867 *
868 *===> 08/MAR/1992
869 *
870 *         New GRKUTA, GHELIX, GHELX3 from V.Perevotchikov.
871 *
872 *===> 16/MAR/1992
873 *
874 *          ENERGY renamed to FKENER in FLUKA. Thanks to F.Carminati
875 *
876 *===> 17/MAR/1992
877 *
878 *          VERTEX->FKVERT, ZEROIN->FKZERO, ERROR->FKERRO in FLUKA.
879 *          Thanks to F.Carminati
880 *
881 *          Corrections in PBANH. Thanks to M.Sasaki.
882 *
883 *===> 19/MAR/1992
884 *
885 *          Corrections in GFIN, GFOUT and GRIN, version 0 is now allowed
886 *          for a data structure in I/O. Thanks to B.Cole.
887 *
888 *          Modification in GBREME to improve precision for small angles.
889 *          Thanks to F.Carminati.
890 *
891 *          Inlining of rotation routines in GFTRAC, GINVOL, GTMEDI,
892 *          GTNEXT, GMEPOS, GMEDIA. Thanks to D.Kryn, F.Carminati.
893 *
894 *          New routines GDLENS, GDPLST and GDPRTR in the drawing package.
895 *          New version of GDTREE. Thanks to S.Giani.
896 *
897 *          Streamlining of GDTOM, GINROT, GITRAN, GMTOD, GRMTD, GRMUL,
898 *          GROT, GTRMUL and GTRNSF. Thanks to F.Carminati.
899 *
900 *===> 23/MAR/1992
901 *
902 *???>    Backward incompatibility
903 *           Tracking medium name in GFTMED changed in CHARACTER variable.
904 *           Thanks to V.Perevotchikov.
905 *
906 *           IMPULS renamed to FKIMPU
907 *           DRES   renamed to FKDRES
908 *           ERUP   renamed to FKERUP in FLUKA. Thanks to F.Carminati.
909 *
910 *===> 24/MAR/1992
911 *
912 *       COSI entry point renamed to FKCOSI
913 *       POLI             renamed to FKPOLI in FLUKA. Thanks to F.Carminati
914 *
915 *       Changes in GCOMP to increase the precision of the rotation
916 *       of the scattered photons and electrons in the reference
917 *       frame of the incoming particle. Thanks to F.Carminati
918 *
919 *       New version of the routines GNOPG1 and GNPGO1. Speed up of
920 *       a factor two or more achieved. Thanks to F.Carminati,
921 *       M.Roethlisberger.
922 *
923 *===> 29/MAR/1992
924 *
925 *       Improvement of the routines GMEDIA, GTMEDI and GINVOL. A better
926 *       use is made of the variable INGOTO. Thanks to R.Jones, F.Carminati.
927 *
928 *===> 01/APR/1992
929 *
930 *       Modification in GTRACK. If a particle tries for more than 5 times
931 *       consecutively to exit a volume, the precision used for tracking is
932 *       multiplied by 5 and so on every fifth attempt. Thanks to
933 *       F.Carminati.
934 *
935 *       Modification in FLUFIN to normalise in double precision the
936 *       direction cosines given to FLUKA. Thanks to A.Ferrari
937 *
938 *       Modification in GLANDZ to avoid peaks in energy loss for very
939 *       light materials. Thanks to F.Carminati
940 *
941 *       New routine GETVER to crack the title sequence and to return
942 *       the correct version number. Thanks to F.Carminati and M.Maire.
943 *