1 SUBROUTINE zbesh(ZR, ZI, FNU, KODE, M, N, CYR, CYI, NZ, IERR)
159 DOUBLE PRECISION aa, alim, aln,
arg, az, cyi, cyr, dig, elim,
160 * fmm, fn, fnu, fnul, hpi, rhpi, rl, r1m5, sgn,
str, tol, ufl, zi,
161 * zni, znr, zr, zti,
d1mach,
xzabs, bb, ascle, rtol, atol, sti,
163 INTEGER i,
ierr, inu, inuh, ir, k, kode, k1, k2, m,
164 * mm, mr, n,
nn, nuf, nw, nz,
i1mach
167 DATA hpi /1.57079632679489662d0/
172 IF (zr.EQ.0.0d0 .AND. zi.EQ.0.0d0)
ierr=1
173 IF (fnu.LT.0.0d0)
ierr=1
174 IF (m.LT.1 .OR. m.GT.2)
ierr=1
175 IF (kode.LT.1 .OR. kode.GT.2)
ierr=1
177 IF (
ierr.NE.0)
RETURN
194 k = min0(iabs(k1),iabs(k2))
195 elim = 2.303d0*(dble(float(k))*r1m5-3.0d0)
197 aa = r1m5*dble(float(k1))
198 dig = dmin1(aa,18.0d0)
200 alim = elim + dmax1(-aa,-41.45d0)
201 fnul = 10.0d0 + 6.0d0*(dig-3.0d0)
202 rl = 1.2d0*dig + 3.0d0
203 fn = fnu + dble(float(
nn-1))
205 fmm = dble(float(mm))
213 bb=dble(float(
i1mach(9)))*0.5d0
215 IF (az.GT.aa) go to 260
216 IF (fn.GT.aa) go to 260
224 IF (az.LT.ufl) go to 230
225 IF (fnu.GT.fnul) go to 90
226 IF (fn.LE.1.0d0) go to 70
227 IF (fn.GT.2.0d0) go to 60
228 IF (az.GT.tol) go to 70
231 IF (aln.GT.elim) go to 230
234 CALL
zuoik(znr, zni, fnu, kode, 2,
nn, cyr, cyi, nuf, tol, elim,
236 IF (nuf.LT.0) go to 230
243 IF (
nn.EQ.0) go to 140
245 IF ((znr.LT.0.0d0) .OR. (znr.EQ.0.0d0 .AND. zni.LT.0.0d0 .AND.
251 CALL
zbknu(znr, zni, fnu, kode,
nn, cyr, cyi, nz, tol, elim, alim)
258 CALL
zacon(znr, zni, fnu, kode, mr,
nn, cyr, cyi, nw, rl, fnul,
260 IF (nw.LT.0) go to 240
268 IF ((znr.GE.0.0d0) .AND. (znr.NE.0.0d0 .OR. zni.GE.0.0d0 .OR.
271 IF (znr.NE.0.0d0 .OR. zni.GE.0.0d0) go to 100
275 CALL
zbunk(znr, zni, fnu, kode, mr,
nn, cyr, cyi, nw, tol, elim,
277 IF (nw.LT.0) go to 240
285 sgn = dsign(hpi,-fmm)
293 arg = (fnu-dble(float(inu-ir)))*sgn
297 csgni = rhpi*dcos(
arg)
298 csgnr = -rhpi*dsin(
arg)
299 IF (
mod(inuh,2).EQ.0) go to 120
318 IF (dmax1(dabs(aa),dabs(bb)).GT.ascle) go to 135
323 str = aa*csgnr - bb*csgni
324 sti = aa*csgni + bb*csgnr
333 IF (znr.LT.0.0d0) go to 230
340 IF(nw.EQ.(-1)) go to 230