1 SUBROUTINE zbesi(ZR, ZI, FNU, KODE, N, CYR, CYI, NZ, IERR)
153 DOUBLE PRECISION AA, ALIM, ARG, CONEI, CONER, CSGNI, CSGNR, CYI,
154 * CYR, DIG, ELIM, FNU, FNUL, PI, RL, R1M5, STR, TOL, ZI, ZNI, ZNR,
155 * ZR, D1MACH, AZ, BB, FN, XZABS, ASCLE, RTOL, ATOL, STI
156 INTEGER I, IERR, INU, K, KODE, K1,K2,N,NZ,NN, I1MACH
157 dimension cyr(n), cyi(n)
158 DATA pi /3.14159265358979324d0/
159 DATA coner, conei /1.0d0,0.0d0/
164 IF (fnu.LT.0.0d0) ierr=1
165 IF (kode.LT.1 .OR. kode.GT.2) ierr=1
167 IF (ierr.NE.0)
RETURN
179 tol = dmax1(d1mach(4),1.0d-18)
183 k = min0(iabs(k1),iabs(k2))
184 elim = 2.303d0*(dble(float(k))*r1m5-3.0d0)
186 aa = r1m5*dble(float(k1))
187 dig = dmin1(aa,18.0d0)
189 alim = elim + dmax1(-aa,-41.45d0)
190 rl = 1.2d0*dig + 3.0d0
191 fnul = 10.0d0 + 6.0d0*(dig-3.0d0)
196 fn = fnu+dble(float(n-1))
198 bb=dble(float(i1mach(9)))*0.5d0
200 IF (az.GT.aa)
GO TO 260
201 IF (fn.GT.aa)
GO TO 260
210 IF (zr.GE.0.0d0)
GO TO 40
218 arg = (fnu-dble(float(inu)))*pi
219 IF (zi.LT.0.0d0) arg = -arg
222 IF (
mod(inu,2).EQ.0)
GO TO 40
226 CALL zbinu(znr, zni, fnu, kode, n, cyr, cyi, nz, rl, fnul, tol,
228 IF (nz.LT.0)
GO TO 120
229 IF (zr.GE.0.0d0)
RETURN
236 ascle = d1mach(1)*rtol*1.0d+3
244 IF (dmax1(dabs(aa),dabs(bb)).GT.ascle)
GO TO 55
249 str = aa*csgnr - bb*csgni
250 sti = aa*csgni + bb*csgnr
258 IF(nz.EQ.(-2))
GO TO 130
subroutine zbesi(ZR, ZI, FNU, KODE, N, CYR, CYI, NZ, IERR)
subroutine zbinu(ZR, ZI, FNU, KODE, N, CYR, CYI, NZ, RL, FNUL, TOL, ELIM, ALIM)