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
165 dimension cyr(n), cyi(n)
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
190 tol = dmax1(d1mach(4),1.0d-18)
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 ufl = d1mach(1)*1.0d+3
225 IF (az.LT.ufl)
GO TO 230
226 IF (fnu.GT.fnul)
GO TO 90
227 IF (fn.LE.1.0d0)
GO TO 70
228 IF (fn.GT.2.0d0)
GO TO 60
229 IF (az.GT.tol)
GO TO 70
232 IF (aln.GT.elim)
GO TO 230
235 CALL zuoik(znr, zni, fnu, kode, 2, nn, cyr, cyi, nuf, tol, elim,
237 IF (nuf.LT.0)
GO TO 230
244 IF (nn.EQ.0)
GO TO 140
246 IF ((znr.LT.0.0d0) .OR. (znr.EQ.0.0d0 .AND. zni.LT.0.0d0 .AND.
252 CALL zbknu(znr, zni, fnu, kode, nn, cyr, cyi, nz, tol, elim, alim)
259 CALL zacon(znr, zni, fnu, kode, mr, nn, cyr, cyi, nw, rl, fnul,
261 IF (nw.LT.0)
GO TO 240
269 IF ((znr.GE.0.0d0) .AND. (znr.NE.0.0d0 .OR. zni.GE.0.0d0 .OR.
272 IF (znr.NE.0.0d0 .OR. zni.GE.0.0d0)
GO TO 100
276 CALL zbunk(znr, zni, fnu, kode, mr, nn, cyr, cyi, nw, tol, elim,
278 IF (nw.LT.0)
GO TO 240
286 sgn = dsign(hpi,-fmm)
294 arg = (fnu-dble(float(inu-ir)))*sgn
298 csgni = rhpi*dcos(arg)
299 csgnr = -rhpi*dsin(arg)
300 IF (
mod(inuh,2).EQ.0)
GO TO 120
319 IF (dmax1(dabs(aa),dabs(bb)).GT.ascle)
GO TO 135
324 str = aa*csgnr - bb*csgni
325 sti = aa*csgni + bb*csgnr
334 IF (znr.LT.0.0d0)
GO TO 230
341 IF(nw.EQ.(-1))
GO TO 230
subroutine zacon(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, RL, FNUL, TOL, ELIM, ALIM)
subroutine zbesh(ZR, ZI, FNU, KODE, M, N, CYR, CYI, NZ, IERR)
subroutine zbknu(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL, ELIM, ALIM)
subroutine zbunk(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, TOL, ELIM, ALIM)
subroutine zuoik(ZR, ZI, FNU, KODE, IKFLG, N, YR, YI, NUF, TOL, ELIM, ALIM)