1 SUBROUTINE zseri(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL, ELIM,
17 DOUBLE PRECISION aa, acz, ak, ak1i, ak1r, alim, arm, ascle, atol,
18 * az, cki, ckr, coefi, coefr, conei, coner, crscr, czi, czr, dfnu,
19 * elim, fnu, fnup, hzi, hzr, raz, rs, rtr1, rzi, rzr, s, ss, sti,
20 *
str, s1i, s1r, s2i, s2r, tol, yi, yr,
wi, wr, zeroi, zeror, zi,
22 INTEGER i, ib, idum, iflag, il, k, kode, l, m, n,
nn, nz, nw
24 DATA zeror,zeroi,coner,conei / 0.0d0, 0.0d0, 1.0d0, 0.0d0 /
28 IF (az.EQ.0.0d0) go to 160
33 IF (az.LT.arm) go to 150
38 IF (az.LE.rtr1) go to 10
39 CALL
zmlt(hzr, hzi, hzr, hzi, czr, czi)
43 CALL
xzlog(hzr, hzi, ckr, cki, idum)
45 dfnu = fnu + dble(float(
nn-1))
54 IF (kode.EQ.2) ak1r = ak1r - zr
55 IF (ak1r.GT.(-elim)) go to 40
60 IF (acz.GT.dfnu) go to 190
65 IF (ak1r.GT.(-alim)) go to 50
72 IF (iflag.EQ.1) aa = aa*ss
78 dfnu = fnu + dble(float(
nn-i))
82 IF (acz.LT.tol*fnup) go to 70
90 str = ak1r*czr - ak1i*czi
91 sti = ak1r*czi + ak1i*czr
99 IF (aa.GT.atol) go to 60
101 s2r = s1r*coefr - s1i*coefi
102 s2i = s1r*coefi + s1i*coefr
105 IF (iflag.EQ.0) go to 80
106 CALL
zuchk(s2r, s2i, nw, ascle, tol)
107 IF (nw.NE.0) go to 30
112 IF (i.EQ.il) go to 90
113 CALL
zdiv(coefr, coefi, hzr, hzi,
str, sti)
125 IF (iflag.EQ.1) go to 120
129 yr(k) = (ak+fnu)*(rzr*yr(k+1)-rzi*yi(k+1)) + yr(k+2)
130 yi(k) = (ak+fnu)*(rzr*yi(k+1)+rzi*yr(k+1)) + yi(k+2)
150 s2r = s1r + (ak+fnu)*(rzr*ckr-rzi*cki)
151 s2i = s1i + (ak+fnu)*(rzr*cki+rzi*ckr)
160 IF (
xzabs(ckr,cki).GT.ascle) go to 140
169 IF (fnu.EQ.0.0d0) nz = nz - 1
173 IF (fnu.NE.0.0d0) go to 170