1 SUBROUTINE crati(Z, FNU, N, CY, TOL)
14 COMPLEX CDFNU, CONE, CY, CZERO, PT, P1, P2, RZ, T1, Z
15 REAL AK, AMAGZ, AP1, AP2, ARG, AZ, DFNU, FDNU, FLAM, FNU, FNUP,
16 * RAP1, RHO, TEST, TEST1, TOL
17 INTEGER I, ID, IDNU, INU, ITIME, K, KK, MAGZ, N
19 DATA czero, cone / (0.0e0,0.0e0), (1.0e0,0.0e0) /
26 fnup = amax1(amagz,fdnu)
31 t1 =
cmplx(fnup,0.0e0)*rz
44 arg = (ap2+ap2)/(ap1*tol)
48 p1 = p1*
cmplx(rap1,0.0e0)
49 p2 = p2*
cmplx(rap1,0.0e0)
59 IF (ap1.LE.test)
GO TO 10
60 IF (itime.EQ.2)
GO TO 20
62 flam = ak + sqrt(ak*ak-1.0e0)
63 rho = amin1(ap2/ap1,flam)
64 test = test1*sqrt(rho/(rho*rho-1.0e0))
70 dfnu = fnu + float(n-1)
71 cdfnu =
cmplx(dfnu,0.0e0)
73 p1 =
cmplx(1.0e0/ap2,0.0e0)
77 p1 = rz*(cdfnu+t1)*p1 + p2
81 IF (
real(p1).NE.0.0e0 .OR. aimag(p1).NE.0.0e0)
GO TO 40
89 cdfnu =
cmplx(fnu,0.0e0)*rz
91 pt = cdfnu + t1*rz + cy(k+1)
92 IF (
real(pt).NE.0.0e0 .OR. aimag(pt).NE.0.0e0)
GO TO 50
subroutine crati(Z, FNU, N, CY, TOL)
ColumnVector real(const ComplexColumnVector &a)