1 SUBROUTINE zacai(ZR, ZI, FNU, KODE, MR, N, YR, YI, NZ, RL, TOL,
20 DOUBLE PRECISION alim,
arg, ascle, az, csgnr, csgni, cspnr,
21 * cspni, c1r, c1i, c2r, c2i, cyr, cyi, dfnu, elim, fmr, fnu, pi,
22 * rl, sgn, tol, yy, yr, yi, zr, zi, znr, zni,
d1mach,
xzabs
23 INTEGER inu, iuf, kode, mr, n,
nn, nw, nz
25 DATA pi / 3.14159265358979324d0 /
31 dfnu = fnu + dble(float(n-1))
32 IF (az.LE.2.0d0) go to 10
33 IF (az*az*0.25d0.GT.dfnu+1.0d0) go to 20
38 CALL
zseri(znr, zni, fnu, kode,
nn, yr, yi, nw, tol, elim, alim)
41 IF (az.LT.rl) go to 30
45 CALL
zasyi(znr, zni, fnu, kode,
nn, yr, yi, nw, rl, tol, elim,
53 CALL
zmlri(znr, zni, fnu, kode,
nn, yr, yi, nw, tol)
59 CALL
zbknu(znr, zni, fnu, kode, 1, cyr, cyi, nw, tol, elim, alim)
65 IF (kode.EQ.1) go to 50
67 csgnr = -csgni*dsin(yy)
68 csgni = csgni*dcos(yy)
75 arg = (fnu-dble(float(inu)))*sgn
78 IF (
mod(inu,2).EQ.0) go to 60
86 IF (kode.EQ.1) go to 70
89 CALL
zs1s2(znr, zni, c1r, c1i, c2r, c2i, nw, ascle, alim, iuf)
92 yr(1) = cspnr*c1r - cspni*c1i + csgnr*c2r - csgni*c2i
93 yi(1) = cspnr*c1i + cspni*c1r + csgnr*c2i + csgni*c2r