]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/neutron/seclf9.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / neutron / seclf9.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:59 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 SECLF9(FSE,IFSE,EX,U,E)
13C THIS ROUTINE SAMPLES AN EXIT ENERGY FROM
14C AN EVAPORATION SPECTRUM
15#include "geant321/minput.inc"
16 DIMENSION FSE(*),IFSE(*)
17 SAVE
18C DETERMINE THETA
19 IP=1
20 EMAX=E-U
21 NR=IFSE(IP)
22 NE=IFSE(IP+1)
23 IP=2*NR+1
24 DO 10 I=1,NE
25 IP=IP+2
26 IF(E.LE.FSE(IP))GO TO 20
27 10 CONTINUE
28 GO TO 30
29 20 IF(I.EQ.1)GO TO 40
30C DETERMINE THE INTERPOLATING SCHEME
31 CALL INTSCH(IFSE,I,IS,NR)
32 E1=FSE(IP-2)
33 E2=FSE(IP)
34 CALL INTERP(E,THETA,E1,FSE(IP-1),E2,FSE(IP+1),IS)
35 GO TO 50
36C INCIDENT ENERGY IS ABOVE THE LAST INCIDENT ENERGY GIVEN
37C USE THE LAST DISTRIBUTION
38 30 THETA=FSE(IP+1)
39 GO TO 50
40C INCIDENT ENERGY IS BELOW THE FIRST INCIDENT ENERGY GIVEN
41C USE THE FIRST DISTRIBUTION
42 40 THETA=FSE(IP+1)
43C SELECT THE EXIT ENERGY FROM THE EVAPORATION SPECTRUM
44 50 R1=FLTRNF(0)
45 R2=FLTRNF(0)
46 W=-ALOG(R1*R2)
47 EX=THETA*W
48 IF(EX.LE.EMAX)RETURN
49#if defined(CERNLIB_MDEBUG)
50 IF(EX.GT.5.*EMAX) WRITE(IOUT,10000)EX,EMAX
5110000 FORMAT(' MICAP: WARNING-EX,EMAX=',1P2E13.5,' IN SECLF9')
52#endif
53 EX=EMAX
54 RETURN
55 END