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
subroutine cacon(Z, FNU, KODE, MR, N, Y, NZ, RL, FNUL, TOL, ELIM, ALIM)
subroutine cbinu(Z, FNU, KODE, N, CY, NZ, RL, FNUL, TOL, ELIM, ALIM)
subroutine cbknu(Z, FNU, KODE, N, Y, NZ, TOL, ELIM, ALIM)
subroutine cs1s2(ZR, S1, S2, NZ, ASCLE, ALIM, IUF)
ColumnVector real(const ComplexColumnVector &a)