1 SUBROUTINE casyi(Z, FNU, KODE, N, Y, NZ, RL, TOL, ELIM, ALIM)
12 COMPLEX AK1, CK, CONE, CS1, CS2, CZ, CZERO, DK, EZ, P1, RZ, S2,
14 REAL AA, ACZ, AEZ, AK, ALIM, ARG, ARM, ATOL, AZ, BB, BK, DFNU,
15 * DNU2, ELIM, FDN, FNU, PI, RL, RTPI, RTR1, S, SGN, SQK, TOL, X,
17 INTEGER I, IB, IL, INU, J, JL, K, KODE, KODED, M, N, NN, NZ
19 DATA pi, rtpi /3.14159265358979324e0 , 0.159154943091895336e0 /
20 DATA czero, cone / (0.0e0,0.0e0), (1.0e0,0.0e0) /
25 arm = 1.0e+3*r1mach(1)
28 dfnu = fnu + float(n-il)
32 ak1 =
cmplx(rtpi,0.0e0)/z
35 IF (kode.EQ.2) cz = z -
cmplx(x,0.0e0)
37 IF (abs(acz).GT.elim)
GO TO 80
40 IF ((abs(acz).GT.alim) .AND. (n.GT.2))
GO TO 10
45 IF (dnu2.GT.rtr1) fdn = dnu2*dnu2
46 ez = z*
cmplx(8.0e0,0.0e0)
57 IF (yy.EQ.0.0e0)
GO TO 20
63 arg = (fnu-float(inu))*pi
67 IF (yy.LT.0.0e0) bk = -bk
69 IF (
mod(inu,2).EQ.1) p1 = -p1
83 ck = ck*
cmplx(sqk,0.0e0)/dk
86 cs1 = cs1 + ck*
cmplx(sgn,0.0e0)
92 IF (aa.LE.atol)
GO TO 40
97 IF (x+x.LT.elim) s2 = s2 + p1*cs2*cexp(-z-z)
98 fdn = fdn + 8.0e0*dfnu + 4.0e0
110 y(k) =
cmplx(ak+fnu,0.0e0)*rz*y(k+1) + y(k+2)
114 IF (koded.EQ.0)
RETURN
subroutine casyi(Z, FNU, KODE, N, Y, NZ, RL, TOL, ELIM, ALIM)
ColumnVector real(const ComplexColumnVector &a)