]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 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 DISLAN,IF=DOUBLE and DISLAN64,IF=-DOUBLE | |
11 | FUNCTION DISLAN(X) | |
12 | ||
13 | DIMENSION P1(0:4),P2(0:3),P3(0:3),P4(0:3),P5(0:3),P6(0:3) | |
14 | DIMENSION Q1(0:4),Q2(0:3),Q3(0:3),Q4(0:3),Q5(0:3),Q6(0:3) | |
15 | DIMENSION A1(1:3),A2(1:3) | |
16 | ||
17 | DATA (P1(I),I=0,4),(Q1(I),I=0,4) | |
18 | 1/ 0.25140 91491E+0,-0.62505 80444E-1, 0.14583 81230E-1, | |
19 | 2 -0.21088 17737E-2, 0.74112 47290E-3, | |
20 | 3 1.0 ,-0.55711 75625E-2, 0.62253 10236E-1, | |
21 | 4 -0.31373 78427E-2, 0.19314 96439E-2/ | |
22 | ||
23 | DATA (P2(I),I=0,3),(Q2(I),I=0,3) | |
24 | 1/ 0.28683 28584E+0, 0.35643 63231E+0, 0.15235 18695E+0, | |
25 | 2 0.22513 04883E-1, | |
26 | 3 1.0 , 0.61911 36137E+0, 0.17207 21448E+0, | |
27 | 4 0.22785 94771E-1/ | |
28 | ||
29 | DATA (P3(I),I=0,3),(Q3(I),I=0,3) | |
30 | 1/ 0.28683 29066E+0, 0.30038 28436E+0, 0.99509 51941E-1, | |
31 | 2 0.87338 27185E-2, | |
32 | 3 1.0 , 0.42371 90502E+0, 0.10956 31512E+0, | |
33 | 4 0.86938 51567E-2/ | |
34 | ||
35 | DATA (P4(I),I=0,3),(Q4(I),I=0,3) | |
36 | 1/ 0.10003 51630E+1, 0.45035 92498E+1, 0.10858 83880E+2, | |
37 | 2 0.75360 52269E+1, | |
38 | 3 1.0 , 0.55399 69678E+1, 0.19335 81111E+2, | |
39 | 4 0.27213 21508E+2/ | |
40 | ||
41 | DATA (P5(I),I=0,3),(Q5(I),I=0,3) | |
42 | 1/ 0.10000 06517E+1, 0.49094 14111E+2, 0.85055 44753E+2, | |
43 | 2 0.15321 53455E+3, | |
44 | 3 1.0 , 0.50099 28881E+2, 0.13998 19104E+3, | |
45 | 4 0.42000 02909E+3/ | |
46 | ||
47 | DATA (P6(I),I=0,3),(Q6(I),I=0,3) | |
48 | 1/ 0.10000 00983E+1, 0.13298 68456E+3, 0.91621 49244E+3, | |
49 | 2 -0.96050 54274E+3, | |
50 | 3 1.0 , 0.13398 87843E+3, 0.10559 90413E+4, | |
51 | 4 0.55322 24619E+3/ | |
52 | ||
53 | DATA (A1(I),I=1,3) | |
54 | 1/-0.45833 33333E+0, 0.66753 47222E+0,-0.16417 41416E+1/ | |
55 | ||
56 | DATA (A2(I),I=1,3) | |
57 | 1/ 1.0 ,-0.42278 43351E+0,-0.20434 03138E+1/ | |
58 | ||
59 | ENTRY DSTLAN(X) | |
60 | ||
61 | V=X | |
62 | IF(V .LT. -5.5) THEN | |
63 | U=EXP(V+1) | |
64 | DISLAN=0.3989422803*EXP(-1/U)*SQRT(U)* | |
65 | 1 (1+(A1(1)+(A1(2)+A1(3)*U)*U)*U) | |
66 | ELSEIF(V .LT. -1) THEN | |
67 | U=EXP(-V-1) | |
68 | DISLAN=(EXP(-U)/SQRT(U))* | |
69 | 1 (P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/ | |
70 | 2 (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V) | |
71 | ELSEIF(V .LT. 1) THEN | |
72 | DISLAN=(P2(0)+(P2(1)+(P2(2)+P2(3)*V)*V)*V)/ | |
73 | 1 (Q2(0)+(Q2(1)+(Q2(2)+Q2(3)*V)*V)*V) | |
74 | ELSEIF(V .LT. 4) THEN | |
75 | DISLAN=(P3(0)+(P3(1)+(P3(2)+P3(3)*V)*V)*V)/ | |
76 | 1 (Q3(0)+(Q3(1)+(Q3(2)+Q3(3)*V)*V)*V) | |
77 | ELSEIF(V .LT. 12) THEN | |
78 | U=1/V | |
79 | DISLAN=(P4(0)+(P4(1)+(P4(2)+P4(3)*U)*U)*U)/ | |
80 | 1 (Q4(0)+(Q4(1)+(Q4(2)+Q4(3)*U)*U)*U) | |
81 | ELSEIF(V .LT. 50) THEN | |
82 | U=1/V | |
83 | DISLAN=(P5(0)+(P5(1)+(P5(2)+P5(3)*U)*U)*U)/ | |
84 | 1 (Q5(0)+(Q5(1)+(Q5(2)+Q5(3)*U)*U)*U) | |
85 | ELSEIF(V .LT. 300) THEN | |
86 | U=1/V | |
87 | DISLAN=(P6(0)+(P6(1)+(P6(2)+P6(3)*U)*U)*U)/ | |
88 | 1 (Q6(0)+(Q6(1)+(Q6(2)+Q6(3)*U)*U)*U) | |
89 | ELSE | |
90 | U=1/(V-V*LOG(V)/(V+1)) | |
91 | DISLAN=1-(A2(1)+(A2(2)+A2(3)*U)*U)*U | |
92 | ENDIF | |
93 | RETURN | |
94 | END |