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
23 dimension yr(n), yi(n), wr(2), wi(2)
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
double precision function d1mach(i)
double precision function dgamln(Z, IERR)
double precision function xzabs(ZR, ZI)
subroutine xzlog(AR, AI, BR, BI, IERR)
subroutine zdiv(AR, AI, BR, BI, CR, CI)
subroutine zmlt(AR, AI, BR, BI, CR, CI)
subroutine zseri(ZR, ZI, FNU, KODE, N, YR, YI, NZ, TOL, ELIM, ALIM)
subroutine zuchk(YR, YI, NZ, ASCLE, TOL)