1 SUBROUTINE cuni1(Z, FNU, KODE, N, Y, NZ, NLAST, FNUL, TOL, ELIM,
17 COMPLEX CFN, CONE, CRSC, CSCL, CSR, CSS, CWRK, CZERO, C1, C2,
18 * phi, rz, sum, s1, s2, y, z, zeta1, zeta2, cy
19 REAL ALIM, APHI, ASCLE, BRY, C2I, C2M, C2R, ELIM, FN, FNU, FNUL,
21 INTEGER I, IFLAG, INIT, K, KODE, M, N, ND, NLAST, NN, NUF, NW, NZ
22 dimension bry(3), y(n), cwrk(16), css(3), csr(3), cy(2)
23 DATA czero, cone / (0.0e0,0.0e0), (1.0e0,0.0e0) /
33 cscl =
cmplx(1.0e0/tol,0.0e0)
34 crsc =
cmplx(tol,0.0e0)
41 bry(1) = 1.0e+3*
r1mach(1)/tol
47 CALL cunik(z, fn, 1, 1, tol, init, phi, zeta1, zeta2, sum, cwrk)
48 IF (kode.EQ.1)
GO TO 10
50 s1 = -zeta1 + cfn*(cfn/(z+zeta2))
56 IF (
abs(rs1).GT.elim)
GO TO 130
60 fn = fnu + float(nd-i)
62 CALL cunik(z, fn, 1, 0, tol, init, phi, zeta1, zeta2, sum, cwrk)
63 IF (kode.EQ.1)
GO TO 40
66 s1 = -zeta1 + cfn*(cfn/(z+zeta2)) +
cmplx(0.0e0,yy)
75 IF (
abs(rs1).GT.elim)
GO TO 110
77 IF (
abs(rs1).LT.alim)
GO TO 60
82 rs1 = rs1 + alog(aphi)
83 IF (
abs(rs1).GT.elim)
GO TO 110
85 IF (rs1.LT.0.0e0)
GO TO 60
94 c2m = exp(c2r)*
real(css(iflag))
97 IF (iflag.NE.1)
GO TO 70
98 CALL cuchk(s2, nw, bry(1), tol)
99 IF (nw.NE.0)
GO TO 110
105 IF (nd.LE.2)
GO TO 100
106 rz =
cmplx(2.0e0,0.0e0)/z
107 bry(2) = 1.0e0/bry(1)
117 s2 = s1 +
cmplx(fnu+fn,0.0e0)*rz*s2
123 IF (iflag.GE.3)
GO TO 90
129 IF (c2m.LE.ascle)
GO TO 90
144 IF (rs1.GT.0.0e0)
GO TO 120
148 IF (nd.EQ.0)
GO TO 100
149 CALL cuoik(z, fnu, kode, 1, nd, y, nuf, tol, elim, alim)
150 IF (nuf.LT.0)
GO TO 120
153 IF (nd.EQ.0)
GO TO 100
154 fn = fnu + float(nd-1)
155 IF (fn.GE.fnul)
GO TO 30
162 IF (rs1.GT.0.0e0)
GO TO 120
subroutine cuchk(Y, NZ, ASCLE, TOL)
subroutine cuni1(Z, FNU, KODE, N, Y, NZ, NLAST, FNUL, TOL, ELIM, ALIM)
subroutine cunik(ZR, FNU, IKFLG, IPMTR, TOL, INIT, PHI, ZETA1, ZETA2, SUM, CWRK)
subroutine cuoik(Z, FNU, KODE, IKFLG, N, Y, NUF, TOL, ELIM, ALIM)
ColumnVector real(const ComplexColumnVector &a)