]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/neutron/seclf9.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / neutron / seclf9.F
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)
13 C       THIS ROUTINE SAMPLES AN EXIT ENERGY FROM
14 C       AN EVAPORATION SPECTRUM
15 #include "geant321/minput.inc"
16       DIMENSION FSE(*),IFSE(*)
17       SAVE
18 C       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
30 C       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
36 C       INCIDENT ENERGY IS ABOVE THE LAST INCIDENT ENERGY GIVEN
37 C       USE THE LAST DISTRIBUTION
38    30 THETA=FSE(IP+1)
39       GO TO 50
40 C       INCIDENT ENERGY IS BELOW THE FIRST INCIDENT ENERGY GIVEN
41 C       USE THE FIRST DISTRIBUTION
42    40 THETA=FSE(IP+1)
43 C       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
51 10000 FORMAT(' MICAP: WARNING-EX,EMAX=',1P2E13.5,' IN SECLF9')
52 #endif
53       EX=EMAX
54       RETURN
55       END