* * $Id: denlan.F,v 1.1.1.1 1996/04/01 15:02:43 mclareni Exp $ * * $Log: denlan.F,v $ * Revision 1.1.1.1 1996/04/01 15:02:43 mclareni * Mathlib gen * * #include "gen/pilot.h" C This will be DENLAN,IF=DOUBLE and DENLAN64,IF=-DOUBLE FUNCTION DENLAN(X) DIMENSION P1(0:4),P2(0:4),P3(0:4),P4(0:4),P5(0:4),P6(0:4) DIMENSION Q1(0:4),Q2(0:4),Q3(0:4),Q4(0:4),Q5(0:4),Q6(0:4) DIMENSION A1(1:3),A2(1:2) DATA (P1(I),I=0,4),(Q1(I),I=0,4) 1/ 0.42598 94875E+0,-0.12497 62550E+0, 0.39842 43700E-1, 2 -0.62982 87635E-2, 0.15111 62253E-2, 3 1.0 ,-0.33882 60629E+0, 0.95943 93323E-1, 4 -0.16080 42283E-1, 0.37789 42063E-2/ DATA (P2(I),I=0,4),(Q2(I),I=0,4) 1/ 0.17885 41609E+0, 0.11739 57403E+0, 0.14888 50518E-1, 2 -0.13949 89411E-2, 0.12836 17211E-3, 3 1.0 , 0.74287 95082E+0, 0.31539 32961E+0, 4 0.66942 19548E-1, 0.87906 09714E-2/ DATA (P3(I),I=0,4),(Q3(I),I=0,4) 1/ 0.17885 44503E+0, 0.93591 61662E-1, 0.63253 87654E-2, 2 0.66116 67319E-4,-0.20310 49101E-5, 3 1.0 , 0.60978 09921E+0, 0.25606 16665E+0, 4 0.47467 22384E-1, 0.69573 01675E-2/ DATA (P4(I),I=0,4),(Q4(I),I=0,4) 1/ 0.98740 54407E+0, 0.11867 23273E+3, 0.84927 94360E+3, 2 -0.74377 92444E+3, 0.42702 62186E+3, 3 1.0 , 0.10686 15961E+3, 0.33764 96214E+3, 4 0.20167 12389E+4, 0.15970 63511E+4/ DATA (P5(I),I=0,4),(Q5(I),I=0,4) 1/ 0.10036 75074E+1, 0.16757 02434E+3, 0.47897 11289E+4, 2 0.21217 86767E+5,-0.22324 94910E+5, 3 1.0 , 0.15694 24537E+3, 0.37453 10488E+4, 4 0.98346 98876E+4, 0.66924 28357E+5/ DATA (P6(I),I=0,4),(Q6(I),I=0,4) 1/ 0.10008 27619E+1, 0.66491 43136E+3, 0.62972 92665E+5, 2 0.47555 46998E+6,-0.57436 09109E+7, 3 1.0 , 0.65141 01098E+3, 0.56974 73333E+5, 4 0.16591 74725E+6,-0.28157 59939E+7/ DATA (A1(I),I=1,3) 1/ 0.41666 66667E-1,-0.19965 27778E-1, 0.27095 38966E-1/ DATA (A2(I),I=1,2) 1/-0.18455 68670E+1,-0.42846 40743E+1/ V=X IF(V .LT. -5.5) THEN U=EXP(V+1.0) DENLAN=0.3989422803*(EXP(-1/U)/SQRT(U))* 1 (1+(A1(1)+(A1(2)+A1(3)*U)*U)*U) ELSEIF(V .LT. -1) THEN U=EXP(-V-1) DENLAN=EXP(-U)*SQRT(U)* 1 (P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/ 2 (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V) ELSEIF(V .LT. 1) THEN DENLAN=(P2(0)+(P2(1)+(P2(2)+(P2(3)+P2(4)*V)*V)*V)*V)/ 1 (Q2(0)+(Q2(1)+(Q2(2)+(Q2(3)+Q2(4)*V)*V)*V)*V) ELSEIF(V .LT. 5) THEN DENLAN=(P3(0)+(P3(1)+(P3(2)+(P3(3)+P3(4)*V)*V)*V)*V)/ 1 (Q3(0)+(Q3(1)+(Q3(2)+(Q3(3)+Q3(4)*V)*V)*V)*V) ELSEIF(V .LT. 12) THEN U=1/V DENLAN=U**2*(P4(0)+(P4(1)+(P4(2)+(P4(3)+P4(4)*U)*U)*U)*U)/ 1 (Q4(0)+(Q4(1)+(Q4(2)+(Q4(3)+Q4(4)*U)*U)*U)*U) ELSEIF(V .LT. 50) THEN U=1/V DENLAN=U**2*(P5(0)+(P5(1)+(P5(2)+(P5(3)+P5(4)*U)*U)*U)*U)/ 1 (Q5(0)+(Q5(1)+(Q5(2)+(Q5(3)+Q5(4)*U)*U)*U)*U) ELSEIF(V .LT. 300) THEN U=1/V DENLAN=U**2*(P6(0)+(P6(1)+(P6(2)+(P6(3)+P6(4)*U)*U)*U)*U)/ 1 (Q6(0)+(Q6(1)+(Q6(2)+(Q6(3)+Q6(4)*U)*U)*U)*U) ELSE U=1/(V-V*LOG(V)/(V+1)) DENLAN=U**2*(1+(A2(1)+A2(2)*U)*U) ENDIF RETURN END