]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/neutron/interp.F
Fix problems in interpretation of GROUPPATH
[u/mrichter/AliRoot.git] / GEANT321 / neutron / interp.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:57  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 INTERP(X,Y,X1,Y1,X2,Y2,INT)
13 C       THIS ROUTINE PERFORMS THE INTERPOLATION ACCORDING
14 C       TO THE ENDF/B INTERPOLATION SCHEME INT
15 #include "geant321/minput.inc"
16       SAVE
17       IF(INT.LT.1.OR.INT.GT.5)GO TO 60
18       IF(X2.EQ.X1)GO TO 10
19       GO TO (10,20,30,40,50),INT
20    10 Y=Y1
21       RETURN
22    20 Y=Y1+(X-X1)*(Y2-Y1)/(X2-X1)
23       RETURN
24    30 IF(X1.EQ.0.0.OR.X2.EQ.0.0)GO TO 20
25       Y=Y1+ALOG(X/X1)*(Y2-Y1)/ALOG(X2/X1)
26       RETURN
27    40 IF(Y1.EQ.0.0.OR.Y2.EQ.0.0)GO TO 20
28       Y=Y1*EXP((X-X1)*ALOG(Y2/Y1)/(X2-X1))
29       RETURN
30    50 IF(Y1.EQ.0.0.OR.Y2.EQ.0.0)GO TO 30
31       IF(X1.EQ.0.0.OR.X2.EQ.0.0)GO TO 40
32       Y=Y1*EXP(ALOG(X/X1)*ALOG(Y2/Y1)/ALOG(X2/X1))
33       RETURN
34    60 WRITE(IOUT,10000)INT
35 10000 FORMAT(' MICAP: INTERP-INVALID INTERPOLATION SCHEME',I11)
36       WRITE(6,*) ' CALOR: ERROR in INTERP ====> STOP '
37       STOP
38       END