]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/mathlib/gen/g/diflan.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / g / diflan.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 DIFLAN,IF=DOUBLE and DIFLAN64,IF=-DOUBLE
11       FUNCTION DIFLAN(X)
12
13       DIMENSION P1(0:4),P2(0:4),P3(0:4),P4(0:4),P5(0:4),P6(0:4),P7(0:5)
14       DIMENSION Q1(0:4),Q2(0:4),Q3(0:4),Q4(0:4),Q5(0:4),Q6(0:4),Q7(0:5)
15       DIMENSION A1(1:6),A2(1:3)
16
17       DATA (P1(I),I=0,4),(Q1(I),I=0,4)
18      1/-0.30620 16156E-1,-0.12514 24734E+0,-0.95514 20540E-1,
19      2 -0.26943 56206E-1,-0.26175 52485E-2,
20      3  1.0             , 0.11777 46655E+1, 0.61309 93990E+0,
21      4  0.15727 03422E+0, 0.17262 95027E-1/
22
23       DATA (P2(I),I=0,4),(Q2(I),I=0,4)
24      1/-0.15491 26548E-1,-0.75512 22105E-1,-0.25986 23886E-1,
25      2  0.54712 70049E-2, 0.21522 70275E-2,
26      3  1.0             , 0.99974 60723E+0, 0.49882 64176E+0,
27      4  0.12891 04987E+0, 0.16396 32530E-1/
28
29       DATA (P3(I),I=0,4),(Q3(I),I=0,4)
30      1/-0.15471 35743E-1,-0.73041 84799E-1,-0.15341 51353E-1,
31      2  0.35687 80079E-2,-0.92961 96751E-4,
32      3  1.0             , 0.83941 07748E+0, 0.41280 36830E+0,
33      4  0.10502 22892E+0, 0.17008 94650E-1/
34
35       DATA (P4(I),I=0,4),(Q4(I),I=0,4)
36      1/-0.15462 73317E-1,-0.68561 27408E-1, 0.46112 67324E-2,
37      2 -0.25499 45537E-3, 0.58761 90635E-5,
38      3  1.0             , 0.54532 66037E+0, 0.28025 11577E+0,
39      4  0.47491 21515E-1, 0.10962 78827E-1/
40
41       DATA (P5(I),I=0,4),(Q5(I),I=0,4)
42      1/ 0.86420 27131E-5,-0.74742 91951E-3, 0.29356 78494E-1,
43      2 -0.27696 95199E+1,-0.77695 42153E+1,
44      3  1.0             , 0.90003 29289E+0, 0.34619 66768E+2,
45      4  0.46668 93094E+1, 0.19264 64264E+3/
46
47       DATA (P6(I),I=0,4),(Q6(I),I=0,4)
48      1/-0.20124 96309E+1,-0.27484 32206E+3,-0.57590 40086E+4,
49      2 -0.16000 68673E+5, 0.53346 52087E+5,
50      3  1.0             , 0.12295 70501E+3, 0.18746 82285E+4,
51      4  0.56780 25130E+4, 0.52823 54475E5/
52
53       DATA (P7(I),I=0,5),(Q7(I),I=0,5)
54      1/-0.20015 84932E+1,-0.24074 20185E+4,-0.54566 69704E+6,
55      2 -0.28170 17048E+8,-0.20643 92982E+9, 0.90496 05994E+9,
56      3  1.0             , 0.11829 29609E+4, 0.25522 99337E+6,
57      4  0.11392 05796E+8, 0.39347 02081E+8, 0.21080 69087E+9/
58
59       DATA (A1(I),I=1,6)
60      1/-0.45833 33333E+0, 0.86805 55556E-3,-0.28525 27006E-2,
61      2  0.53868 92562E-2,-0.14312 07031E-1, 0.50629 96176E-1/
62
63       DATA (A2(I),I=1,3)
64      1/-0.75367 06011E+1,-0.96018 56962E+1, 0.17146 15239E+3/
65
66       V=X
67       IF(V .LT. -2.6) THEN
68        U=EXP(V+1)
69        DIFLAN=0.3989422803*(EXP(-1/U)/U**1.5)*
70      1  (1+(A1(1)+(A1(2)+(A1(3)+(A1(4)+(A1(5)+A1(6)*U)*U)*U)*U)*U)*U)
71       ELSEIF(V .LT. -1.75) THEN
72        DIFLAN=(P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/
73      1        (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V)
74       ELSEIF(V .LT. -1.25) THEN
75        DIFLAN=(P2(0)+(P2(1)+(P2(2)+(P2(3)+P2(4)*V)*V)*V)*V)/
76      1        (Q2(0)+(Q2(1)+(Q2(2)+(Q2(3)+Q2(4)*V)*V)*V)*V)
77       ELSEIF(V .LT. 0.5) THEN
78        DIFLAN=(P3(0)+(P3(1)+(P3(2)+(P3(3)+P3(4)*V)*V)*V)*V)/
79      1        (Q3(0)+(Q3(1)+(Q3(2)+(Q3(3)+Q3(4)*V)*V)*V)*V)
80       ELSEIF(V .LT. 5) THEN
81        DIFLAN=(P4(0)+(P4(1)+(P4(2)+(P4(3)+P4(4)*V)*V)*V)*V)/
82      1        (Q4(0)+(Q4(1)+(Q4(2)+(Q4(3)+Q4(4)*V)*V)*V)*V)
83       ELSEIF(V .LT. 15) THEN
84        U=1/V
85        DIFLAN=(P5(0)+(P5(1)+(P5(2)+(P5(3)+P5(4)*U)*U)*U)*U)/
86      1        (Q5(0)+(Q5(1)+(Q5(2)+(Q5(3)+Q5(4)*U)*U)*U)*U)
87       ELSEIF(V .LT. 50) THEN
88        U=1/V
89        DIFLAN=U**3*(P6(0)+(P6(1)+(P6(2)+(P6(3)+P6(4)*U)*U)*U)*U)/
90      1             (Q6(0)+(Q6(1)+(Q6(2)+(Q6(3)+Q6(4)*U)*U)*U)*U)
91       ELSEIF(V .LT. 300) THEN
92        U=1/V
93        DIFLAN=U**3*
94      1       (P7(0)+(P7(1)+(P7(2)+(P7(3)+(P7(4)+P7(5)*U)*U)*U)*U)*U)/
95      2       (Q7(0)+(Q7(1)+(Q7(2)+(Q7(3)+(Q7(4)+Q7(5)*U)*U)*U)*U)*U)
96       ELSE
97        U=V-V*LOG(V)/(V+1)
98        U=1/(U-U*(U+LOG(U)-V)/(U+1))
99        DIFLAN=-U**3*(2.0+(A2(1)+(A2(2)+A2(3)*U)*U)*U)
100       ENDIF
101       RETURN
102       END