yairy.f 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. *DECK YAIRY
  2. SUBROUTINE YAIRY (X, RX, C, BI, DBI)
  3. C***BEGIN PROLOGUE YAIRY
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to BESJ and BESY
  6. C***LIBRARY SLATEC
  7. C***TYPE SINGLE PRECISION (YAIRY-S, DYAIRY-D)
  8. C***AUTHOR Amos, D. E., (SNLA)
  9. C Daniel, S. L., (SNLA)
  10. C***DESCRIPTION
  11. C
  12. C YAIRY computes the Airy function BI(X)
  13. C and its derivative DBI(X) for ASYJY
  14. C
  15. C INPUT
  16. C
  17. C X - Argument, computed by ASYJY, X unrestricted
  18. C RX - RX=SQRT(ABS(X)), computed by ASYJY
  19. C C - C=2.*(ABS(X)**1.5)/3., computed by ASYJY
  20. C
  21. C OUTPUT
  22. C BI - Value of function BI(X)
  23. C DBI - Value of the derivative DBI(X)
  24. C
  25. C***SEE ALSO BESJ, BESY
  26. C***ROUTINES CALLED (NONE)
  27. C***REVISION HISTORY (YYMMDD)
  28. C 750101 DATE WRITTEN
  29. C 891214 Prologue converted to Version 4.0 format. (BAB)
  30. C 900328 Added TYPE section. (WRB)
  31. C 910408 Updated the AUTHOR section. (WRB)
  32. C***END PROLOGUE YAIRY
  33. C
  34. INTEGER I, J, M1, M1D, M2, M2D, M3, M3D, M4D, N1, N1D, N2, N2D,
  35. 1 N3, N3D, N4D
  36. REAL AA, AX, BB, BI, BJN, BJP, BK1, BK2, BK3, BK4, C, CON1, CON2,
  37. 1 CON3, CV, DAA, DBB, DBI, DBJN, DBJP, DBK1, DBK2, DBK3, DBK4, D1,
  38. 2 D2, EX, E1, E2, FPI12, F1, F2, RTRX, RX, SPI12, S1, S2, T, TC,
  39. 3 TEMP1, TEMP2, TT, X
  40. DIMENSION BK1(20), BK2(20), BK3(20), BK4(14)
  41. DIMENSION BJP(19), BJN(19), AA(14), BB(14)
  42. DIMENSION DBK1(21), DBK2(20), DBK3(20), DBK4(14)
  43. DIMENSION DBJP(19), DBJN(19), DAA(14), DBB(14)
  44. SAVE N1, N2, N3, M1, M2, M3, N1D, N2D, N3D, N4D,
  45. 1 M1D, M2D, M3D, M4D, FPI12, SPI12, CON1, CON2, CON3,
  46. 2 BK1, BK2, BK3, BK4, BJP, BJN, AA, BB, DBK1, DBK2, DBK3, DBK4,
  47. 3 DBJP, DBJN, DAA, DBB
  48. DATA N1,N2,N3/20,19,14/
  49. DATA M1,M2,M3/18,17,12/
  50. DATA N1D,N2D,N3D,N4D/21,20,19,14/
  51. DATA M1D,M2D,M3D,M4D/19,18,17,12/
  52. DATA FPI12,SPI12,CON1,CON2,CON3/
  53. 1 1.30899693899575E+00, 1.83259571459405E+00, 6.66666666666667E-01,
  54. 2 7.74148278841779E+00, 3.64766105490356E-01/
  55. DATA BK1(1), BK1(2), BK1(3), BK1(4), BK1(5), BK1(6),
  56. 1 BK1(7), BK1(8), BK1(9), BK1(10), BK1(11), BK1(12),
  57. 2 BK1(13), BK1(14), BK1(15), BK1(16), BK1(17), BK1(18),
  58. 3 BK1(19), BK1(20)/ 2.43202846447449E+00, 2.57132009754685E+00,
  59. 4 1.02802341258616E+00, 3.41958178205872E-01, 8.41978629889284E-02,
  60. 5 1.93877282587962E-02, 3.92687837130335E-03, 6.83302689948043E-04,
  61. 6 1.14611403991141E-04, 1.74195138337086E-05, 2.41223620956355E-06,
  62. 7 3.24525591983273E-07, 4.03509798540183E-08, 4.70875059642296E-09,
  63. 8 5.35367432585889E-10, 5.70606721846334E-11, 5.80526363709933E-12,
  64. 9 5.76338988616388E-13, 5.42103834518071E-14, 4.91857330301677E-15/
  65. DATA BK2(1), BK2(2), BK2(3), BK2(4), BK2(5), BK2(6),
  66. 1 BK2(7), BK2(8), BK2(9), BK2(10), BK2(11), BK2(12),
  67. 2 BK2(13), BK2(14), BK2(15), BK2(16), BK2(17), BK2(18),
  68. 3 BK2(19), BK2(20)/ 5.74830555784088E-01,-6.91648648376891E-03,
  69. 4 1.97460263052093E-03,-5.24043043868823E-04, 1.22965147239661E-04,
  70. 5-2.27059514462173E-05, 2.23575555008526E-06, 4.15174955023899E-07,
  71. 6-2.84985752198231E-07, 8.50187174775435E-08,-1.70400826891326E-08,
  72. 7 2.25479746746889E-09,-1.09524166577443E-10,-3.41063845099711E-11,
  73. 8 1.11262893886662E-11,-1.75542944241734E-12, 1.36298600401767E-13,
  74. 9 8.76342105755664E-15,-4.64063099157041E-15, 7.78772758732960E-16/
  75. DATA BK3(1), BK3(2), BK3(3), BK3(4), BK3(5), BK3(6),
  76. 1 BK3(7), BK3(8), BK3(9), BK3(10), BK3(11), BK3(12),
  77. 2 BK3(13), BK3(14), BK3(15), BK3(16), BK3(17), BK3(18),
  78. 3 BK3(19), BK3(20)/ 5.66777053506912E-01, 2.63672828349579E-03,
  79. 4 5.12303351473130E-05, 2.10229231564492E-06, 1.42217095113890E-07,
  80. 5 1.28534295891264E-08, 7.28556219407507E-10,-3.45236157301011E-10,
  81. 6-2.11919115912724E-10,-6.56803892922376E-11,-8.14873160315074E-12,
  82. 7 3.03177845632183E-12, 1.73447220554115E-12, 1.67935548701554E-13,
  83. 8-1.49622868806719E-13,-5.15470458953407E-14, 8.75741841857830E-15,
  84. 9 7.96735553525720E-15,-1.29566137861742E-16,-1.11878794417520E-15/
  85. DATA BK4(1), BK4(2), BK4(3), BK4(4), BK4(5), BK4(6),
  86. 1 BK4(7), BK4(8), BK4(9), BK4(10), BK4(11), BK4(12),
  87. 2 BK4(13), BK4(14)/ 4.85444386705114E-01,-3.08525088408463E-03,
  88. 3 6.98748404837928E-05,-2.82757234179768E-06, 1.59553313064138E-07,
  89. 4-1.12980692144601E-08, 9.47671515498754E-10,-9.08301736026423E-11,
  90. 5 9.70776206450724E-12,-1.13687527254574E-12, 1.43982917533415E-13,
  91. 6-1.95211019558815E-14, 2.81056379909357E-15,-4.26916444775176E-16/
  92. DATA BJP(1), BJP(2), BJP(3), BJP(4), BJP(5), BJP(6),
  93. 1 BJP(7), BJP(8), BJP(9), BJP(10), BJP(11), BJP(12),
  94. 2 BJP(13), BJP(14), BJP(15), BJP(16), BJP(17), BJP(18),
  95. 3 BJP(19) / 1.34918611457638E-01,-3.19314588205813E-01,
  96. 4 5.22061946276114E-02, 5.28869112170312E-02,-8.58100756077350E-03,
  97. 5-2.99211002025555E-03, 4.21126741969759E-04, 8.73931830369273E-05,
  98. 6-1.06749163477533E-05,-1.56575097259349E-06, 1.68051151983999E-07,
  99. 7 1.89901103638691E-08,-1.81374004961922E-09,-1.66339134593739E-10,
  100. 8 1.42956335780810E-11, 1.10179811626595E-12,-8.60187724192263E-14,
  101. 9-5.71248177285064E-15, 4.08414552853803E-16/
  102. DATA BJN(1), BJN(2), BJN(3), BJN(4), BJN(5), BJN(6),
  103. 1 BJN(7), BJN(8), BJN(9), BJN(10), BJN(11), BJN(12),
  104. 2 BJN(13), BJN(14), BJN(15), BJN(16), BJN(17), BJN(18),
  105. 3 BJN(19) / 6.59041673525697E-02,-4.24905910566004E-01,
  106. 4 2.87209745195830E-01, 1.29787771099606E-01,-4.56354317590358E-02,
  107. 5-1.02630175982540E-02, 2.50704671521101E-03, 3.78127183743483E-04,
  108. 6-7.11287583284084E-05,-8.08651210688923E-06, 1.23879531273285E-06,
  109. 7 1.13096815867279E-07,-1.46234283176310E-08,-1.11576315688077E-09,
  110. 8 1.24846618243897E-10, 8.18334132555274E-12,-8.07174877048484E-13,
  111. 9-4.63778618766425E-14, 4.09043399081631E-15/
  112. DATA AA(1), AA(2), AA(3), AA(4), AA(5), AA(6),
  113. 1 AA(7), AA(8), AA(9), AA(10), AA(11), AA(12),
  114. 2 AA(13), AA(14) /-2.78593552803079E-01, 3.52915691882584E-03,
  115. 3 2.31149677384994E-05,-4.71317842263560E-06, 1.12415907931333E-07,
  116. 4 2.00100301184339E-08,-2.60948075302193E-09, 3.55098136101216E-11,
  117. 5 3.50849978423875E-11,-5.83007187954202E-12, 2.04644828753326E-13,
  118. 6 1.10529179476742E-13,-2.87724778038775E-14, 2.88205111009939E-15/
  119. DATA BB(1), BB(2), BB(3), BB(4), BB(5), BB(6),
  120. 1 BB(7), BB(8), BB(9), BB(10), BB(11), BB(12),
  121. 2 BB(13), BB(14) /-4.90275424742791E-01,-1.57647277946204E-03,
  122. 3 9.66195963140306E-05,-1.35916080268815E-07,-2.98157342654859E-07,
  123. 4 1.86824767559979E-08, 1.03685737667141E-09,-3.28660818434328E-10,
  124. 5 2.57091410632780E-11, 2.32357655300677E-12,-9.57523279048255E-13,
  125. 6 1.20340828049719E-13, 2.90907716770715E-15,-4.55656454580149E-15/
  126. DATA DBK1(1), DBK1(2), DBK1(3), DBK1(4), DBK1(5), DBK1(6),
  127. 1 DBK1(7), DBK1(8), DBK1(9), DBK1(10),DBK1(11),DBK1(12),
  128. 2 DBK1(13),DBK1(14),DBK1(15),DBK1(16),DBK1(17),DBK1(18),
  129. 3 DBK1(19),DBK1(20),
  130. 4 DBK1(21) / 2.95926143981893E+00, 3.86774568440103E+00,
  131. 5 1.80441072356289E+00, 5.78070764125328E-01, 1.63011468174708E-01,
  132. 6 3.92044409961855E-02, 7.90964210433812E-03, 1.50640863167338E-03,
  133. 7 2.56651976920042E-04, 3.93826605867715E-05, 5.81097771463818E-06,
  134. 8 7.86881233754659E-07, 9.93272957325739E-08, 1.21424205575107E-08,
  135. 9 1.38528332697707E-09, 1.50190067586758E-10, 1.58271945457594E-11,
  136. 1 1.57531847699042E-12, 1.50774055398181E-13, 1.40594335806564E-14,
  137. 2 1.24942698777218E-15/
  138. DATA DBK2(1), DBK2(2), DBK2(3), DBK2(4), DBK2(5), DBK2(6),
  139. 1 DBK2(7), DBK2(8), DBK2(9), DBK2(10),DBK2(11),DBK2(12),
  140. 2 DBK2(13),DBK2(14),DBK2(15),DBK2(16),DBK2(17),DBK2(18),
  141. 3 DBK2(19),DBK2(20)/ 5.49756809432471E-01, 9.13556983276901E-03,
  142. 4-2.53635048605507E-03, 6.60423795342054E-04,-1.55217243135416E-04,
  143. 5 3.00090325448633E-05,-3.76454339467348E-06,-1.33291331611616E-07,
  144. 6 2.42587371049013E-07,-8.07861075240228E-08, 1.71092818861193E-08,
  145. 7-2.41087357570599E-09, 1.53910848162371E-10, 2.56465373190630E-11,
  146. 8-9.88581911653212E-12, 1.60877986412631E-12,-1.20952524741739E-13,
  147. 9-1.06978278410820E-14, 5.02478557067561E-15,-8.68986130935886E-16/
  148. DATA DBK3(1), DBK3(2), DBK3(3), DBK3(4), DBK3(5), DBK3(6),
  149. 1 DBK3(7), DBK3(8), DBK3(9), DBK3(10),DBK3(11),DBK3(12),
  150. 2 DBK3(13),DBK3(14),DBK3(15),DBK3(16),DBK3(17),DBK3(18),
  151. 3 DBK3(19),DBK3(20)/ 5.60598509354302E-01,-3.64870013248135E-03,
  152. 4-5.98147152307417E-05,-2.33611595253625E-06,-1.64571516521436E-07,
  153. 5-2.06333012920569E-08,-4.27745431573110E-09,-1.08494137799276E-09,
  154. 6-2.37207188872763E-10,-2.22132920864966E-11, 1.07238008032138E-11,
  155. 7 5.71954845245808E-12, 7.51102737777835E-13,-3.81912369483793E-13,
  156. 8-1.75870057119257E-13, 6.69641694419084E-15, 2.26866724792055E-14,
  157. 9 2.69898141356743E-15,-2.67133612397359E-15,-6.54121403165269E-16/
  158. DATA DBK4(1), DBK4(2), DBK4(3), DBK4(4), DBK4(5), DBK4(6),
  159. 1 DBK4(7), DBK4(8), DBK4(9), DBK4(10),DBK4(11),DBK4(12),
  160. 2 DBK4(13),DBK4(14)/ 4.93072999188036E-01, 4.38335419803815E-03,
  161. 3-8.37413882246205E-05, 3.20268810484632E-06,-1.75661979548270E-07,
  162. 4 1.22269906524508E-08,-1.01381314366052E-09, 9.63639784237475E-11,
  163. 5-1.02344993379648E-11, 1.19264576554355E-12,-1.50443899103287E-13,
  164. 6 2.03299052379349E-14,-2.91890652008292E-15, 4.42322081975475E-16/
  165. DATA DBJP(1), DBJP(2), DBJP(3), DBJP(4), DBJP(5), DBJP(6),
  166. 1 DBJP(7), DBJP(8), DBJP(9), DBJP(10),DBJP(11),DBJP(12),
  167. 2 DBJP(13),DBJP(14),DBJP(15),DBJP(16),DBJP(17),DBJP(18),
  168. 3 DBJP(19) / 1.13140872390745E-01,-2.08301511416328E-01,
  169. 4 1.69396341953138E-02, 2.90895212478621E-02,-3.41467131311549E-03,
  170. 5-1.46455339197417E-03, 1.63313272898517E-04, 3.91145328922162E-05,
  171. 6-3.96757190808119E-06,-6.51846913772395E-07, 5.98707495269280E-08,
  172. 7 7.44108654536549E-09,-6.21241056522632E-10,-6.18768017313526E-11,
  173. 8 4.72323484752324E-12, 3.91652459802532E-13,-2.74985937845226E-14,
  174. 9-1.95036497762750E-15, 1.26669643809444E-16/
  175. DATA DBJN(1), DBJN(2), DBJN(3), DBJN(4), DBJN(5), DBJN(6),
  176. 1 DBJN(7), DBJN(8), DBJN(9), DBJN(10),DBJN(11),DBJN(12),
  177. 2 DBJN(13),DBJN(14),DBJN(15),DBJN(16),DBJN(17),DBJN(18),
  178. 3 DBJN(19) /-1.88091260068850E-02,-1.47798180826140E-01,
  179. 4 5.46075900433171E-01, 1.52146932663116E-01,-9.58260412266886E-02,
  180. 5-1.63102731696130E-02, 5.75364806680105E-03, 7.12145408252655E-04,
  181. 6-1.75452116846724E-04,-1.71063171685128E-05, 3.24435580631680E-06,
  182. 7 2.61190663932884E-07,-4.03026865912779E-08,-2.76435165853895E-09,
  183. 8 3.59687929062312E-10, 2.14953308456051E-11,-2.41849311903901E-12,
  184. 9-1.28068004920751E-13, 1.26939834401773E-14/
  185. DATA DAA(1), DAA(2), DAA(3), DAA(4), DAA(5), DAA(6),
  186. 1 DAA(7), DAA(8), DAA(9), DAA(10), DAA(11), DAA(12),
  187. 2 DAA(13), DAA(14)/ 2.77571356944231E-01,-4.44212833419920E-03,
  188. 3 8.42328522190089E-05, 2.58040318418710E-06,-3.42389720217621E-07,
  189. 4 6.24286894709776E-09, 2.36377836844577E-09,-3.16991042656673E-10,
  190. 5 4.40995691658191E-12, 5.18674221093575E-12,-9.64874015137022E-13,
  191. 6 4.90190576608710E-14, 1.77253430678112E-14,-5.55950610442662E-15/
  192. DATA DBB(1), DBB(2), DBB(3), DBB(4), DBB(5), DBB(6),
  193. 1 DBB(7), DBB(8), DBB(9), DBB(10), DBB(11), DBB(12),
  194. 2 DBB(13), DBB(14)/ 4.91627321104601E-01, 3.11164930427489E-03,
  195. 3 8.23140762854081E-05,-4.61769776172142E-06,-6.13158880534626E-08,
  196. 4 2.87295804656520E-08,-1.81959715372117E-09,-1.44752826642035E-10,
  197. 5 4.53724043420422E-11,-3.99655065847223E-12,-3.24089119830323E-13,
  198. 6 1.62098952568741E-13,-2.40765247974057E-14, 1.69384811284491E-16/
  199. C***FIRST EXECUTABLE STATEMENT YAIRY
  200. AX = ABS(X)
  201. RX = SQRT(AX)
  202. C = CON1*AX*RX
  203. IF (X.LT.0.0E0) GO TO 120
  204. IF (C.GT.8.0E0) GO TO 60
  205. IF (X.GT.2.5E0) GO TO 30
  206. T = (X+X-2.5E0)*0.4E0
  207. TT = T + T
  208. J = N1
  209. F1 = BK1(J)
  210. F2 = 0.0E0
  211. DO 10 I=1,M1
  212. J = J - 1
  213. TEMP1 = F1
  214. F1 = TT*F1 - F2 + BK1(J)
  215. F2 = TEMP1
  216. 10 CONTINUE
  217. BI = T*F1 - F2 + BK1(1)
  218. J = N1D
  219. F1 = DBK1(J)
  220. F2 = 0.0E0
  221. DO 20 I=1,M1D
  222. J = J - 1
  223. TEMP1 = F1
  224. F1 = TT*F1 - F2 + DBK1(J)
  225. F2 = TEMP1
  226. 20 CONTINUE
  227. DBI = T*F1 - F2 + DBK1(1)
  228. RETURN
  229. 30 CONTINUE
  230. RTRX = SQRT(RX)
  231. T = (X+X-CON2)*CON3
  232. TT = T + T
  233. J = N1
  234. F1 = BK2(J)
  235. F2 = 0.0E0
  236. DO 40 I=1,M1
  237. J = J - 1
  238. TEMP1 = F1
  239. F1 = TT*F1 - F2 + BK2(J)
  240. F2 = TEMP1
  241. 40 CONTINUE
  242. BI = (T*F1-F2+BK2(1))/RTRX
  243. EX = EXP(C)
  244. BI = BI*EX
  245. J = N2D
  246. F1 = DBK2(J)
  247. F2 = 0.0E0
  248. DO 50 I=1,M2D
  249. J = J - 1
  250. TEMP1 = F1
  251. F1 = TT*F1 - F2 + DBK2(J)
  252. F2 = TEMP1
  253. 50 CONTINUE
  254. DBI = (T*F1-F2+DBK2(1))*RTRX
  255. DBI = DBI*EX
  256. RETURN
  257. C
  258. 60 CONTINUE
  259. RTRX = SQRT(RX)
  260. T = 16.0E0/C - 1.0E0
  261. TT = T + T
  262. J = N1
  263. F1 = BK3(J)
  264. F2 = 0.0E0
  265. DO 70 I=1,M1
  266. J = J - 1
  267. TEMP1 = F1
  268. F1 = TT*F1 - F2 + BK3(J)
  269. F2 = TEMP1
  270. 70 CONTINUE
  271. S1 = T*F1 - F2 + BK3(1)
  272. J = N2D
  273. F1 = DBK3(J)
  274. F2 = 0.0E0
  275. DO 80 I=1,M2D
  276. J = J - 1
  277. TEMP1 = F1
  278. F1 = TT*F1 - F2 + DBK3(J)
  279. F2 = TEMP1
  280. 80 CONTINUE
  281. D1 = T*F1 - F2 + DBK3(1)
  282. TC = C + C
  283. EX = EXP(C)
  284. IF (TC.GT.35.0E0) GO TO 110
  285. T = 10.0E0/C - 1.0E0
  286. TT = T + T
  287. J = N3
  288. F1 = BK4(J)
  289. F2 = 0.0E0
  290. DO 90 I=1,M3
  291. J = J - 1
  292. TEMP1 = F1
  293. F1 = TT*F1 - F2 + BK4(J)
  294. F2 = TEMP1
  295. 90 CONTINUE
  296. S2 = T*F1 - F2 + BK4(1)
  297. BI = (S1+EXP(-TC)*S2)/RTRX
  298. BI = BI*EX
  299. J = N4D
  300. F1 = DBK4(J)
  301. F2 = 0.0E0
  302. DO 100 I=1,M4D
  303. J = J - 1
  304. TEMP1 = F1
  305. F1 = TT*F1 - F2 + DBK4(J)
  306. F2 = TEMP1
  307. 100 CONTINUE
  308. D2 = T*F1 - F2 + DBK4(1)
  309. DBI = RTRX*(D1+EXP(-TC)*D2)
  310. DBI = DBI*EX
  311. RETURN
  312. 110 BI = EX*S1/RTRX
  313. DBI = EX*RTRX*D1
  314. RETURN
  315. C
  316. 120 CONTINUE
  317. IF (C.GT.5.0E0) GO TO 150
  318. T = 0.4E0*C - 1.0E0
  319. TT = T + T
  320. J = N2
  321. F1 = BJP(J)
  322. E1 = BJN(J)
  323. F2 = 0.0E0
  324. E2 = 0.0E0
  325. DO 130 I=1,M2
  326. J = J - 1
  327. TEMP1 = F1
  328. TEMP2 = E1
  329. F1 = TT*F1 - F2 + BJP(J)
  330. E1 = TT*E1 - E2 + BJN(J)
  331. F2 = TEMP1
  332. E2 = TEMP2
  333. 130 CONTINUE
  334. BI = (T*E1-E2+BJN(1)) - AX*(T*F1-F2+BJP(1))
  335. J = N3D
  336. F1 = DBJP(J)
  337. E1 = DBJN(J)
  338. F2 = 0.0E0
  339. E2 = 0.0E0
  340. DO 140 I=1,M3D
  341. J = J - 1
  342. TEMP1 = F1
  343. TEMP2 = E1
  344. F1 = TT*F1 - F2 + DBJP(J)
  345. E1 = TT*E1 - E2 + DBJN(J)
  346. F2 = TEMP1
  347. E2 = TEMP2
  348. 140 CONTINUE
  349. DBI = X*X*(T*F1-F2+DBJP(1)) + (T*E1-E2+DBJN(1))
  350. RETURN
  351. C
  352. 150 CONTINUE
  353. RTRX = SQRT(RX)
  354. T = 10.0E0/C - 1.0E0
  355. TT = T + T
  356. J = N3
  357. F1 = AA(J)
  358. E1 = BB(J)
  359. F2 = 0.0E0
  360. E2 = 0.0E0
  361. DO 160 I=1,M3
  362. J = J - 1
  363. TEMP1 = F1
  364. TEMP2 = E1
  365. F1 = TT*F1 - F2 + AA(J)
  366. E1 = TT*E1 - E2 + BB(J)
  367. F2 = TEMP1
  368. E2 = TEMP2
  369. 160 CONTINUE
  370. TEMP1 = T*F1 - F2 + AA(1)
  371. TEMP2 = T*E1 - E2 + BB(1)
  372. CV = C - FPI12
  373. BI = (TEMP1*COS(CV)+TEMP2*SIN(CV))/RTRX
  374. J = N4D
  375. F1 = DAA(J)
  376. E1 = DBB(J)
  377. F2 = 0.0E0
  378. E2 = 0.0E0
  379. DO 170 I=1,M4D
  380. J = J - 1
  381. TEMP1 = F1
  382. TEMP2 = E1
  383. F1 = TT*F1 - F2 + DAA(J)
  384. E1 = TT*E1 - E2 + DBB(J)
  385. F2 = TEMP1
  386. E2 = TEMP2
  387. 170 CONTINUE
  388. TEMP1 = T*F1 - F2 + DAA(1)
  389. TEMP2 = T*E1 - E2 + DBB(1)
  390. CV = C - SPI12
  391. DBI = (TEMP1*COS(CV)-TEMP2*SIN(CV))*RTRX
  392. RETURN
  393. END