1 SUBROUTINE cacon(Z, FNU, KODE, MR, N, Y, NZ, RL, FNUL, TOL, ELIM,
16 COMPLEX ck, cone, cs, cscl, cscr, csgn, cspn, css, csr,
c1, c2,
17 * rz, sc1, sc2, st, s1, s2, y, z, zn, cy
18 REAL alim,
arg, ascle, as2, bscle, bry, cpn, c1i, c1m, c1r, elim,
19 * fmr, fnu, fnul, pi, rl, sgn, spn, tol, yy,
r1mach
20 INTEGER i, inu, iuf, kflag, kode, mr, n,
nn, nw, nz
21 dimension y(n), cy(2), css(3), csr(3), bry(3)
22 DATA pi / 3.14159265358979324e0 /
23 DATA cone / (1.0e0,0.0e0) /
27 CALL
cbinu(zn, fnu, kode,
nn, y, nw, rl, fnul, tol, elim, alim)
33 CALL
cbknu(zn, fnu, kode,
nn, cy, nw, tol, elim, alim)
38 csgn =
cmplx(0.0e0,sgn)
39 IF (kode.EQ.1) go to 10
43 csgn = csgn*
cmplx(cpn,spn)
50 arg = (fnu-float(inu))*sgn
54 IF (
mod(inu,2).EQ.1) cspn = -cspn
58 ascle = 1.0e+3*
r1mach(1)/tol
59 IF (kode.EQ.1) go to 20
60 CALL
cs1s2(zn,
c1, c2, nw, ascle, alim, iuf)
64 y(1) = cspn*
c1 + csgn*c2
70 IF (kode.EQ.1) go to 30
71 CALL
cs1s2(zn,
c1, c2, nw, ascle, alim, iuf)
75 y(2) = cspn*
c1 + csgn*c2
78 rz =
cmplx(2.0e0,0.0e0)/zn
79 ck =
cmplx(fnu+1.0e0,0.0e0)*rz
83 cscl =
cmplx(1.0e0/tol,0.0e0)
84 cscr =
cmplx(tol,0.0e0)
96 IF (as2.GT.bry(1)) go to 40
100 IF (as2.LT.bry(2)) go to 50
114 IF (kode.EQ.1) go to 60
115 IF (iuf.LT.0) go to 60
116 CALL
cs1s2(zn,
c1, c2, nw, ascle, alim, iuf)
120 IF (iuf.NE.3) go to 60
126 y(i) = cspn*
c1 + csgn*c2
129 IF (kflag.GE.3) go to 70
135 IF (c1m.LE.bscle) go to 70