1 SUBROUTINE zbesj(ZR, ZI, FNU, KODE, N, CYR, CYI, NZ, IERR)
148 DOUBLE PRECISION aa, alim,
arg, cii, csgni, csgnr, cyi, cyr, dig,
149 * elim, fnu, fnul, hpi, rl, r1m5,
str, tol, zi, zni, znr, zr,
150 *
d1mach, bb, fn, az,
xzabs, ascle, rtol, atol, sti
151 INTEGER i,
ierr, inu, inuh, ir, k, kode, k1, k2, n, nl, nz,
i1mach
153 DATA hpi /1.57079632679489662d0/
158 IF (fnu.LT.0.0d0)
ierr=1
159 IF (kode.LT.1 .OR. kode.GT.2)
ierr=1
161 IF (
ierr.NE.0)
RETURN
177 k = min0(iabs(k1),iabs(k2))
178 elim = 2.303d0*(dble(float(k))*r1m5-3.0d0)
180 aa = r1m5*dble(float(k1))
181 dig = dmin1(aa,18.0d0)
183 alim = elim + dmax1(-aa,-41.45d0)
184 rl = 1.2d0*dig + 3.0d0
185 fnul = 10.0d0 + 6.0d0*(dig-3.0d0)
190 fn = fnu+dble(float(n-1))
192 bb=dble(float(
i1mach(9)))*0.5d0
194 IF (az.GT.aa) go to 260
195 IF (fn.GT.aa) go to 260
207 arg = (fnu-dble(float(inu-ir)))*hpi
210 IF (
mod(inuh,2).EQ.0) go to 40
219 IF (zi.GE.0.0d0) go to 50
225 CALL
zbinu(znr, zni, fnu, kode, n, cyr, cyi, nz, rl, fnul, tol,
227 IF (nz.LT.0) go to 130
239 IF (dmax1(dabs(aa),dabs(bb)).GT.ascle) go to 55
244 str = aa*csgnr - bb*csgni
245 sti = aa*csgni + bb*csgnr
254 IF(nz.EQ.(-2)) go to 140