1 SUBROUTINE zrati(ZR, ZI, FNU, N, CYR, CYI, TOL)
15 DOUBLE PRECISION AK, AMAGZ, AP1, AP2, ARG, AZ, CDFNUI, CDFNUR,
16 * CONEI, CONER, CYI, CYR, CZEROI, CZEROR, DFNU, FDNU, FLAM, FNU,
17 * FNUP, PTI, PTR, P1I, P1R, P2I, P2R, RAK, RAP1, RHO, RT2, RZI,
18 * RZR, TEST, TEST1, TOL, TTI, TTR, T1I, T1R, ZI, ZR, XZABS
19 INTEGER I, ID, IDNU, INU, ITIME, K, KK, MAGZ, N
20 dimension cyr(n), cyi(n)
21 DATA czeror,czeroi,coner,conei,rt2/
22 1 0.0d0, 0.0d0, 1.0d0, 0.0d0, 1.41421356237309505d0 /
27 amagz = dble(float(magz+1))
28 fdnu = dble(float(idnu))
29 fnup = dmax1(amagz,fdnu)
35 rzi = -ptr*(zi+zi)*ptr
53 arg = (ap2+ap2)/(ap1*tol)
67 p2r = p1r - (t1r*ptr-t1i*pti)
68 p2i = p1i - (t1r*pti+t1i*ptr)
74 IF (ap1.LE.test)
GO TO 10
75 IF (itime.EQ.2)
GO TO 20
76 ak = xzabs(t1r,t1i)*0.5d0
77 flam = ak + dsqrt(ak*ak-1.0d0)
78 rho = dmin1(ap2/ap1,flam)
79 test = test1*dsqrt(rho/(rho*rho-1.0d0))
87 dfnu = fnu + dble(float(n-1))
98 p1r = (ptr*ttr-pti*tti) + p2r
99 p1i = (ptr*tti+pti*ttr) + p2i
104 IF (p1r.NE.czeror .OR. p1i.NE.czeroi)
GO TO 40
108 CALL zdiv(p2r, p2i, p1r, p1i, cyr(n), cyi(n))
117 ptr = cdfnur + (t1r*rzr-t1i*rzi) + cyr(k+1)
118 pti = cdfnui + (t1r*rzi+t1i*rzr) + cyi(k+1)
120 IF (ak.NE.czeror)
GO TO 50
127 cyi(k) = -rak*pti*rak
subroutine zdiv(AR, AI, BR, BI, CR, CI)
subroutine zrati(ZR, ZI, FNU, N, CYR, CYI, TOL)