r9aimp.f 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. *DECK R9AIMP
  2. SUBROUTINE R9AIMP (X, AMPL, THETA)
  3. C***BEGIN PROLOGUE R9AIMP
  4. C***SUBSIDIARY
  5. C***PURPOSE Evaluate the Airy modulus and phase.
  6. C***LIBRARY SLATEC (FNLIB)
  7. C***CATEGORY C10D
  8. C***TYPE SINGLE PRECISION (R9AIMP-S, D9AIMP-D)
  9. C***KEYWORDS AIRY FUNCTION, FNLIB, MODULUS, PHASE, SPECIAL FUNCTIONS
  10. C***AUTHOR Fullerton, W., (LANL)
  11. C***DESCRIPTION
  12. C
  13. C Evaluate the Airy modulus and phase for X .LE. -1.0
  14. C
  15. C Series for AM21 on the interval -1.25000D-01 to 0.
  16. C with weighted error 2.89E-17
  17. C log weighted error 16.54
  18. C significant figures required 14.15
  19. C decimal places required 17.34
  20. C
  21. C Series for ATH1 on the interval -1.25000D-01 to 0.
  22. C with weighted error 2.53E-17
  23. C log weighted error 16.60
  24. C significant figures required 15.15
  25. C decimal places required 17.38
  26. C
  27. C Series for AM22 on the interval -1.00000D+00 to -1.25000D-01
  28. C with weighted error 2.99E-17
  29. C log weighted error 16.52
  30. C significant figures required 14.57
  31. C decimal places required 17.28
  32. C
  33. C Series for ATH2 on the interval -1.00000D+00 to -1.25000D-01
  34. C with weighted error 2.57E-17
  35. C log weighted error 16.59
  36. C significant figures required 15.07
  37. C decimal places required 17.34
  38. C
  39. C***REFERENCES (NONE)
  40. C***ROUTINES CALLED CSEVL, INITS, R1MACH, XERMSG
  41. C***REVISION HISTORY (YYMMDD)
  42. C 770701 DATE WRITTEN
  43. C 890206 REVISION DATE from Version 3.2
  44. C 891214 Prologue converted to Version 4.0 format. (BAB)
  45. C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ)
  46. C 900720 Routine changed from user-callable to subsidiary. (WRB)
  47. C***END PROLOGUE R9AIMP
  48. DIMENSION AM21CS(40), ATH1CS(36), AM22CS(33), ATH2CS(32)
  49. LOGICAL FIRST
  50. SAVE AM21CS, ATH1CS, AM22CS, ATH2CS, PI4, NAM21,
  51. 1 NATH1, NAM22, NATH2, XSML, FIRST
  52. DATA AM21CS( 1) / .0065809191 761485E0 /
  53. DATA AM21CS( 2) / .0023675984 685722E0 /
  54. DATA AM21CS( 3) / .0001324741 670371E0 /
  55. DATA AM21CS( 4) / .0000157600 904043E0 /
  56. DATA AM21CS( 5) / .0000027529 702663E0 /
  57. DATA AM21CS( 6) / .0000006102 679017E0 /
  58. DATA AM21CS( 7) / .0000001595 088468E0 /
  59. DATA AM21CS( 8) / .0000000471 033947E0 /
  60. DATA AM21CS( 9) / .0000000152 933871E0 /
  61. DATA AM21CS(10) / .0000000053 590722E0 /
  62. DATA AM21CS(11) / .0000000020 000910E0 /
  63. DATA AM21CS(12) / .0000000007 872292E0 /
  64. DATA AM21CS(13) / .0000000003 243103E0 /
  65. DATA AM21CS(14) / .0000000001 390106E0 /
  66. DATA AM21CS(15) / .0000000000 617011E0 /
  67. DATA AM21CS(16) / .0000000000 282491E0 /
  68. DATA AM21CS(17) / .0000000000 132979E0 /
  69. DATA AM21CS(18) / .0000000000 064188E0 /
  70. DATA AM21CS(19) / .0000000000 031697E0 /
  71. DATA AM21CS(20) / .0000000000 015981E0 /
  72. DATA AM21CS(21) / .0000000000 008213E0 /
  73. DATA AM21CS(22) / .0000000000 004296E0 /
  74. DATA AM21CS(23) / .0000000000 002284E0 /
  75. DATA AM21CS(24) / .0000000000 001232E0 /
  76. DATA AM21CS(25) / .0000000000 000675E0 /
  77. DATA AM21CS(26) / .0000000000 000374E0 /
  78. DATA AM21CS(27) / .0000000000 000210E0 /
  79. DATA AM21CS(28) / .0000000000 000119E0 /
  80. DATA AM21CS(29) / .0000000000 000068E0 /
  81. DATA AM21CS(30) / .0000000000 000039E0 /
  82. DATA AM21CS(31) / .0000000000 000023E0 /
  83. DATA AM21CS(32) / .0000000000 000013E0 /
  84. DATA AM21CS(33) / .0000000000 000008E0 /
  85. DATA AM21CS(34) / .0000000000 000005E0 /
  86. DATA AM21CS(35) / .0000000000 000003E0 /
  87. DATA AM21CS(36) / .0000000000 000001E0 /
  88. DATA AM21CS(37) / .0000000000 000001E0 /
  89. DATA AM21CS(38) / .0000000000 000000E0 /
  90. DATA AM21CS(39) / .0000000000 000000E0 /
  91. DATA AM21CS(40) / .0000000000 000000E0 /
  92. DATA ATH1CS( 1) / -.0712583781 5669365E0 /
  93. DATA ATH1CS( 2) / -.0059047197 9831451E0 /
  94. DATA ATH1CS( 3) / -.0001211454 4069499E0 /
  95. DATA ATH1CS( 4) / -.0000098860 8542270E0 /
  96. DATA ATH1CS( 5) / -.0000013808 4097352E0 /
  97. DATA ATH1CS( 6) / -.0000002614 2640172E0 /
  98. DATA ATH1CS( 7) / -.0000000605 0432589E0 /
  99. DATA ATH1CS( 8) / -.0000000161 8436223E0 /
  100. DATA ATH1CS( 9) / -.0000000048 3464911E0 /
  101. DATA ATH1CS(10) / -.0000000015 7655272E0 /
  102. DATA ATH1CS(11) / -.0000000005 5231518E0 /
  103. DATA ATH1CS(12) / -.0000000002 0545441E0 /
  104. DATA ATH1CS(13) / -.0000000000 8043412E0 /
  105. DATA ATH1CS(14) / -.0000000000 3291252E0 /
  106. DATA ATH1CS(15) / -.0000000000 1399875E0 /
  107. DATA ATH1CS(16) / -.0000000000 0616151E0 /
  108. DATA ATH1CS(17) / -.0000000000 0279614E0 /
  109. DATA ATH1CS(18) / -.0000000000 0130428E0 /
  110. DATA ATH1CS(19) / -.0000000000 0062373E0 /
  111. DATA ATH1CS(20) / -.0000000000 0030512E0 /
  112. DATA ATH1CS(21) / -.0000000000 0015239E0 /
  113. DATA ATH1CS(22) / -.0000000000 0007758E0 /
  114. DATA ATH1CS(23) / -.0000000000 0004020E0 /
  115. DATA ATH1CS(24) / -.0000000000 0002117E0 /
  116. DATA ATH1CS(25) / -.0000000000 0001132E0 /
  117. DATA ATH1CS(26) / -.0000000000 0000614E0 /
  118. DATA ATH1CS(27) / -.0000000000 0000337E0 /
  119. DATA ATH1CS(28) / -.0000000000 0000188E0 /
  120. DATA ATH1CS(29) / -.0000000000 0000105E0 /
  121. DATA ATH1CS(30) / -.0000000000 0000060E0 /
  122. DATA ATH1CS(31) / -.0000000000 0000034E0 /
  123. DATA ATH1CS(32) / -.0000000000 0000020E0 /
  124. DATA ATH1CS(33) / -.0000000000 0000011E0 /
  125. DATA ATH1CS(34) / -.0000000000 0000007E0 /
  126. DATA ATH1CS(35) / -.0000000000 0000004E0 /
  127. DATA ATH1CS(36) / -.0000000000 0000002E0 /
  128. DATA AM22CS( 1) / -.0156284448 0625341E0 /
  129. DATA AM22CS( 2) / .0077833644 5239681E0 /
  130. DATA AM22CS( 3) / .0008670577 7047718E0 /
  131. DATA AM22CS( 4) / .0001569662 7315611E0 /
  132. DATA AM22CS( 5) / .0000356396 2571432E0 /
  133. DATA AM22CS( 6) / .0000092459 8335425E0 /
  134. DATA AM22CS( 7) / .0000026211 0161850E0 /
  135. DATA AM22CS( 8) / .0000007918 8221651E0 /
  136. DATA AM22CS( 9) / .0000002510 4152792E0 /
  137. DATA AM22CS(10) / .0000000826 5223206E0 /
  138. DATA AM22CS(11) / .0000000280 5711662E0 /
  139. DATA AM22CS(12) / .0000000097 6821090E0 /
  140. DATA AM22CS(13) / .0000000034 7407923E0 /
  141. DATA AM22CS(14) / .0000000012 5828132E0 /
  142. DATA AM22CS(15) / .0000000004 6298826E0 /
  143. DATA AM22CS(16) / .0000000001 7272825E0 /
  144. DATA AM22CS(17) / .0000000000 6523192E0 /
  145. DATA AM22CS(18) / .0000000000 2490471E0 /
  146. DATA AM22CS(19) / .0000000000 0960156E0 /
  147. DATA AM22CS(20) / .0000000000 0373448E0 /
  148. DATA AM22CS(21) / .0000000000 0146417E0 /
  149. DATA AM22CS(22) / .0000000000 0057826E0 /
  150. DATA AM22CS(23) / .0000000000 0022991E0 /
  151. DATA AM22CS(24) / .0000000000 0009197E0 /
  152. DATA AM22CS(25) / .0000000000 0003700E0 /
  153. DATA AM22CS(26) / .0000000000 0001496E0 /
  154. DATA AM22CS(27) / .0000000000 0000608E0 /
  155. DATA AM22CS(28) / .0000000000 0000248E0 /
  156. DATA AM22CS(29) / .0000000000 0000101E0 /
  157. DATA AM22CS(30) / .0000000000 0000041E0 /
  158. DATA AM22CS(31) / .0000000000 0000017E0 /
  159. DATA AM22CS(32) / .0000000000 0000007E0 /
  160. DATA AM22CS(33) / .0000000000 0000002E0 /
  161. DATA ATH2CS( 1) / .0044052734 5871877E0 /
  162. DATA ATH2CS( 2) / -.0304291945 2318455E0 /
  163. DATA ATH2CS( 3) / -.0013856532 8377179E0 /
  164. DATA ATH2CS( 4) / -.0001804443 9089549E0 /
  165. DATA ATH2CS( 5) / -.0000338084 7108327E0 /
  166. DATA ATH2CS( 6) / -.0000076781 8353522E0 /
  167. DATA ATH2CS( 7) / -.0000019678 3944371E0 /
  168. DATA ATH2CS( 8) / -.0000005483 7271158E0 /
  169. DATA ATH2CS( 9) / -.0000001625 4615505E0 /
  170. DATA ATH2CS(10) / -.0000000505 3049981E0 /
  171. DATA ATH2CS(11) / -.0000000163 1580701E0 /
  172. DATA ATH2CS(12) / -.0000000054 3420411E0 /
  173. DATA ATH2CS(13) / -.0000000018 5739855E0 /
  174. DATA ATH2CS(14) / -.0000000006 4895120E0 /
  175. DATA ATH2CS(15) / -.0000000002 3105948E0 /
  176. DATA ATH2CS(16) / -.0000000000 8363282E0 /
  177. DATA ATH2CS(17) / -.0000000000 3071196E0 /
  178. DATA ATH2CS(18) / -.0000000000 1142367E0 /
  179. DATA ATH2CS(19) / -.0000000000 0429811E0 /
  180. DATA ATH2CS(20) / -.0000000000 0163389E0 /
  181. DATA ATH2CS(21) / -.0000000000 0062693E0 /
  182. DATA ATH2CS(22) / -.0000000000 0024260E0 /
  183. DATA ATH2CS(23) / -.0000000000 0009461E0 /
  184. DATA ATH2CS(24) / -.0000000000 0003716E0 /
  185. DATA ATH2CS(25) / -.0000000000 0001469E0 /
  186. DATA ATH2CS(26) / -.0000000000 0000584E0 /
  187. DATA ATH2CS(27) / -.0000000000 0000233E0 /
  188. DATA ATH2CS(28) / -.0000000000 0000093E0 /
  189. DATA ATH2CS(29) / -.0000000000 0000037E0 /
  190. DATA ATH2CS(30) / -.0000000000 0000015E0 /
  191. DATA ATH2CS(31) / -.0000000000 0000006E0 /
  192. DATA ATH2CS(32) / -.0000000000 0000002E0 /
  193. DATA PI4 / 0.7853981633 9744831 E0 /
  194. DATA FIRST /.TRUE./
  195. C***FIRST EXECUTABLE STATEMENT R9AIMP
  196. IF (FIRST) THEN
  197. ETA = 0.1*R1MACH(3)
  198. NAM21 = INITS (AM21CS, 40, ETA)
  199. NATH1 = INITS (ATH1CS, 36, ETA)
  200. NAM22 = INITS (AM22CS, 33, ETA)
  201. NATH2 = INITS (ATH2CS, 32, ETA)
  202. C
  203. XSML = -1.0/R1MACH(3)**0.3333
  204. ENDIF
  205. FIRST = .FALSE.
  206. C
  207. IF (X.GE.(-2.0)) GO TO 20
  208. Z = 1.0
  209. IF (X.GT.XSML) Z = 16.0/X**3 + 1.0
  210. AMPL = 0.3125 + CSEVL(Z, AM21CS, NAM21)
  211. THETA = -0.625 + CSEVL (Z, ATH1CS, NATH1)
  212. GO TO 30
  213. C
  214. 20 IF (X .GT. (-1.0)) CALL XERMSG ('SLATEC', 'R9AIMP',
  215. + 'X MUST BE LE -1.0', 1, 2)
  216. C
  217. Z = (16.0/X**3 + 9.0)/7.0
  218. AMPL = 0.3125 + CSEVL (Z, AM22CS, NAM22)
  219. THETA = -0.625 + CSEVL (Z, ATH2CS, NATH2)
  220. C
  221. 30 SQRTX = SQRT(-X)
  222. AMPL = SQRT (AMPL/SQRTX)
  223. THETA = PI4 - X*SQRTX * THETA
  224. C
  225. RETURN
  226. END