This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / g / denlan.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/04/01 15:02:43  mclareni
6 * Mathlib gen
7 *
8 *
9 #include "gen/pilot.h"
10 C     This will be DENLAN,IF=DOUBLE and DENLAN64,IF=-DOUBLE
11       FUNCTION DENLAN(X)
12
13       DIMENSION P1(0:4),P2(0:4),P3(0:4),P4(0:4),P5(0:4),P6(0:4)
14       DIMENSION Q1(0:4),Q2(0:4),Q3(0:4),Q4(0:4),Q5(0:4),Q6(0:4)
15       DIMENSION A1(1:3),A2(1:2)
16
17       DATA (P1(I),I=0,4),(Q1(I),I=0,4)
18      1/ 0.42598 94875E+0,-0.12497 62550E+0, 0.39842 43700E-1,
19      2 -0.62982 87635E-2, 0.15111 62253E-2,
20      3  1.0             ,-0.33882 60629E+0, 0.95943 93323E-1,
21      4 -0.16080 42283E-1, 0.37789 42063E-2/
22
23       DATA (P2(I),I=0,4),(Q2(I),I=0,4)
24      1/ 0.17885 41609E+0, 0.11739 57403E+0, 0.14888 50518E-1,
25      2 -0.13949 89411E-2, 0.12836 17211E-3,
26      3  1.0             , 0.74287 95082E+0, 0.31539 32961E+0,
27      4  0.66942 19548E-1, 0.87906 09714E-2/
28
29       DATA (P3(I),I=0,4),(Q3(I),I=0,4)
30      1/ 0.17885 44503E+0, 0.93591 61662E-1, 0.63253 87654E-2,
31      2  0.66116 67319E-4,-0.20310 49101E-5,
32      3  1.0             , 0.60978 09921E+0, 0.25606 16665E+0,
33      4  0.47467 22384E-1, 0.69573 01675E-2/
34
35       DATA (P4(I),I=0,4),(Q4(I),I=0,4)
36      1/ 0.98740 54407E+0, 0.11867 23273E+3, 0.84927 94360E+3,
37      2 -0.74377 92444E+3, 0.42702 62186E+3,
38      3  1.0             , 0.10686 15961E+3, 0.33764 96214E+3,
39      4  0.20167 12389E+4, 0.15970 63511E+4/
40
41       DATA (P5(I),I=0,4),(Q5(I),I=0,4)
42      1/ 0.10036 75074E+1, 0.16757 02434E+3, 0.47897 11289E+4,
43      2  0.21217 86767E+5,-0.22324 94910E+5,
44      3  1.0             , 0.15694 24537E+3, 0.37453 10488E+4,
45      4  0.98346 98876E+4, 0.66924 28357E+5/
46
47       DATA (P6(I),I=0,4),(Q6(I),I=0,4)
48      1/ 0.10008 27619E+1, 0.66491 43136E+3, 0.62972 92665E+5,
49      2  0.47555 46998E+6,-0.57436 09109E+7,
50      3  1.0             , 0.65141 01098E+3, 0.56974 73333E+5,
51      4  0.16591 74725E+6,-0.28157 59939E+7/
52
53       DATA (A1(I),I=1,3)
54      1/ 0.41666 66667E-1,-0.19965 27778E-1, 0.27095 38966E-1/
55
56       DATA (A2(I),I=1,2)
57      1/-0.18455 68670E+1,-0.42846 40743E+1/
58
59       V=X
60       IF(V .LT. -5.5) THEN
61        U=EXP(V+1.0)
62        DENLAN=0.3989422803*(EXP(-1/U)/SQRT(U))*
63      1        (1+(A1(1)+(A1(2)+A1(3)*U)*U)*U)
64       ELSEIF(V .LT. -1) THEN
65        U=EXP(-V-1)
66        DENLAN=EXP(-U)*SQRT(U)*
67      1        (P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/
68      2        (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V)
69       ELSEIF(V .LT. 1) THEN
70        DENLAN=(P2(0)+(P2(1)+(P2(2)+(P2(3)+P2(4)*V)*V)*V)*V)/
71      1        (Q2(0)+(Q2(1)+(Q2(2)+(Q2(3)+Q2(4)*V)*V)*V)*V)
72       ELSEIF(V .LT. 5) THEN
73        DENLAN=(P3(0)+(P3(1)+(P3(2)+(P3(3)+P3(4)*V)*V)*V)*V)/
74      1        (Q3(0)+(Q3(1)+(Q3(2)+(Q3(3)+Q3(4)*V)*V)*V)*V)
75       ELSEIF(V .LT. 12) THEN
76        U=1/V
77        DENLAN=U**2*(P4(0)+(P4(1)+(P4(2)+(P4(3)+P4(4)*U)*U)*U)*U)/
78      1             (Q4(0)+(Q4(1)+(Q4(2)+(Q4(3)+Q4(4)*U)*U)*U)*U)
79       ELSEIF(V .LT. 50) THEN
80        U=1/V
81        DENLAN=U**2*(P5(0)+(P5(1)+(P5(2)+(P5(3)+P5(4)*U)*U)*U)*U)/
82      1             (Q5(0)+(Q5(1)+(Q5(2)+(Q5(3)+Q5(4)*U)*U)*U)*U)
83       ELSEIF(V .LT. 300) THEN
84        U=1/V
85        DENLAN=U**2*(P6(0)+(P6(1)+(P6(2)+(P6(3)+P6(4)*U)*U)*U)*U)/
86      1             (Q6(0)+(Q6(1)+(Q6(2)+(Q6(3)+Q6(4)*U)*U)*U)*U)
87       ELSE
88        U=1/(V-V*LOG(V)/(V+1))
89        DENLAN=U**2*(1+(A2(1)+A2(2)*U)*U)
90       ENDIF
91       RETURN
92       END