1 SUBROUTINE cseri(Z, FNU, KODE, N, Y, NZ, TOL, ELIM, ALIM)
15 COMPLEX AK1, CK, COEF, CONE, CRSC, CZ, CZERO, HZ, RZ, S1, S2, W,
17 REAL AA, ACZ, AK, ALIM, ARM, ASCLE, ATOL, AZ, DFNU, ELIM, FNU,
18 * FNUP, RAK1, RS, RTR1, S, SS, TOL, X, GAMLN, R1MACH
19 INTEGER I, IB, IDUM, IFLAG, IL, K, KODE, L, M, N, NN, NW, NZ
21 DATA czero, cone / (0.0e0,0.0e0), (1.0e0,0.0e0) /
25 IF (az.EQ.0.0e0)
GO TO 150
27 arm = 1.0e+3*r1mach(1)
29 crsc =
cmplx(1.0e0,0.0e0)
31 IF (az.LT.arm)
GO TO 140
32 hz = z*
cmplx(0.5e0,0.0e0)
34 IF (az.GT.rtr1) cz = hz*hz
39 dfnu = fnu + float(nn-1)
44 ak1 = ck*
cmplx(dfnu,0.0e0)
46 ak1 = ak1 -
cmplx(ak,0.0e0)
47 IF (kode.EQ.2) ak1 = ak1 -
cmplx(x,0.0e0)
49 IF (rak1.GT.(-elim))
GO TO 30
53 IF (acz.GT.dfnu)
GO TO 170
58 IF (rak1.GT.(-alim))
GO TO 40
61 crsc =
cmplx(tol,0.0e0)
66 IF (iflag.EQ.1) aa = aa*ss
71 dfnu = fnu + float(nn-i)
74 IF (acz.LT.tol*fnup)
GO TO 60
81 ak1 = ak1*cz*
cmplx(rs,0.0e0)
86 IF (aa.GT.atol)
GO TO 50
91 IF (iflag.EQ.0)
GO TO 70
92 CALL cuchk(s2, nw, ascle, tol)
96 IF (i.NE.il) coef = coef*
cmplx(dfnu,0.0e0)/hz
102 IF (iflag.EQ.1)
GO TO 110
106 y(k) =
cmplx(ak+fnu,0.0e0)*rz*y(k+1) + y(k+2)
123 s2 = s1 +
cmplx(ak+fnu,0.0e0)*rz*s2
129 IF (cabs(ck).GT.ascle)
GO TO 130
138 IF (fnu.EQ.0.0e0) nz = nz - 1
141 IF (fnu.EQ.0.0e0) y(1) = cone
subroutine cseri(Z, FNU, KODE, N, Y, NZ, TOL, ELIM, ALIM)
subroutine cuchk(Y, NZ, ASCLE, TOL)
ColumnVector real(const ComplexColumnVector &a)