GNU Octave 10.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
cunhj.f
Go to the documentation of this file.
1 SUBROUTINE cunhj(Z, FNU, IPMTR, TOL, PHI, ARG, ZETA1, ZETA2,
2 * ASUM, BSUM)
3C***BEGIN PROLOGUE CUNHJ
4C***REFER TO CBESI,CBESK
5C
6C REFERENCES
7C HANDBOOK OF MATHEMATICAL FUNCTIONS BY M. ABRAMOWITZ AND I.A.
8C STEGUN, AMS55, NATIONAL BUREAU OF STANDARDS, 1965, CHAPTER 9.
9C
10C ASYMPTOTICS AND SPECIAL FUNCTIONS BY F.W.J. OLVER, ACADEMIC
11C PRESS, N.Y., 1974, PAGE 420
12C
13C ABSTRACT
14C CUNHJ COMPUTES PARAMETERS FOR BESSEL FUNCTIONS C(FNU,Z) =
15C J(FNU,Z), Y(FNU,Z) OR H(I,FNU,Z) I=1,2 FOR LARGE ORDERS FNU
16C BY MEANS OF THE UNIFORM ASYMPTOTIC EXPANSION
17C
18C C(FNU,Z)=C1*PHI*( ASUM*AIRY(ARG) + C2*BSUM*DAIRY(ARG) )
19C
20C FOR PROPER CHOICES OF C1, C2, AIRY AND DAIRY WHERE AIRY IS
21C AN AIRY FUNCTION AND DAIRY IS ITS DERIVATIVE.
22C
23C (2/3)*FNU*ZETA**1.5 = ZETA1-ZETA2,
24C
25C ZETA1=0.5*FNU*CLOG((1+W)/(1-W)), ZETA2=FNU*W FOR SCALING
26C PURPOSES IN AIRY FUNCTIONS FROM CAIRY OR CBIRY.
27C
28C MCONJ=SIGN OF AIMAG(Z), BUT IS AMBIGUOUS WHEN Z IS REAL AND
29C MUST BE SPECIFIED. IPMTR=0 RETURNS ALL PARAMETERS. IPMTR=
30C 1 COMPUTES ALL EXCEPT ASUM AND BSUM.
31C
32C***ROUTINES CALLED (NONE)
33C***END PROLOGUE CUNHJ
34 COMPLEX ARG, ASUM, BSUM, CFNU, CONE, CR, CZERO, DR, P, PHI,
35 * przth, ptfn, rfn13, rtzta, rzth, suma, sumb, tfn, t2, up, w, w2,
36 * z, za, zb, zc, zeta, zeta1, zeta2, zth
37 REAL ALFA, ANG, AP, AR, ATOL, AW2, AZTH, BETA, BR, BTOL, C, EX1,
38 * ex2, fnu, fn13, fn23, gama, hpi, pi, pp, rfnu, rfnu2, thpi, tol,
39 * wi, wr, zci, zcr, zetai, zetar, zthi, zthr, asumr, asumi, bsumr,
40 * bsumi, test, tstr, tsti, ac
41 INTEGER IAS, IBS, IPMTR, IS, J, JR, JU, K, KMAX, KP1, KS, L, LR,
42 * lrp1, l1, l2, m
43 dimension ar(14), br(14), c(105), alfa(180), beta(210), gama(30),
44 * ap(30), p(30), up(14), cr(14), dr(14)
45 DATA ar(1), ar(2), ar(3), ar(4), ar(5), ar(6), ar(7), ar(8),
46 1 ar(9), ar(10), ar(11), ar(12), ar(13), ar(14)/
47 2 1.00000000000000000e+00, 1.04166666666666667e-01,
48 3 8.35503472222222222e-02, 1.28226574556327160e-01,
49 4 2.91849026464140464e-01, 8.81627267443757652e-01,
50 5 3.32140828186276754e+00, 1.49957629868625547e+01,
51 6 7.89230130115865181e+01, 4.74451538868264323e+02,
52 7 3.20749009089066193e+03, 2.40865496408740049e+04,
53 8 1.98923119169509794e+05, 1.79190200777534383e+06/
54 DATA br(1), br(2), br(3), br(4), br(5), br(6), br(7), br(8),
55 1 br(9), br(10), br(11), br(12), br(13), br(14)/
56 2 1.00000000000000000e+00, -1.45833333333333333e-01,
57 3 -9.87413194444444444e-02, -1.43312053915895062e-01,
58 4 -3.17227202678413548e-01, -9.42429147957120249e-01,
59 5 -3.51120304082635426e+00, -1.57272636203680451e+01,
60 6 -8.22814390971859444e+01, -4.92355370523670524e+02,
61 7 -3.31621856854797251e+03, -2.48276742452085896e+04,
62 8 -2.04526587315129788e+05, -1.83844491706820990e+06/
63 DATA c(1), c(2), c(3), c(4), c(5), c(6), c(7), c(8), c(9), c(10),
64 1 c(11), c(12), c(13), c(14), c(15), c(16), c(17), c(18),
65 2 c(19), c(20), c(21), c(22), c(23), c(24)/
66 3 1.00000000000000000e+00, -2.08333333333333333e-01,
67 4 1.25000000000000000e-01, 3.34201388888888889e-01,
68 5 -4.01041666666666667e-01, 7.03125000000000000e-02,
69 6 -1.02581259645061728e+00, 1.84646267361111111e+00,
70 7 -8.91210937500000000e-01, 7.32421875000000000e-02,
71 8 4.66958442342624743e+00, -1.12070026162229938e+01,
72 9 8.78912353515625000e+00, -2.36408691406250000e+00,
73 a 1.12152099609375000e-01, -2.82120725582002449e+01,
74 b 8.46362176746007346e+01, -9.18182415432400174e+01,
75 c 4.25349987453884549e+01, -7.36879435947963170e+00,
76 d 2.27108001708984375e-01, 2.12570130039217123e+02,
77 e -7.65252468141181642e+02, 1.05999045252799988e+03/
78 DATA c(25), c(26), c(27), c(28), c(29), c(30), c(31), c(32),
79 1 c(33), c(34), c(35), c(36), c(37), c(38), c(39), c(40),
80 2 c(41), c(42), c(43), c(44), c(45), c(46), c(47), c(48)/
81 3 -6.99579627376132541e+02, 2.18190511744211590e+02,
82 4 -2.64914304869515555e+01, 5.72501420974731445e-01,
83 5 -1.91945766231840700e+03, 8.06172218173730938e+03,
84 6 -1.35865500064341374e+04, 1.16553933368645332e+04,
85 7 -5.30564697861340311e+03, 1.20090291321635246e+03,
86 8 -1.08090919788394656e+02, 1.72772750258445740e+00,
87 9 2.02042913309661486e+04, -9.69805983886375135e+04,
88 a 1.92547001232531532e+05, -2.03400177280415534e+05,
89 b 1.22200464983017460e+05, -4.11926549688975513e+04,
90 c 7.10951430248936372e+03, -4.93915304773088012e+02,
91 d 6.07404200127348304e+00, -2.42919187900551333e+05,
92 e 1.31176361466297720e+06, -2.99801591853810675e+06/
93 DATA c(49), c(50), c(51), c(52), c(53), c(54), c(55), c(56),
94 1 c(57), c(58), c(59), c(60), c(61), c(62), c(63), c(64),
95 2 c(65), c(66), c(67), c(68), c(69), c(70), c(71), c(72)/
96 3 3.76327129765640400e+06, -2.81356322658653411e+06,
97 4 1.26836527332162478e+06, -3.31645172484563578e+05,
98 5 4.52187689813627263e+04, -2.49983048181120962e+03,
99 6 2.43805296995560639e+01, 3.28446985307203782e+06,
100 7 -1.97068191184322269e+07, 5.09526024926646422e+07,
101 8 -7.41051482115326577e+07, 6.63445122747290267e+07,
102 9 -3.75671766607633513e+07, 1.32887671664218183e+07,
103 a -2.78561812808645469e+06, 3.08186404612662398e+05,
104 b -1.38860897537170405e+04, 1.10017140269246738e+02,
105 c -4.93292536645099620e+07, 3.25573074185765749e+08,
106 d -9.39462359681578403e+08, 1.55359689957058006e+09,
107 e -1.62108055210833708e+09, 1.10684281682301447e+09/
108 DATA c(73), c(74), c(75), c(76), c(77), c(78), c(79), c(80),
109 1 c(81), c(82), c(83), c(84), c(85), c(86), c(87), c(88),
110 2 c(89), c(90), c(91), c(92), c(93), c(94), c(95), c(96)/
111 3 -4.95889784275030309e+08, 1.42062907797533095e+08,
112 4 -2.44740627257387285e+07, 2.24376817792244943e+06,
113 5 -8.40054336030240853e+04, 5.51335896122020586e+02,
114 6 8.14789096118312115e+08, -5.86648149205184723e+09,
115 7 1.86882075092958249e+10, -3.46320433881587779e+10,
116 8 4.12801855797539740e+10, -3.30265997498007231e+10,
117 9 1.79542137311556001e+10, -6.56329379261928433e+09,
118 a 1.55927986487925751e+09, -2.25105661889415278e+08,
119 b 1.73951075539781645e+07, -5.49842327572288687e+05,
120 c 3.03809051092238427e+03, -1.46792612476956167e+10,
121 d 1.14498237732025810e+11, -3.99096175224466498e+11,
122 e 8.19218669548577329e+11, -1.09837515608122331e+12/
123 DATA c(97), c(98), c(99), c(100), c(101), c(102), c(103), c(104),
124 1 c(105)/
125 2 1.00815810686538209e+12, -6.45364869245376503e+11,
126 3 2.87900649906150589e+11, -8.78670721780232657e+10,
127 4 1.76347306068349694e+10, -2.16716498322379509e+09,
128 5 1.43157876718888981e+08, -3.87183344257261262e+06,
129 6 1.82577554742931747e+04/
130 DATA alfa(1), alfa(2), alfa(3), alfa(4), alfa(5), alfa(6),
131 1 alfa(7), alfa(8), alfa(9), alfa(10), alfa(11), alfa(12),
132 2 alfa(13), alfa(14), alfa(15), alfa(16), alfa(17), alfa(18),
133 3 alfa(19), alfa(20), alfa(21), alfa(22)/
134 4 -4.44444444444444444e-03, -9.22077922077922078e-04,
135 5 -8.84892884892884893e-05, 1.65927687832449737e-04,
136 6 2.46691372741792910e-04, 2.65995589346254780e-04,
137 7 2.61824297061500945e-04, 2.48730437344655609e-04,
138 8 2.32721040083232098e-04, 2.16362485712365082e-04,
139 9 2.00738858762752355e-04, 1.86267636637545172e-04,
140 a 1.73060775917876493e-04, 1.61091705929015752e-04,
141 b 1.50274774160908134e-04, 1.40503497391269794e-04,
142 c 1.31668816545922806e-04, 1.23667445598253261e-04,
143 d 1.16405271474737902e-04, 1.09798298372713369e-04,
144 e 1.03772410422992823e-04, 9.82626078369363448e-05/
145 DATA alfa(23), alfa(24), alfa(25), alfa(26), alfa(27), alfa(28),
146 1 alfa(29), alfa(30), alfa(31), alfa(32), alfa(33), alfa(34),
147 2 alfa(35), alfa(36), alfa(37), alfa(38), alfa(39), alfa(40),
148 3 alfa(41), alfa(42), alfa(43), alfa(44)/
149 4 9.32120517249503256e-05, 8.85710852478711718e-05,
150 5 8.42963105715700223e-05, 8.03497548407791151e-05,
151 6 7.66981345359207388e-05, 7.33122157481777809e-05,
152 7 7.01662625163141333e-05, 6.72375633790160292e-05,
153 8 6.93735541354588974e-04, 2.32241745182921654e-04,
154 9 -1.41986273556691197e-05, -1.16444931672048640e-04,
155 a -1.50803558053048762e-04, -1.55121924918096223e-04,
156 b -1.46809756646465549e-04, -1.33815503867491367e-04,
157 c -1.19744975684254051e-04, -1.06184319207974020e-04,
158 d -9.37699549891194492e-05, -8.26923045588193274e-05,
159 e -7.29374348155221211e-05, -6.44042357721016283e-05/
160 DATA alfa(45), alfa(46), alfa(47), alfa(48), alfa(49), alfa(50),
161 1 alfa(51), alfa(52), alfa(53), alfa(54), alfa(55), alfa(56),
162 2 alfa(57), alfa(58), alfa(59), alfa(60), alfa(61), alfa(62),
163 3 alfa(63), alfa(64), alfa(65), alfa(66)/
164 4 -5.69611566009369048e-05, -5.04731044303561628e-05,
165 5 -4.48134868008882786e-05, -3.98688727717598864e-05,
166 6 -3.55400532972042498e-05, -3.17414256609022480e-05,
167 7 -2.83996793904174811e-05, -2.54522720634870566e-05,
168 8 -2.28459297164724555e-05, -2.05352753106480604e-05,
169 9 -1.84816217627666085e-05, -1.66519330021393806e-05,
170 a -1.50179412980119482e-05, -1.35554031379040526e-05,
171 b -1.22434746473858131e-05, -1.10641884811308169e-05,
172 c -3.54211971457743841e-04, -1.56161263945159416e-04,
173 d 3.04465503594936410e-05, 1.30198655773242693e-04,
174 e 1.67471106699712269e-04, 1.70222587683592569e-04/
175 DATA alfa(67), alfa(68), alfa(69), alfa(70), alfa(71), alfa(72),
176 1 alfa(73), alfa(74), alfa(75), alfa(76), alfa(77), alfa(78),
177 2 alfa(79), alfa(80), alfa(81), alfa(82), alfa(83), alfa(84),
178 3 alfa(85), alfa(86), alfa(87), alfa(88)/
179 4 1.56501427608594704e-04, 1.36339170977445120e-04,
180 5 1.14886692029825128e-04, 9.45869093034688111e-05,
181 6 7.64498419250898258e-05, 6.07570334965197354e-05,
182 7 4.74394299290508799e-05, 3.62757512005344297e-05,
183 8 2.69939714979224901e-05, 1.93210938247939253e-05,
184 9 1.30056674793963203e-05, 7.82620866744496661e-06,
185 a 3.59257485819351583e-06, 1.44040049814251817e-07,
186 b -2.65396769697939116e-06, -4.91346867098485910e-06,
187 c -6.72739296091248287e-06, -8.17269379678657923e-06,
188 d -9.31304715093561232e-06, -1.02011418798016441e-05,
189 e -1.08805962510592880e-05, -1.13875481509603555e-05/
190 DATA alfa(89), alfa(90), alfa(91), alfa(92), alfa(93), alfa(94),
191 1 alfa(95), alfa(96), alfa(97), alfa(98), alfa(99), alfa(100),
192 2 alfa(101), alfa(102), alfa(103), alfa(104), alfa(105),
193 3 alfa(106), alfa(107), alfa(108), alfa(109), alfa(110)/
194 4 -1.17519675674556414e-05, -1.19987364870944141e-05,
195 5 3.78194199201772914e-04, 2.02471952761816167e-04,
196 6 -6.37938506318862408e-05, -2.38598230603005903e-04,
197 7 -3.10916256027361568e-04, -3.13680115247576316e-04,
198 8 -2.78950273791323387e-04, -2.28564082619141374e-04,
199 9 -1.75245280340846749e-04, -1.25544063060690348e-04,
200 a -8.22982872820208365e-05, -4.62860730588116458e-05,
201 b -1.72334302366962267e-05, 5.60690482304602267e-06,
202 c 2.31395443148286800e-05, 3.62642745856793957e-05,
203 d 4.58006124490188752e-05, 5.24595294959114050e-05,
204 e 5.68396208545815266e-05, 5.94349820393104052e-05/
205 DATA alfa(111), alfa(112), alfa(113), alfa(114), alfa(115),
206 1 alfa(116), alfa(117), alfa(118), alfa(119), alfa(120),
207 2 alfa(121), alfa(122), alfa(123), alfa(124), alfa(125),
208 3 alfa(126), alfa(127), alfa(128), alfa(129), alfa(130)/
209 4 6.06478527578421742e-05, 6.08023907788436497e-05,
210 5 6.01577894539460388e-05, 5.89199657344698500e-05,
211 6 5.72515823777593053e-05, 5.52804375585852577e-05,
212 7 5.31063773802880170e-05, 5.08069302012325706e-05,
213 8 4.84418647620094842e-05, 4.60568581607475370e-05,
214 9 -6.91141397288294174e-04, -4.29976633058871912e-04,
215 a 1.83067735980039018e-04, 6.60088147542014144e-04,
216 b 8.75964969951185931e-04, 8.77335235958235514e-04,
217 c 7.49369585378990637e-04, 5.63832329756980918e-04,
218 d 3.68059319971443156e-04, 1.88464535514455599e-04/
219 DATA alfa(131), alfa(132), alfa(133), alfa(134), alfa(135),
220 1 alfa(136), alfa(137), alfa(138), alfa(139), alfa(140),
221 2 alfa(141), alfa(142), alfa(143), alfa(144), alfa(145),
222 3 alfa(146), alfa(147), alfa(148), alfa(149), alfa(150)/
223 4 3.70663057664904149e-05, -8.28520220232137023e-05,
224 5 -1.72751952869172998e-04, -2.36314873605872983e-04,
225 6 -2.77966150694906658e-04, -3.02079514155456919e-04,
226 7 -3.12594712643820127e-04, -3.12872558758067163e-04,
227 8 -3.05678038466324377e-04, -2.93226470614557331e-04,
228 9 -2.77255655582934777e-04, -2.59103928467031709e-04,
229 a -2.39784014396480342e-04, -2.20048260045422848e-04,
230 b -2.00443911094971498e-04, -1.81358692210970687e-04,
231 c -1.63057674478657464e-04, -1.45712672175205844e-04,
232 d -1.29425421983924587e-04, -1.14245691942445952e-04/
233 DATA alfa(151), alfa(152), alfa(153), alfa(154), alfa(155),
234 1 alfa(156), alfa(157), alfa(158), alfa(159), alfa(160),
235 2 alfa(161), alfa(162), alfa(163), alfa(164), alfa(165),
236 3 alfa(166), alfa(167), alfa(168), alfa(169), alfa(170)/
237 4 1.92821964248775885e-03, 1.35592576302022234e-03,
238 5 -7.17858090421302995e-04, -2.58084802575270346e-03,
239 6 -3.49271130826168475e-03, -3.46986299340960628e-03,
240 7 -2.82285233351310182e-03, -1.88103076404891354e-03,
241 8 -8.89531718383947600e-04, 3.87912102631035228e-06,
242 9 7.28688540119691412e-04, 1.26566373053457758e-03,
243 a 1.62518158372674427e-03, 1.83203153216373172e-03,
244 b 1.91588388990527909e-03, 1.90588846755546138e-03,
245 c 1.82798982421825727e-03, 1.70389506421121530e-03,
246 d 1.55097127171097686e-03, 1.38261421852276159e-03/
247 DATA alfa(171), alfa(172), alfa(173), alfa(174), alfa(175),
248 1 alfa(176), alfa(177), alfa(178), alfa(179), alfa(180)/
249 2 1.20881424230064774e-03, 1.03676532638344962e-03,
250 3 8.71437918068619115e-04, 7.16080155297701002e-04,
251 4 5.72637002558129372e-04, 4.42089819465802277e-04,
252 5 3.24724948503090564e-04, 2.20342042730246599e-04,
253 6 1.28412898401353882e-04, 4.82005924552095464e-05/
254 DATA beta(1), beta(2), beta(3), beta(4), beta(5), beta(6),
255 1 beta(7), beta(8), beta(9), beta(10), beta(11), beta(12),
256 2 beta(13), beta(14), beta(15), beta(16), beta(17), beta(18),
257 3 beta(19), beta(20), beta(21), beta(22)/
258 4 1.79988721413553309e-02, 5.59964911064388073e-03,
259 5 2.88501402231132779e-03, 1.80096606761053941e-03,
260 6 1.24753110589199202e-03, 9.22878876572938311e-04,
261 7 7.14430421727287357e-04, 5.71787281789704872e-04,
262 8 4.69431007606481533e-04, 3.93232835462916638e-04,
263 9 3.34818889318297664e-04, 2.88952148495751517e-04,
264 a 2.52211615549573284e-04, 2.22280580798883327e-04,
265 b 1.97541838033062524e-04, 1.76836855019718004e-04,
266 c 1.59316899661821081e-04, 1.44347930197333986e-04,
267 d 1.31448068119965379e-04, 1.20245444949302884e-04,
268 e 1.10449144504599392e-04, 1.01828770740567258e-04/
269 DATA beta(23), beta(24), beta(25), beta(26), beta(27), beta(28),
270 1 beta(29), beta(30), beta(31), beta(32), beta(33), beta(34),
271 2 beta(35), beta(36), beta(37), beta(38), beta(39), beta(40),
272 3 beta(41), beta(42), beta(43), beta(44)/
273 4 9.41998224204237509e-05, 8.74130545753834437e-05,
274 5 8.13466262162801467e-05, 7.59002269646219339e-05,
275 6 7.09906300634153481e-05, 6.65482874842468183e-05,
276 7 6.25146958969275078e-05, 5.88403394426251749e-05,
277 8 -1.49282953213429172e-03, -8.78204709546389328e-04,
278 9 -5.02916549572034614e-04, -2.94822138512746025e-04,
279 a -1.75463996970782828e-04, -1.04008550460816434e-04,
280 b -5.96141953046457895e-05, -3.12038929076098340e-05,
281 c -1.26089735980230047e-05, -2.42892608575730389e-07,
282 d 8.05996165414273571e-06, 1.36507009262147391e-05,
283 e 1.73964125472926261e-05, 1.98672978842133780e-05/
284 DATA beta(45), beta(46), beta(47), beta(48), beta(49), beta(50),
285 1 beta(51), beta(52), beta(53), beta(54), beta(55), beta(56),
286 2 beta(57), beta(58), beta(59), beta(60), beta(61), beta(62),
287 3 beta(63), beta(64), beta(65), beta(66)/
288 4 2.14463263790822639e-05, 2.23954659232456514e-05,
289 5 2.28967783814712629e-05, 2.30785389811177817e-05,
290 6 2.30321976080909144e-05, 2.28236073720348722e-05,
291 7 2.25005881105292418e-05, 2.20981015361991429e-05,
292 8 2.16418427448103905e-05, 2.11507649256220843e-05,
293 9 2.06388749782170737e-05, 2.01165241997081666e-05,
294 a 1.95913450141179244e-05, 1.90689367910436740e-05,
295 b 1.85533719641636667e-05, 1.80475722259674218e-05,
296 c 5.52213076721292790e-04, 4.47932581552384646e-04,
297 d 2.79520653992020589e-04, 1.52468156198446602e-04,
298 e 6.93271105657043598e-05, 1.76258683069991397e-05/
299 DATA beta(67), beta(68), beta(69), beta(70), beta(71), beta(72),
300 1 beta(73), beta(74), beta(75), beta(76), beta(77), beta(78),
301 2 beta(79), beta(80), beta(81), beta(82), beta(83), beta(84),
302 3 beta(85), beta(86), beta(87), beta(88)/
303 4 -1.35744996343269136e-05, -3.17972413350427135e-05,
304 5 -4.18861861696693365e-05, -4.69004889379141029e-05,
305 6 -4.87665447413787352e-05, -4.87010031186735069e-05,
306 7 -4.74755620890086638e-05, -4.55813058138628452e-05,
307 8 -4.33309644511266036e-05, -4.09230193157750364e-05,
308 9 -3.84822638603221274e-05, -3.60857167535410501e-05,
309 a -3.37793306123367417e-05, -3.15888560772109621e-05,
310 b -2.95269561750807315e-05, -2.75978914828335759e-05,
311 c -2.58006174666883713e-05, -2.41308356761280200e-05,
312 d -2.25823509518346033e-05, -2.11479656768912971e-05,
313 e -1.98200638885294927e-05, -1.85909870801065077e-05/
314 DATA beta(89), beta(90), beta(91), beta(92), beta(93), beta(94),
315 1 beta(95), beta(96), beta(97), beta(98), beta(99), beta(100),
316 2 beta(101), beta(102), beta(103), beta(104), beta(105),
317 3 beta(106), beta(107), beta(108), beta(109), beta(110)/
318 4 -1.74532699844210224e-05, -1.63997823854497997e-05,
319 5 -4.74617796559959808e-04, -4.77864567147321487e-04,
320 6 -3.20390228067037603e-04, -1.61105016119962282e-04,
321 7 -4.25778101285435204e-05, 3.44571294294967503e-05,
322 8 7.97092684075674924e-05, 1.03138236708272200e-04,
323 9 1.12466775262204158e-04, 1.13103642108481389e-04,
324 a 1.08651634848774268e-04, 1.01437951597661973e-04,
325 b 9.29298396593363896e-05, 8.40293133016089978e-05,
326 c 7.52727991349134062e-05, 6.69632521975730872e-05,
327 d 5.92564547323194704e-05, 5.22169308826975567e-05,
328 e 4.58539485165360646e-05, 4.01445513891486808e-05/
329 DATA beta(111), beta(112), beta(113), beta(114), beta(115),
330 1 beta(116), beta(117), beta(118), beta(119), beta(120),
331 2 beta(121), beta(122), beta(123), beta(124), beta(125),
332 3 beta(126), beta(127), beta(128), beta(129), beta(130)/
333 4 3.50481730031328081e-05, 3.05157995034346659e-05,
334 5 2.64956119950516039e-05, 2.29363633690998152e-05,
335 6 1.97893056664021636e-05, 1.70091984636412623e-05,
336 7 1.45547428261524004e-05, 1.23886640995878413e-05,
337 8 1.04775876076583236e-05, 8.79179954978479373e-06,
338 9 7.36465810572578444e-04, 8.72790805146193976e-04,
339 a 6.22614862573135066e-04, 2.85998154194304147e-04,
340 b 3.84737672879366102e-06, -1.87906003636971558e-04,
341 c -2.97603646594554535e-04, -3.45998126832656348e-04,
342 d -3.53382470916037712e-04, -3.35715635775048757e-04/
343 DATA beta(131), beta(132), beta(133), beta(134), beta(135),
344 1 beta(136), beta(137), beta(138), beta(139), beta(140),
345 2 beta(141), beta(142), beta(143), beta(144), beta(145),
346 3 beta(146), beta(147), beta(148), beta(149), beta(150)/
347 4 -3.04321124789039809e-04, -2.66722723047612821e-04,
348 5 -2.27654214122819527e-04, -1.89922611854562356e-04,
349 6 -1.55058918599093870e-04, -1.23778240761873630e-04,
350 7 -9.62926147717644187e-05, -7.25178327714425337e-05,
351 8 -5.22070028895633801e-05, -3.50347750511900522e-05,
352 9 -2.06489761035551757e-05, -8.70106096849767054e-06,
353 a 1.13698686675100290e-06, 9.16426474122778849e-06,
354 b 1.56477785428872620e-05, 2.08223629482466847e-05,
355 c 2.48923381004595156e-05, 2.80340509574146325e-05,
356 d 3.03987774629861915e-05, 3.21156731406700616e-05/
357 DATA beta(151), beta(152), beta(153), beta(154), beta(155),
358 1 beta(156), beta(157), beta(158), beta(159), beta(160),
359 2 beta(161), beta(162), beta(163), beta(164), beta(165),
360 3 beta(166), beta(167), beta(168), beta(169), beta(170)/
361 4 -1.80182191963885708e-03, -2.43402962938042533e-03,
362 5 -1.83422663549856802e-03, -7.62204596354009765e-04,
363 6 2.39079475256927218e-04, 9.49266117176881141e-04,
364 7 1.34467449701540359e-03, 1.48457495259449178e-03,
365 8 1.44732339830617591e-03, 1.30268261285657186e-03,
366 9 1.10351597375642682e-03, 8.86047440419791759e-04,
367 a 6.73073208165665473e-04, 4.77603872856582378e-04,
368 b 3.05991926358789362e-04, 1.60315694594721630e-04,
369 c 4.00749555270613286e-05, -5.66607461635251611e-05,
370 d -1.32506186772982638e-04, -1.90296187989614057e-04/
371 DATA beta(171), beta(172), beta(173), beta(174), beta(175),
372 1 beta(176), beta(177), beta(178), beta(179), beta(180),
373 2 beta(181), beta(182), beta(183), beta(184), beta(185),
374 3 beta(186), beta(187), beta(188), beta(189), beta(190)/
375 4 -2.32811450376937408e-04, -2.62628811464668841e-04,
376 5 -2.82050469867598672e-04, -2.93081563192861167e-04,
377 6 -2.97435962176316616e-04, -2.96557334239348078e-04,
378 7 -2.91647363312090861e-04, -2.83696203837734166e-04,
379 8 -2.73512317095673346e-04, -2.61750155806768580e-04,
380 9 6.38585891212050914e-03, 9.62374215806377941e-03,
381 a 7.61878061207001043e-03, 2.83219055545628054e-03,
382 b -2.09841352012720090e-03, -5.73826764216626498e-03,
383 c -7.70804244495414620e-03, -8.21011692264844401e-03,
384 d -7.65824520346905413e-03, -6.47209729391045177e-03/
385 DATA beta(191), beta(192), beta(193), beta(194), beta(195),
386 1 beta(196), beta(197), beta(198), beta(199), beta(200),
387 2 beta(201), beta(202), beta(203), beta(204), beta(205),
388 3 beta(206), beta(207), beta(208), beta(209), beta(210)/
389 4 -4.99132412004966473e-03, -3.45612289713133280e-03,
390 5 -2.01785580014170775e-03, -7.59430686781961401e-04,
391 6 2.84173631523859138e-04, 1.10891667586337403e-03,
392 7 1.72901493872728771e-03, 2.16812590802684701e-03,
393 8 2.45357710494539735e-03, 2.61281821058334862e-03,
394 9 2.67141039656276912e-03, 2.65203073395980430e-03,
395 a 2.57411652877287315e-03, 2.45389126236094427e-03,
396 b 2.30460058071795494e-03, 2.13684837686712662e-03,
397 c 1.95896528478870911e-03, 1.77737008679454412e-03,
398 d 1.59690280765839059e-03, 1.42111975664438546e-03/
399 DATA gama(1), gama(2), gama(3), gama(4), gama(5), gama(6),
400 1 gama(7), gama(8), gama(9), gama(10), gama(11), gama(12),
401 2 gama(13), gama(14), gama(15), gama(16), gama(17), gama(18),
402 3 gama(19), gama(20), gama(21), gama(22)/
403 4 6.29960524947436582e-01, 2.51984209978974633e-01,
404 5 1.54790300415655846e-01, 1.10713062416159013e-01,
405 6 8.57309395527394825e-02, 6.97161316958684292e-02,
406 7 5.86085671893713576e-02, 5.04698873536310685e-02,
407 8 4.42600580689154809e-02, 3.93720661543509966e-02,
408 9 3.54283195924455368e-02, 3.21818857502098231e-02,
409 a 2.94646240791157679e-02, 2.71581677112934479e-02,
410 b 2.51768272973861779e-02, 2.34570755306078891e-02,
411 c 2.19508390134907203e-02, 2.06210828235646240e-02,
412 d 1.94388240897880846e-02, 1.83810633800683158e-02,
413 e 1.74293213231963172e-02, 1.65685837786612353e-02/
414 DATA gama(23), gama(24), gama(25), gama(26), gama(27), gama(28),
415 1 gama(29), gama(30)/
416 2 1.57865285987918445e-02, 1.50729501494095594e-02,
417 3 1.44193250839954639e-02, 1.38184805735341786e-02,
418 4 1.32643378994276568e-02, 1.27517121970498651e-02,
419 5 1.22761545318762767e-02, 1.18338262398482403e-02/
420 DATA ex1, ex2, hpi, pi, thpi /
421 1 3.33333333333333333e-01, 6.66666666666666667e-01,
422 2 1.57079632679489662e+00, 3.14159265358979324e+00,
423 3 4.71238898038468986e+00/
424 DATA czero, cone / (0.0e0,0.0e0), (1.0e0,0.0e0) /
425C
426 rfnu = 1.0e0/fnu
427C ZB = Z*CMPLX(RFNU,0.0E0)
428C-----------------------------------------------------------------------
429C OVERFLOW TEST (Z/FNU TOO SMALL)
430C-----------------------------------------------------------------------
431 tstr = real(z)
432 tsti = aimag(z)
433 test = r1mach(1)*1.0e+3
434 ac = fnu*test
435 IF (abs(tstr).GT.ac .OR. abs(tsti).GT.ac) GO TO 15
436 ac = 2.0e0*abs(alog(test))+fnu
437 zeta1 = cmplx(ac,0.0e0)
438 zeta2 = cmplx(fnu,0.0e0)
439 phi=cone
440 arg=cone
441 RETURN
442 15 CONTINUE
443 zb = z*cmplx(rfnu,0.0e0)
444 rfnu2 = rfnu*rfnu
445C-----------------------------------------------------------------------
446C COMPUTE IN THE FOURTH QUADRANT
447C-----------------------------------------------------------------------
448 fn13 = fnu**ex1
449 fn23 = fn13*fn13
450 rfn13 = cmplx(1.0e0/fn13,0.0e0)
451 w2 = cone - zb*zb
452 aw2 = cabs(w2)
453 IF (aw2.GT.0.25e0) GO TO 130
454C-----------------------------------------------------------------------
455C POWER SERIES FOR CABS(W2).LE.0.25E0
456C-----------------------------------------------------------------------
457 k = 1
458 p(1) = cone
459 suma = cmplx(gama(1),0.0e0)
460 ap(1) = 1.0e0
461 IF (aw2.LT.tol) GO TO 20
462 DO 10 k=2,30
463 p(k) = p(k-1)*w2
464 suma = suma + p(k)*cmplx(gama(k),0.0e0)
465 ap(k) = ap(k-1)*aw2
466 IF (ap(k).LT.tol) GO TO 20
467 10 CONTINUE
468 k = 30
469 20 CONTINUE
470 kmax = k
471 zeta = w2*suma
472 arg = zeta*cmplx(fn23,0.0e0)
473 za = csqrt(suma)
474 zeta2 = csqrt(w2)*cmplx(fnu,0.0e0)
475 zeta1 = zeta2*(cone+zeta*za*cmplx(ex2,0.0e0))
476 za = za + za
477 phi = csqrt(za)*rfn13
478 IF (ipmtr.EQ.1) GO TO 120
479C-----------------------------------------------------------------------
480C SUM SERIES FOR ASUM AND BSUM
481C-----------------------------------------------------------------------
482 sumb = czero
483 DO 30 k=1,kmax
484 sumb = sumb + p(k)*cmplx(beta(k),0.0e0)
485 30 CONTINUE
486 asum = czero
487 bsum = sumb
488 l1 = 0
489 l2 = 30
490 btol = tol*cabs(bsum)
491 atol = tol
492 pp = 1.0e0
493 ias = 0
494 ibs = 0
495 IF (rfnu2.LT.tol) GO TO 110
496 DO 100 is=2,7
497 atol = atol/rfnu2
498 pp = pp*rfnu2
499 IF (ias.EQ.1) GO TO 60
500 suma = czero
501 DO 40 k=1,kmax
502 m = l1 + k
503 suma = suma + p(k)*cmplx(alfa(m),0.0e0)
504 IF (ap(k).LT.atol) GO TO 50
505 40 CONTINUE
506 50 CONTINUE
507 asum = asum + suma*cmplx(pp,0.0e0)
508 IF (pp.LT.tol) ias = 1
509 60 CONTINUE
510 IF (ibs.EQ.1) GO TO 90
511 sumb = czero
512 DO 70 k=1,kmax
513 m = l2 + k
514 sumb = sumb + p(k)*cmplx(beta(m),0.0e0)
515 IF (ap(k).LT.atol) GO TO 80
516 70 CONTINUE
517 80 CONTINUE
518 bsum = bsum + sumb*cmplx(pp,0.0e0)
519 IF (pp.LT.btol) ibs = 1
520 90 CONTINUE
521 IF (ias.EQ.1 .AND. ibs.EQ.1) GO TO 110
522 l1 = l1 + 30
523 l2 = l2 + 30
524 100 CONTINUE
525 110 CONTINUE
526 asum = asum + cone
527 pp = rfnu*real(rfn13)
528 bsum = bsum*cmplx(pp,0.0e0)
529 120 CONTINUE
530 RETURN
531C-----------------------------------------------------------------------
532C CABS(W2).GT.0.25E0
533C-----------------------------------------------------------------------
534 130 CONTINUE
535 w = csqrt(w2)
536 wr = real(w)
537 wi = aimag(w)
538 IF (wr.LT.0.0e0) wr = 0.0e0
539 IF (wi.LT.0.0e0) wi = 0.0e0
540 w = cmplx(wr,wi)
541 za = (cone+w)/zb
542 zc = clog(za)
543 zcr = real(zc)
544 zci = aimag(zc)
545 IF (zci.LT.0.0e0) zci = 0.0e0
546 IF (zci.GT.hpi) zci = hpi
547 IF (zcr.LT.0.0e0) zcr = 0.0e0
548 zc = cmplx(zcr,zci)
549 zth = (zc-w)*cmplx(1.5e0,0.0e0)
550 cfnu = cmplx(fnu,0.0e0)
551 zeta1 = zc*cfnu
552 zeta2 = w*cfnu
553 azth = cabs(zth)
554 zthr = real(zth)
555 zthi = aimag(zth)
556 ang = thpi
557 IF (zthr.GE.0.0e0 .AND. zthi.LT.0.0e0) GO TO 140
558 ang = hpi
559 IF (zthr.EQ.0.0e0) GO TO 140
560 ang = atan(zthi/zthr)
561 IF (zthr.LT.0.0e0) ang = ang + pi
562 140 CONTINUE
563 pp = azth**ex2
564 ang = ang*ex2
565 zetar = pp*cos(ang)
566 zetai = pp*sin(ang)
567 IF (zetai.LT.0.0e0) zetai = 0.0e0
568 zeta = cmplx(zetar,zetai)
569 arg = zeta*cmplx(fn23,0.0e0)
570 rtzta = zth/zeta
571 za = rtzta/w
572 phi = csqrt(za+za)*rfn13
573 IF (ipmtr.EQ.1) GO TO 120
574 tfn = cmplx(rfnu,0.0e0)/w
575 rzth = cmplx(rfnu,0.0e0)/zth
576 zc = rzth*cmplx(ar(2),0.0e0)
577 t2 = cone/w2
578 up(2) = (t2*cmplx(c(2),0.0e0)+cmplx(c(3),0.0e0))*tfn
579 bsum = up(2) + zc
580 asum = czero
581 IF (rfnu.LT.tol) GO TO 220
582 przth = rzth
583 ptfn = tfn
584 up(1) = cone
585 pp = 1.0e0
586 bsumr = real(bsum)
587 bsumi = aimag(bsum)
588 btol = tol*(abs(bsumr)+abs(bsumi))
589 ks = 0
590 kp1 = 2
591 l = 3
592 ias = 0
593 ibs = 0
594 DO 210 lr=2,12,2
595 lrp1 = lr + 1
596C-----------------------------------------------------------------------
597C COMPUTE TWO ADDITIONAL CR, DR, AND UP FOR TWO MORE TERMS IN
598C NEXT SUMA AND SUMB
599C-----------------------------------------------------------------------
600 DO 160 k=lr,lrp1
601 ks = ks + 1
602 kp1 = kp1 + 1
603 l = l + 1
604 za = cmplx(c(l),0.0e0)
605 DO 150 j=2,kp1
606 l = l + 1
607 za = za*t2 + cmplx(c(l),0.0e0)
608 150 CONTINUE
609 ptfn = ptfn*tfn
610 up(kp1) = ptfn*za
611 cr(ks) = przth*cmplx(br(ks+1),0.0e0)
612 przth = przth*rzth
613 dr(ks) = przth*cmplx(ar(ks+2),0.0e0)
614 160 CONTINUE
615 pp = pp*rfnu2
616 IF (ias.EQ.1) GO TO 180
617 suma = up(lrp1)
618 ju = lrp1
619 DO 170 jr=1,lr
620 ju = ju - 1
621 suma = suma + cr(jr)*up(ju)
622 170 CONTINUE
623 asum = asum + suma
624 asumr = real(asum)
625 asumi = aimag(asum)
626 test = abs(asumr) + abs(asumi)
627 IF (pp.LT.tol .AND. test.LT.tol) ias = 1
628 180 CONTINUE
629 IF (ibs.EQ.1) GO TO 200
630 sumb = up(lr+2) + up(lrp1)*zc
631 ju = lrp1
632 DO 190 jr=1,lr
633 ju = ju - 1
634 sumb = sumb + dr(jr)*up(ju)
635 190 CONTINUE
636 bsum = bsum + sumb
637 bsumr = real(bsum)
638 bsumi = aimag(bsum)
639 test = abs(bsumr) + abs(bsumi)
640 IF (pp.LT.btol .AND. test.LT.tol) ibs = 1
641 200 CONTINUE
642 IF (ias.EQ.1 .AND. ibs.EQ.1) GO TO 220
643 210 CONTINUE
644 220 CONTINUE
645 asum = asum + cone
646 bsum = -bsum*rfn13/rtzta
647 GO TO 120
648 END
double complex cmplx
Definition Faddeeva.cc:227
subroutine cunhj(z, fnu, ipmtr, tol, phi, arg, zeta1, zeta2, asum, bsum)
Definition cunhj.f:3
ColumnVector real(const ComplexColumnVector &a)
Complex atan(const Complex &x)
Definition lo-mappers.h:71
real function r1mach(i)
Definition r1mach.f:23