5 * Revision 1.1.1.1 1995/10/24 10:19:48 cernlib
9 #include "sys/CERNLIB_machine.h"
11 *CMZ : 3.21/02 29/03/94 15.41.37 by S.Giani
13 C 09-FEB-1988 NVE CERN GENEVA
14 C NUMBER OF SUBSCRIPTS OF ARRAY "PCM" CHANGED FROM 1
15 C TO 2 IN EQUIVALENCE STATEMENT IN ROUTINE PHASP.
16 C 17-FEB-1988 NVE CERN GENEVA
17 C ALL CALLS TO "RN" CHANGED TO "RNDM" AND WITHIN A DO
18 C LOOP THE DUMMY ARGUMENT HAS BEEN SET TO THE LOOP
19 C INDEX IN ORDER TO ENABLE COMPILATION WITH OPTIMIZATION
20 C 25-FEB-1988 NVE CERN GENEVA
21 C STATEMENT FUNCTION SEQUENCES "ANPOL" AND "ANPOL" ADDED
22 C 25-FEB-1988 NVE CERN GENEVA
23 C SEQUENCE "ANPOL" INCLUDED IN "STEEQ" AND "STPAIR"
24 C 26-FEB-1988 NVE CERN GENEVA
25 C SEQUENCE "LIMITS" ADDED FOR ARGUMENTS OF INT. FUNCTIONS
26 C 01-MAR-1988 NVE CERN GENEVA
27 C ALL CALLS TO "HSTORY" REMOVED
28 C 04-MAR-1988 NVE CERN GENEVA
29 C +SELF MATERIAL ADDED TO ENABLE SUBROUTINE TIMING
30 C 16-MAR-1988 NVE CERN GENEVA
31 C NEW "SAVE" CARD AND INIT. FOR "PMUL" AND "ANORM"
33 C 16-MAR-1988 NVE CERN GENEVA
34 C DIMENSION OF "ANORM1" CHANGED FROM (4,60) TO (2,60)
36 C 16-MAR-1988 NVE CERN GENEVA
37 C "REAL*8" AND "REAL*4" REPLACED BY "DOUBLE PRECISION"
38 C AND "REAL" RESP. IN ROUTINE "PHASP"
39 C 16-MAR-1988 NVE CERN GENEVA
40 C "REAL*8" REMOVED IN ROUTINE "PDK"
41 C FOR DOUBLE PRECISION USE "DPDK"
42 C 16-MAR-1988 NVE CERN GENEVA
43 C "SQRT(A)" REPLACED BY "SQRT(ABS(A))" IN "GENXPT"
44 C 18-MAR-1988 NVE CERN GENEVA
45 C GHEISHA UTILITIES ADDED IN PATCH "GHUTILS"
46 C 18-MAR-1988 NVE CERN GENEVA
47 C NEW PATCHES "TIFACE, TATINA, GIFACE AND CASCAD"
48 C ADDED TO BE COMPLETED IN FUTURE
49 C 29-MAR-1988 NVE CERN GENEVA
50 C DECK "VECSUB" CLEANED UP AND ALL "ENTRIES" RE-WRITTEN
51 C AND CHANGED TO "SUBROUTINES"
52 C 29-MAR-1988 NVE CERN GENEVA
53 C "DCOS" "DSIN" AND "DSQRT" CHANGED TO "COS" "SIN"
54 C AND "SQRT" RESP. IN ROUTINE "PHASP"
55 C 29-MAR-1988 NVE CERN GENEVA
56 C "DPDK" "DLPSOR" AND "DOTES2" PUT IN SEPARATE DECKS
57 C 29-MAR-1988 NVE CERN GENEVA
58 C "REAL*8" CHANGED TO "DOUBLE PRECISION" IN SEQ. /GENIO
59 C 30-MAR-1988 NVE CERN GENEVA
60 C PROTECTIONS AGAINST "EXP()" LIMITS ADDED IN REMAINING
62 C 30-MAR-1988 NVE CERN GENEVA
63 C PROTECTIONS AGAINST "DIVISION BY ZERO" ADDED IN
65 C 06-APR-1988 NVE CERN GENEVA
66 C "GPGHEI" CHANGED IN ORDER TO MATCH GEANT 3.12
67 C 07-APR-1988 NVE CERN GENEVA
68 C SPECIFIC FUNCTIONS "AMAX1" AND "ALOG" REPLACED BY
69 C THEIR GENERIC EQUIVALENTS AND
70 C GEOMETRICAL CROSS-SECTIONS FOR NUCLEAR FRAGMENTS ADDED
72 C 11-APR-1988 NVE CERN GENEVA
73 C PROTECTIONS AGAINST "EXP()" LIMITS ADDED IN ROUTINE
74 C "CINEMA" AND "ALOG" CALLS CHANGED TO CALLS TO
75 C GENERIC FUNCTION "LOG"
76 C 11-APR-1988 NVE CERN GENEVA
77 C PROTECTIONS AGAINST NEGATIVE SQRT ADDED IN
79 C 14-APR-1988 NVE CERN GENEVA
80 C ARGUMENT OF "RNDM" SET TO LOOP INDEX
82 C 22-APR-1988 NVE CERN GENEVA
83 C ALL CALLS TO "ALOG" "IABS" "DCOS" AND "DEXP"
84 C CHANGED TO THE GENERIC EQUIVALENTS
85 C 02-MAY-1988 NVE CERN GENEVA
86 C ROUTINES "GENXPT" AND "TWOCLU" CORRECTED FOR LOW
88 C 02-MAY-1988 R. BRUN/NVE CERN GENEVA
89 C STMT. "GO TO 38" CHANGED TO "GO TO 30" IN ROUTINE
90 C "GENXPT" TO PREVENT INFINITE LOOPING
91 C 02-MAY-1988 NVE CERN GENEVA
92 C ALL "IPV(..)" STUFF CHANGED TO NORMAL "PV(..)"
94 C 04-MAY-1988 NVE CERN GENEVA
95 C FUNCTIONS "RMASS" AND "CHARGE" REPLACED BY ARRAYS
96 C "RMASS" AND "RCHARG" RESP. AND PUT INTO COMMON /CONSTS
97 C MASSES AND CT VALUES OF PARTICLES UPDATED TO LATEST
98 C (= GEANT) VALUES AND INITIALIZED IN ROUTINE "GHEINI"
99 C 04-MAY-1988 NVE CERN GENEVA
100 C DISTINCTION INTRODUCED BETWEEN P AND N TARGET IN ALL
101 C "CAS..." ROUTINES AND S AND RS COMPUTED ACCORDINGLY
102 C IN THE ROUTINES THEMSELVES
103 C THE SAME HAS BEEN DONE IN ROUTINE "TWOB"
104 C 04-MAY-1988 NVE CERN GENEVA
105 C CORRECT MASSES INTRODUCED FOR THE VARIOUS PROCESSES
106 C IN THE ABSORBTION AND ANNIHILATION ROUTINES
107 C 06-MAY-1988 NVE CERN GENEVA
108 C EXTRA ARGUMENT "NFL" ADDED IN ROUTINE "CORANH"
109 C TO INDICATE TARGET TYPE
110 C 10-MAY-1988 NVE CERN GENEVA
111 C OLD VERSION (GEANT 3.11) OF "GHESIG" RESTORED AND
112 C ONLY SLIGHTLY MODIFIED TO INCLUDE GEOMETRICAL X-SECT.
113 C OF LIGHT MASS FRAGMENTS
114 C THE NEW VERSION OF GHESIG IS CONTAINED IN DECK "GHESIX"
115 C ON THIS PAM IN ORDER TO BE INVESTIGATED
116 C 11-MAY-1988 NVE CERN GENEVA
117 C K0/K0 BAR CHOICE REMOVED FROM "GHESIG" TO AVOID
119 C THE K0/K0 BAR CHOICE IS NOW MADE RIGHT AFTER THE
120 C CREATION OF THE K0 IN ROUTINE "GHEISH"
121 C 11-MAY-1988 NVE CERN GENEVA
122 C NUCLEAR MASSES OF D, T AND ALPHA RE-COMPUTED
123 C TAKING INTO ACCOUNT BINDING ENERGIES AND NEW VALUES
125 C THESE NEW VALUES WILL ALSO BE USED IN GEANT AND THEY
126 C AGREE WITH PARTICLE DATA 1986
127 C 11-MAY-1988 NVE CERN GENEVA
128 C FLAG "NUCFLG" INTRODUCED IN ROUTINES "CASFRG" AND
129 C "GNSLWD" TO INDICATE ACTION TAKEN BY "NUCREC" CALL
130 C 11-MAY-1988 NVE CERN GENEVA
131 C CALL TO "COSCAT" ADDED IN ROUTINE "CASFRG" IN CASE
132 C THE "NUCREC" CALL DID NOT GIVE ANY ACTION
133 C 18-MAY-1988 NVE CERN GENEVA
134 C DOUBLE COUNTING OF EDEPS FOR STOPPING PARTICLES
135 C FIXED (GHEISH AND GHSTOP) AND NEW STEERING FOR
136 C LOW ENERGY NUCLEONS IN "GHEISH"
137 C 18-MAY-1988 NVE CERN GENEVA
138 C BUGS FIXED FOR LOW MOMENTUM AND CALL TO "ATOMAS"
139 C REPLACED BY "RMASS" ASSIGNMENTS FOR P, N, D, T AND
140 C ALPHA IN ROUTINE "NUCREC"
141 C 19-MAY-1988 NVE CERN GENEVA
142 C MORE ACCURATE VALUES OF MASSES OF D AND ALPHA USED
143 C IN ROUTINE "ATOMAS"
144 C 20-MAY-1988 NVE CERN GENEVA
145 C PARTICLE MASSES, CHARGES AND CT VALUES FOR GHEISHA
146 C DIRECTLY TAKEN FROM THE GEANT ZEBRA BANKS IN
148 C 25-MAY-1988 NVE CERN GENEVA
149 C COMMON "/CSDATC" REMOVED AND SEQUENCES "/CSDIM"
150 C AND "/CSDAT" INTRODUCED FOR CROSS SECTION DATA IN
151 C ORDER TO SAVE MEMORY SPACE
152 C THESE SEQUENCES ARE INCLUDED IN ROUTINES "GHESIG"
154 C 15-JUN-1988 NVE CERN GENEVA
155 C SEQUENCES "PCODIM" AND "PCODAT" INTRODUCED FOR
156 C CENTRALISED GEANT/GHEISHA PARTICLE CODE CONVERSION
157 C THESE SEQUENCES ARE INCLUDED IN ROUTINES "GHESIG"
159 C 15-JUN-1988 NVE CERN GENEVA
160 C FOLLOWING UNUSED SEQUENCES REMOVED
161 C /BEAM /CALSTR /CBRDK /CMUEL /CPADE /CQINT /EQUAT
162 C /INPEV /MALARR /MUPAC /PARCOM /SCINT /STEPSI
163 C 15-JUN-1988 NVE CERN GENEVA
164 C ARRAY "IBAR(33)" REMOVED FROM ROUTINE "GHEISH"
165 C 23-JUN-1988 R.BRUN/NVE CERN GENEVA
166 C STMT. "KKPART=KPART" ADDED AT THE BEGINNING OF
167 C ROUTINE "GHEISH" TO PREVENT INFINITE LOOP FOR
168 C PARTICLE OF ZERO MOMENTUM
169 C 23-JUN-1988 NVE CERN GENEVA
170 C ALL VARIABLES "THENVE" RENAMED TO "RTHNVE" TO MATCH
171 C NEW IBM COMPILER (= ANSI STANDARD ?)
172 C 29-JUN-1988 NVE CERN GENEVA
173 C NAME OF ROUTINE "LENGTH" AND RELATED CALLS CHANGED
174 C TO "LENGTX" TO AVOID CLASH WITH INTERNAL ROUTINE
175 C ON THE CRAY COMPUTER
176 C 12-JUL-1988 NVE CERN GENEVA
177 C INELASTICITY FOR HADRONIC INTERACTIONS RE-CALCULATED
178 C AND CHANGES MADE IN ROUTINE "CINEMA" ACCORDINGLY
179 C 13-JUL-1988 NVE CERN GENEVA
180 C IPV(...) STUFF REMOVED AND CALL TO "RNDM" CHANGED
181 C TO "RANRES" IN ROUTINE "COSCAT"
182 C ALSO PROTECTION FOR "SINT" INCLUDED IN "COSCAT"
183 C 13-JUL-1988 NVE CERN GENEVA
184 C FUNCTION "RANRES" ADDED TO PATCH "GHEISHA"
185 C 01-AUG-1988 NVE CERN GENEVA
186 C BUG FIXED IN PARTICLE DISTRIBUTION IN BACKWARD
187 C AND FORWARD HEMISPHERE IN ROUTINE "TWOCLU"
188 C THIS ALSO AVOIDS INFINITE LOOPING FOR HIGH MULT.
189 C 15-AUG-1988 NVE CERN GENEVA
190 C SETTING OF MECHANISM "STOP" SUPRESSED IN "GHSTOP"
191 C TO AVOID DOUBLE SETTING.
192 C 16-JAN-1989 NVE CERN GENEVA
193 C CONDITIONAL CALL TO "GHEINI" ADDED IN ROUTINE "GHEISH"
194 C TO ENSURE PROPER INITIALIZATION IN ALL CASES.
195 C 19-JAN-1989 NVE CERN GENEVA
196 C INITIALIZATION OF IPA(...) ARRAY ADDED IN ROUTINES
197 C "GHEISH" AND "GNSLWD" BY "CALL VZERO(IPA(1),100)"
198 C TO MATCH THE ROUTINE "GENXPT"
199 C 31-JAN-1989 NVE CERN GENEVA
200 C PRINT STATEMENT IN "EXNU" MADE MORE CLEAR
201 C 01-FEB-1989 NVE CERN GENEVA
202 C PARTICLE CODES ARRAY "IKPART" EXTENDED
203 C TO SIZE (35) IN SEQUENCE "PCODIM"
204 C AND OMEGA AND ANTI-OMEGA ADDED TO GHEISHA CODES
205 C AT POS. 33 AND 34 RESP. IN SEQUENCE "PCODAT"
206 C ALSO ARRAYS "RMASS" AND "RCHARG" EXTENDED IN SIZE
208 C OMEGA AND ANTI-OMEGA PARAMETERS ALSO ADDED IN "GHEINI"
209 C 01-FEB-1989 NVE CERN GENEVA
210 C ROUTINES "GHESIG", "GHESIX" AND "GHEISH"
211 C UPDATED FOR OMEGA AND ANTI-OMEGA PARTICLES
212 C ALSO SIZE OF "CSEL" AND "CSIN" ARRAYS EXTENDED
213 C IN "/CSDIM" AND "/CSDAT" UPDATED ACCORDINGLY BY
214 C CHANGE IN ROUTINE "PCSDAT" OF PATCH "GHUTILS"
215 C 02-FEB-1989 NVE CERN GENEVA
216 C DECKS "CASXM" "CASX0" "CASOM" "CASAXM" "CASAX0"
217 C AND "CASAOM" ADDED TO TREAT THE CASCADES OF
218 C XI-, XI0, OMEGA- AND THEIR ANTI-PARTICLES.
219 C THE CASCADE ROUTINES FOR THE ANTI-PARTICLES ARE
220 C FIXUPS FOR THE MOMENT, BUT CORRECT ROUTINES ARE
222 C 16-FEB-1989 RB CERN GENEVA
223 C ALL "RNDM" STUFF REPLACED BY NEW GEANT RANDOM NUMBER
225 C 13-MAR-1989 NVE CERN GENEVA
226 C ALL CHANGES MADE BY RENE BRUN CHECKED AND SOME
227 C SERIOUS MISTAKES FIXED
228 C 17-MAR-1989 NVE CERN GENEVA
229 C CALCULATIONS FOR HADRONIC CROSS SECTIONS RE-DONE
230 C AND NEW FUNCTION "GHESIG" ADDED IN PATCH "GIFACE"
231 C THE OLD VERSION IS STILL AVAILABLE IN DECK "GHESIX"
232 C FOR BACKWARD COMPATIBILITY TESTS
233 C 20-MAR-1989 NVE CERN GENEVA
234 C CORRECT INTERPOLATIONS AND EXTRAPOLATIONS IN
235 C ROUTINES "STEEQ" AND "STPAIR"
236 C ALSO ALL "ANPOL" AND "ANPOL2" STUFF REMOVED
237 C 31-MAR-1989 NVE CERN GENEVA
238 C PARTICLE MASSES FOR PACKAGES OTHER THAN "GEANT" UPDATED
239 C ACCORDING TO PART. DATA 1986 IN ROUTINE "GHEINI"
240 C 23-MAY-1989 NVE CERN GENEVA
241 C "DIMENSION PR(50)" CHANGED TO "DIMENSION PR(*)"
242 C IN ROUTINE "ROTES2"
244 C Protection of all SQRT against <0
245 C GRNDM changed to 2 arguments only
246 C 12-JUN-1989 NVE CERN GENEVA
247 C "COST" PROTECTION RESTORED IN "GMUNU"
248 C 13-JUN-1989 H.FESEFELDT
249 C Corrections in GHESIG/GHESIX for ACC40
251 C Protection in GHESIG for IPART>48
252 C 29-JUN-1989 RB/NVE CERN GENEVA
253 C MASSES UPDATED IN GHEINI ACCORDING TO PART. DATA APR-1988
254 C AND PROTECTION AGAINST PRECISION PROBLEMS OF EK AND EDEP
256 C 29-JUN-1989 NVE CERN GENEVA
257 C MASSES TAKEN FROM GEANT PARTICLE DATA BANKS IN
258 C GMUNU, GMUNUI AND GMUSIG
259 C AND MASSES TAKEN FROM "RMASS" ARRAY IN ATOMAS
260 C 29-JUN-1989 RB CERN GENEVA
261 C "PDK" AND "DPDK" RENAMED TO "GPDK" AND "GDPDK" RESP.
262 C BECAUSE OF CONFLICT WITH NEW CERNLIB ROUTINES
263 C AND CALLS IN "PHASP" UPDATED ACCORDINGLY
264 C 29-JUN-1989 NVE CERN GENEVA
265 C OBSOLETE ROUTINE "GHESIX" REMOVED FROM PATCH "GIFACE"
266 C 04-JUL-1989 NVE CERN GENEVA
267 C PROTECTION AGAINST ANNIHILATION PROCESSES INTRODUCED
269 C 18-AUG-1989 NVE CERN GENEVA
270 C PROTECTION FOR NGKINE .GT. 100 ADDED IN "GHEISH"
271 C AND ALSO PROTECTIONS ADDED IN "SETTRK"
272 C 14-SEP-1989 HF RWTH AACHEN
273 C CORRECTED IPARM SETTING IN "CINEMA"
274 C 05-MAR-1990 HF RWTH AACHEN
275 C DOUBLE PRECISION RESTORED FOR PHASE SPACE PACKAGE
276 C AND PHOTO-FISSION AND ABSORBTION PROCESSES MODIFIED
277 C 05-MAR-1990 RB CERN GENEVA
278 C SOME PROTECTIONS INTRODUCED IN MODIFIED CODE
279 C 11-MAY-1990 NVE CERN GENEVA
280 C MODIFICATIONS OF HF AND RB IMPLEMENTED BY RETAINING
281 C THE LOGIC OF GEANH 3.13
282 C 14-MAY-1990 NVE CERN GENEVA
283 C PROTECTION FOR ATAN2 INTRODUCED IN "GMUNU"
284 C 15-MAY-1990 NVE CERN GENEVA
285 C COMPLETE "+KEEP" FOR /NUCIO/ UNDER PATCHY FLAG "SINGLE"
286 C AND THIS SEQUENCE INTODUCED IN "NUCREC" AND "PHPNUC"
287 C 17-MAY-1990 HF RWTH AACHEN/NVE CERN GENEVA
288 C DOUBLE INVOKATION OF NUCREC REMOVED FROM "GHEISH"
289 C FOR SLOW NEUTRONS WHICH RESULTS IN LONGER PATH
290 C 18-MAY-1990 RB CERN GENEVA
291 C CLEANER CONSTRUCTION TO PUT DOUBLE PRECISION OF
292 C /NUCIO UNDER CONTROL OF PATCHY FLAG "SINGLE"
293 C 20-JUN-1990 RB/NVE CERN GENEVA
294 C NEW OPTION IHADR=3 INTRODUCED TO SELECT INVOKATION
295 C OF THE NUCRIN PACKAGE FROM "GHEISH" FOR ENERGIES
297 C 27-SEP-1990 RB/NVE CERN GENEVA
298 C NUCRIN PACKAGE REPLACED BY NEW VERSION OF RB
299 C AND PROTECTION AGAINST CRAZY P VALUES ADDED IN "GHEISH"
300 C 27-SEP-1990 MR/NVE CERN GENEVA
301 C CORRECTION FOR THETA=PI IN ROUTINE "DEFS1"
302 C AS A RESULT OF THE BUG THE ORIGINAL (HIGH ENERGETIC)
303 C PARTICLE MIGHT HAVE GOT LOST IN CASE OF AN INTERACTION
304 C AT THE BEGINNING OF A DETECTOR
305 C 27-SEP-1990 HJT/NVE CERN GENEVA
306 C AVOIDING NEGATIVE W2 IN "GMUNU" AND CORRECTIONS MADE FOR
308 C 27-SEP-1990 NVE CERN GENEVA
309 C PRINT MESSAGES WITH CONTACT PERSON REMOVED IN "GHEISH"
310 C 28-SEP-1990 NVE CERN GENEVA
311 C GIFACE AND GHEISH CODE CLEANED FROM UNUSED VARIABLES ETC.
313 C 25-OCT-1990 NVE CERN GENEVA
314 C PROTECTION FOR 'ZINTHA' TO BECOME -0. ADDED IN "GHEISH"
315 C TO PREVENT INFINITE LOOP DUE TO PRECISION PROBLEM
316 C 26-OCT-1990 NVE CERN GENEVA
317 C LOCAL ARRAYS INITIALISED IN "PHASP" AND "PHPNUC" TO
318 C ENABLE RUNNING IN DYNAMIC COMP. MODE UNDER UNIX
319 C 29-OCT-1990 NVE CERN GENEVA
320 C BUG FIXED FOR DOUBLE PRECISION RANDOM NUMBERS IN "PHPNUC"
321 C AND FORMAT FOR DEBUG PRINT CHANGED IN "NUCREC"
323 C ********************************************************************
325 C *** IN CASE OF ANY TROUBLES, COMMENTS OR SUGGESTIONS CONTACT : ***
327 C *** NICK VAN EIJNDHOVEN ***
329 C *** B 595 R-004 ***
330 C *** CH-1211 GENEVA 23 ***
331 C *** SWITZERLAND ***
333 C *** TEL. +41-22-7674740 OR CERN BEEP 7294 ***
334 C *** BITNET ADDRESS : NICK@CERNVM.CERN.CH ***
336 C ********************************************************************