1 SUBROUTINE zbesk(ZR, ZI, FNU, KODE, N, CYR, CYI, NZ, IERR)
154 DOUBLE PRECISION aa, alim, aln,
arg, az, cyi, cyr, dig, elim, fn,
155 * fnu, fnul, rl, r1m5, tol, ufl, zi, zr,
d1mach,
xzabs, bb
156 INTEGER ierr, k, kode, k1, k2, mr, n,
nn, nuf, nw, nz,
i1mach
161 IF (zi.EQ.0.0e0 .AND. zr.EQ.0.0e0)
ierr=1
162 IF (fnu.LT.0.0d0)
ierr=1
163 IF (kode.LT.1 .OR. kode.GT.2)
ierr=1
165 IF (
ierr.NE.0)
RETURN
182 k = min0(iabs(k1),iabs(k2))
183 elim = 2.303d0*(dble(float(k))*r1m5-3.0d0)
185 aa = r1m5*dble(float(k1))
186 dig = dmin1(aa,18.0d0)
188 alim = elim + dmax1(-aa,-41.45d0)
189 fnul = 10.0d0 + 6.0d0*(dig-3.0d0)
190 rl = 1.2d0*dig + 3.0d0
195 fn = fnu + dble(float(
nn-1))
197 bb=dble(float(
i1mach(9)))*0.5d0
199 IF (az.GT.aa) go to 260
200 IF (fn.GT.aa) go to 260
209 IF (az.LT.ufl) go to 180
210 IF (fnu.GT.fnul) go to 80
211 IF (fn.LE.1.0d0) go to 60
212 IF (fn.GT.2.0d0) go to 50
213 IF (az.GT.tol) go to 60
216 IF (aln.GT.elim) go to 180
219 CALL
zuoik(zr, zi, fnu, kode, 2,
nn, cyr, cyi, nuf, tol, elim,
221 IF (nuf.LT.0) go to 180
228 IF (
nn.EQ.0) go to 100
230 IF (zr.LT.0.0d0) go to 70
234 CALL
zbknu(zr, zi, fnu, kode,
nn, cyr, cyi, nw, tol, elim, alim)
235 IF (nw.LT.0) go to 200
243 IF (nz.NE.0) go to 180
245 IF (zi.LT.0.0d0) mr = -1
246 CALL
zacon(zr, zi, fnu, kode, mr,
nn, cyr, cyi, nw, rl, fnul,
248 IF (nw.LT.0) go to 200
256 IF (zr.GE.0.0d0) go to 90
258 IF (zi.LT.0.0d0) mr = -1
260 CALL
zbunk(zr, zi, fnu, kode, mr,
nn, cyr, cyi, nw, tol, elim,
262 IF (nw.LT.0) go to 200
266 IF (zr.LT.0.0d0) go to 180
273 IF(nw.EQ.(-1)) go to 180