]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/neutron/cevap.F
This commit was generated by cvs2svn to compensate for changes in r1018,
[u/mrichter/AliRoot.git] / GEANT321 / neutron / cevap.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:55  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/04 23/02/95  14.46.01  by  S.Giani
11 *-- Author :
12       SUBROUTINE CEVAP(E,Q,ATAR,CB,EX)
13 C       THIS ROUTINE SAMPLES AN EXIT ENERGY FROM AN
14 C       EVAPORATION SPECTRUM
15 #include "geant321/minput.inc"
16       SAVE
17 C       CONVERT THE COULOMB BARRIER (CB) TO UNITS OF EV
18       CB=CB*1.00E+06
19 C       CALCULATE THE MAXIMUM ENERGY AVAILABLE
20       CBI=CB
21       EMAX=E+Q-CB
22       IF(EMAX.GT.0.0)GO TO 10
23       CB=0.5*CB
24       EMAX=E+Q-CB
25       IF(EMAX.GT.0.0)GO TO 10
26       CB=0.0
27       EMAX=E+Q-CB
28       IF(EMAX.GT.0.0)GO TO 10
29       WRITE(IOUT,10000)E,EMAX,Q,CBI
30 10000 FORMAT(' MICAP: NEGATIVE MAXIMUM ENERGY CALCULATED IN ROUTINE ',
31      1'EVAP --- INDICATING PROBABLE CROSS SECTION ERROR ALLOWING ',
32      2'THE REACTION TO OCCUR',/,10X,'E,EMAX,Q,CB=',4E13.5)
33       WRITE(6,*) ' CALOR: Fatal ERROR in EVAP ====> STOP '
34       STOP
35 C       CALCULATE THE NUCLEAR TEMPERATURE (THETA)
36    10 THETA=4.0161E+03*(SQRT(E+Q-CB)/(ATAR**0.8333333))
37 C       SELECT THE EXIT ENERGY FROM AN EVAPORATION SPECTRUM
38    20 R1=FLTRNF(0)
39       R2=FLTRNF(0)
40       W=-ALOG(R1*R2)
41       EX=THETA*W
42       IF(EX.LT.0.0) EX = 0.0
43       IF(EX.LE.EMAX)RETURN
44 C       RESAMPLE 75% OF THE TIME IF EX IS GREATER THAN EMAX
45       R=FLTRNF(0)
46       IF(R.LE.0.75)GO TO 20
47 #if defined(CERNLIB_MDEBUG)
48       IF(EX.GT.20.*EMAX) WRITE(IOUT,10100)EX,EMAX
49 10100 FORMAT(' MICAP: WARNING EX > EMAX=',2E13.5,' IN ROUTINE EVAP')
50 #endif
51       EX=EMAX
52       RETURN
53       END