5 * Revision 1.1.1.1 1995/10/24 10:19:56 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.42 by S.Giani
15 *=== evevap ===========================================================*
17 SUBROUTINE EVEVAP ( WEE )
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
23 *----------------------------------------------------------------------*
25 * EVent EVAPoration: this routine is used to steer both the evapora- *
26 * tion, the high energy fission, possibly a future fragmentation *
27 * and the gamma deexcitation routines *
29 * Created on 15 may 1991 by Alfredo Ferrari & Paola Sala *
32 * Last change on 19-apr-93 By Alfredo Ferrari, INFN - Milan *
34 *----------------------------------------------------------------------*
36 #include "geant321/balanc.inc"
37 #include "geant321/eva1.inc"
38 #include "geant321/fheavy.inc"
39 #include "geant321/finuc.inc"
40 #include "geant321/hetc5.inc"
41 #include "geant321/hetc7.inc"
42 #include "geant321/hettp.inc"
43 #include "geant321/higfis.inc"
44 #include "geant321/labcos.inc"
45 #include "geant321/nucdat.inc"
46 #include "geant321/parevt.inc"
47 #include "geant321/part.inc"
48 #include "geant321/resnuc.inc"
50 PARAMETER ( AMUMEV = 1.D+03 * AMUAMU )
52 COMMON /FKEVNT/ LNUCRI, LHADRI
53 LOGICAL LNUCRI, LHADRI
54 * The initial excitation energy, mass and charge of the nucleus are
55 * put into Ex, Apr, Zpr (common Hetc5)
56 EX = MAX ( 1000 * TVCMS, ANGLGB )
59 * Reset the fission/fragmentation counter:
61 * Ammres is the atomic mass of the residual nucleus
62 * Reset accumulators for the energy conservation check (they are only
64 EOTEST = AMMRES + TVCMS + TVRECL
66 * +-------------------------------------------------------------------*
67 * | Set the variables recording the recoil direction of the residual
69 IF ( PTRES .GT. 0.D+00 ) THEN
70 COSLBR (1) = PXRES / PTRES
71 COSLBR (2) = PYRES / PTRES
72 COSLBR (3) = PZRES / PTRES
74 * +-------------------------------------------------------------------*
75 * | It can happen for pion capture for example that ptres=0
76 * | ( it is always 0 if no "direct" particle is emitted )
83 * +-------------------------------------------------------------------*
84 * The call to getrig is useless, since we actually need no rotation
85 * CALL GETRIG ( ZERZER, ZERZER, ONEONE )
86 EREC = 1.D+03 * TVRECL
88 * +-------------------------------------------------------------------*
89 * | Check for fission/fragmentation: if it occurred loop back on the
90 * | fission fragments to possibly evaporate further particles:
95 * | +----------------------------------------------------------------*
96 * | | Update the partial counters of evaporated particles
98 NPARTF (J,JFISS) = NPART (J)
99 HEVFIS (JFISS) = HEVSUM
102 * | +----------------------------------------------------------------*
103 * | +----------------------------------------------------------------*
104 * | | The following "do" is not structured as a do since Nfiss can
105 * | | be incremented during evaporation/fragmentation of the
106 * | | previously generated fragments
109 AMMRES = 1.D-03 * AMFIS (JFISS)
110 PTRES = 1.D-03 * PPFIS (JFISS)
114 EX = MAX ( UFIS (JFISS), ANGLGB )
115 COSLBR (1) = COSLFF (1,JFISS)
116 COSLBR (2) = COSLFF (2,JFISS)
117 COSLBR (3) = COSLFF (3,JFISS)
118 * | | The call to getrig is useless, since we need no rotation
119 * CALL GETRIG ( ZERZER, ZERZER, ONEONE )
125 * | | +-------------------------------------------------------------*
126 * | | | If we enter this branch the present fragment has been
127 * | | | completely evaporated without further fragmentation and
128 * | | | it is ready for the final gamma deexcitation and for
129 * | | | residual nuclei scoring
130 IF ( .NOT. FISINH .AND. IBHLP .GT. 0 ) THEN
131 AMTFIS (JFISS) = ANOW * AMUMEV + FKENER ( ANOW, ZNOW )
133 RECFIS (JFISS) = EREC
134 PPTFIS (JFISS) = SQRT ( EREC * ( EREC + TWOTWO
135 & * ( AMTFIS (JFISS) + UTFIS (JFISS) ) ) )
138 COSLFF (1,JFISS) = COSLBR (1)
139 COSLFF (2,JFISS) = COSLBR (2)
140 COSLFF (3,JFISS) = COSLBR (3)
141 ETEVAP = ETEVAP + 1.D-03 * ( EREC + AMTFIS (JFISS)
144 * | | +-------------------------------------------------------------*
145 * | | | Fragment furtherly fragmented or completely evaporated into
146 * | | | p,n,d,t,3-He and alphas
149 ATFIS (JFISS) = ZERZER
150 ZTFIS (JFISS) = ZERZER
153 * | | +-------------------------------------------------------------*
154 * | | +-------------------------------------------------------------*
155 * | | | Update the partial counters of evaporated particles
157 NPARTF (J,JFISS) = NPART (J)
158 HEVFIS (JFISS) = HEVSUM
161 * | | +-------------------------------------------------------------*
162 IF ( JFISS .LT. NFISS ) GO TO 50
164 * | +----------------------------------------------------------------*
168 * +-------------------------------------------------------------------*
175 IEVAPL = IEVNEU + IEVPRO
176 IEVAPH = IEVDEU + IEVTRI + IEV3HE + IEV4HE
177 * +-------------------------------------------------------------------*
178 * | Add to the secondary stack the evaporated neutrons
179 DO 100 IP = 1, NPART (1)
182 TKI (NP) = 1.D-03 * EPART ( IP, 1 )
184 CXR (NP) = COSEVP ( 1, IP, 1 )
185 CYR (NP) = COSEVP ( 2, IP, 1 )
186 CZR (NP) = COSEVP ( 3, IP, 1 )
187 PLR (NP) = SQRT ( TKI (NP) * ( TKI (NP) + 2.D+00 * AM (8) ) )
188 ETEVAP = ETEVAP + TKI (NP) + AMHEAV (1)
191 * +-------------------------------------------------------------------*
193 * +-------------------------------------------------------------------*
194 * | Add to the secondary stack the evaporated protons
195 DO 200 IP = 1, NPART (2)
198 TKI (NP) = 1.D-03 * EPART ( IP, 2 )
200 CXR (NP) = COSEVP ( 1, IP, 2 )
201 CYR (NP) = COSEVP ( 2, IP, 2 )
202 CZR (NP) = COSEVP ( 3, IP, 2 )
203 PLR (NP) = SQRT ( TKI (NP) * ( TKI (NP) + 2.D+00 * AM (1) ) )
204 ETEVAP = ETEVAP + TKI (NP) + AMHEAV (2)
207 * +-------------------------------------------------------------------*
209 * +-------------------------------------------------------------------*
210 * | Add to the heavy stack the other evaporated (if requested)
213 * | +----------------------------------------------------------------*
214 * | | Loop over the particle types:
216 * | | +-------------------------------------------------------------*
218 DO 300 IP = 1, NPART (JP)
221 TKHEAV (NPHEAV) = 1.D-03 * EPART ( IP, JP )
222 WHEAVY (NPHEAV) = WEE
223 CXHEAV (NPHEAV) = COSEVP ( 1, IP, JP )
224 CYHEAV (NPHEAV) = COSEVP ( 2, IP, JP )
225 CZHEAV (NPHEAV) = COSEVP ( 3, IP, JP )
226 PHEAVY (NPHEAV) = SQRT ( ( TKHEAV (NPHEAV) + TWOTWO
227 & * AMHEAV (JP) ) * TKHEAV (NPHEAV) )
228 ETEVAP = ETEVAP + TKHEAV (NPHEAV) + AMHEAV (JP)
231 * | | +-------------------------------------------------------------*
234 * | +----------------------------------------------------------------*
236 * +-------------------------------------------------------------------*
240 ETEVAP = ETEVAP + 1.D-03 * HEVSUM + IEVDEU * AMHEAV (3)
241 & + IEVTRI * AMHEAV (4)
242 & + IEV3HE * AMHEAV (5)
243 & + IEV4HE * AMHEAV (6)
246 * +-------------------------------------------------------------------*
247 * +-------------------------------------------------------------------*
248 * | Fission and/or fragmentation occurred:
250 TVHEAV = 1.D-03 * HEVSUM
251 IF ( ABS ( ETEVAP - EOTEST )/ EOTEST .GT. 1.D-07 ) THEN
253 & ' Evevap_fis: failure in energy conservation!!',
256 & ' Evevap_fis: failure in energy conservation!!',
261 * | +----------------------------------------------------------------*
262 * | | Loop on fission/fragmentation fragments
263 DO 5000 JFISS = 1, NFISS
266 IBRES = NINT ( ANOW )
267 ICRES = NINT ( ZNOW )
268 * | | +-------------------------------------------------------------*
269 * | | | Check the residual nucleus:
270 IF ( IBRES .EQ. 0 ) THEN
280 * | | +-------------------------------------------------------------*
281 * | | | real fragment:
283 AMMRES = 1.D-03 * AMTFIS (JFISS)
284 TVCMS = 1.D-03 * UTFIS (JFISS)
285 TVRECL = 1.D-03 * RECFIS (JFISS)
286 PTRES = 1.D-03 * PPTFIS (JFISS)
287 PXRES = PTRES * COSLFF (1,JFISS)
288 PYRES = PTRES * COSLFF (2,JFISS)
289 PZRES = PTRES * COSLFF (3,JFISS)
290 ERES = AMMRES + TVCMS + TVRECL
294 * | | +-------------------------------------------------------------*
295 * | | +-------------------------------------------------------------*
296 * | | | Check if the deexcitation module have to be called
300 IDEHLP = IDEHLP + IDEEXG
302 * | | +-------------------------------------------------------------*
305 TVCHLP = TVCHLP + TVCMS
308 * | | +-------------------------------------------------------------*
309 * | | +-------------------------------------------------------------*
310 * | | | Check if fission fragments have to be put on stack
311 IF ( LHEAVY .AND. IBRES .GT. 0 ) THEN
313 TKHEAV (NPHEAV) = EKRES
314 PHEAVY (NPHEAV) = PTRES
315 CXHEAV (NPHEAV) = PXRES / PTRES
316 CYHEAV (NPHEAV) = PYRES / PTRES
317 CZHEAV (NPHEAV) = PZRES / PTRES
318 WHEAVY (NPHEAV) = WEE
319 KHEAVY (NPHEAV) = 6 + JFISS
320 AMHEAV (KHEAVY(NPHEAV)) = AMMRES
321 IBHEAV (KHEAVY(NPHEAV)) = IBRES
322 ICHEAV (KHEAVY(NPHEAV)) = ICRES
325 * | | +-------------------------------------------------------------*
326 TVHEAV = TVHEAV + TVRECL
329 * | +----------------------------------------------------------------*
344 * +-------------------------------------------------------------------*
345 * | Normal evaporation:
349 IBRES = NINT ( ANOW )
350 ICRES = NINT ( ZNOW )
351 * | Ammres is the atomic mass of the residual nucleus
352 * | +----------------------------------------------------------------*
353 * | | Check the residual nucleus:
354 IF ( IBRES .EQ. 0 ) THEN
364 * | +----------------------------------------------------------------*
367 AMMRES = ANOW * AMUAMU + 1.D-03 * FKENER ( ANOW, ZNOW )
369 TVRECL = 1.D-03 * EREC
370 PTRES = SQRT ( TVRECL * ( TVRECL + 2.D+00 * ( AMMRES +
372 PXRES = PTRES * COSLBR (1)
373 PYRES = PTRES * COSLBR (2)
374 PZRES = PTRES * COSLBR (3)
375 ERES = AMMRES + TVCMS + TVRECL
379 * | +----------------------------------------------------------------*
380 TVHEAV = 1.D-03 * HEVSUM
381 ETEVAP = ETEVAP + ERES
382 IF ( ABS ( ETEVAP - EOTEST )/ EOTEST .GT. 1.D-07 ) THEN
384 & ' Evevap: failure in energy conservation!!',
387 & ' Evevap: failure in energy conservation!!',
390 * | Check if the deexcitation module have to be called
391 IF ( LDEEXG ) CALL EVDEEX ( WEE )
394 * +-------------------------------------------------------------------*
396 *=== End of subroutine Evevap =========================================*