]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gphys/gmol4.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gphys / gmol4.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:26 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.22 by S.Giani
11*-- Author :
12 SUBROUTINE GMOL4(Y,X,VAL,ARG,EPS,IER)
13C.
14C. ******************************************************************
15C. * *
16C. * ROUTINE TAKEN FROM IBM SCIENTIFIC SUBROUTINE PACKAGE *
17C. * *
18C. * 4 POINT CONTINUED FRACTION INTERPOLATION *
19C. * Y=INTERPOLATED VALUE FOR THE ARGUMENT X . *
20C. * VAL=VALUE ARRAY . *
21C. * ARG=ARGUMENT ARRAY . *
22C. * EPS=DESIRED ACCURACY . *
23C. * OUTPUT ERROR PARAMETER IER = 0 ACCURACY O.K. *
24C. * = 1 ACCURACY CAN NOT BE TESTED *
25C. * IN 4TH ORDER INTERPOLATION . *
26C. * = 2 TWO IDENTICAL ELEMENTS IN THE *
27C. * ARGUMENT ARRAY . *
28C. * *
29C. * ==>Called by : GMOLIE *
30C. * Author M.S. Dixit NRCC Ottawa ********* *
31C. * *
32C. ******************************************************************
33C.
34 DIMENSION ARG(4),VAL(4)
35C.
36C. ------------------------------------------------------------------
37C.
38 IER=1
39 Y=VAL(1)
40 P2=1.
41 P3=Y
42 Q2=0.
43 Q3=1.
44 DO 16 I=2,4
45 II=0
46 P1=P2
47 P2=P3
48 Q1=Q2
49 Q2=Q3
50 Z=Y
51 JEND=I-1
52 3 AUX=VAL(I)
53 DO 10 J=1,JEND
54 H=VAL(I)-VAL(J)
55 IF(ABS(H).GT.1.E-6*ABS(VAL(I)))GO TO 9
56 IF(ARG(I).EQ.ARG(J))GO TO 17
57 IF(J.LT.JEND)GO TO 8
58 II=II+1
59 III=I+II
60 IF(III.GT.4)GO TO 19
61 VAL(I)=VAL(III)
62 VAL(III)=AUX
63 AUX=ARG(I)
64 ARG(I)=ARG(III)
65 ARG(III)=AUX
66 GO TO 3
67 8 VAL(I)=1.E36
68 GO TO 10
69 9 VAL(I)=(ARG(I)-ARG(J))/H
70 10 CONTINUE
71 P3=VAL(I)*P2+(X-ARG(I-1))*P1
72 Q3=VAL(I)*Q2+(X-ARG(I-1))*Q1
73 IF(Q3.NE.0.)THEN
74 Y=P3/Q3
75 ELSE
76 Y=1.E36
77 ENDIF
78 DELT=ABS(Z-Y)
79 IF(DELT.LE.EPS)GO TO 19
80 16 CONTINUE
81 RETURN
82 17 IER=2
83 RETURN
84 19 IER=0
85 END