1 SUBROUTINE zuoik(ZR, ZI, FNU, KODE, IKFLG, N, YR, YI, NUF, TOL,
30 DOUBLE PRECISION AARG, AIC, ALIM, APHI, ARGI, ARGR, ASUMI, ASUMR,
31 * ascle, ax, ay, bsumi, bsumr, cwrki, cwrkr, czi, czr, elim, fnn,
32 * fnu, gnn, gnu, phii, phir, rcz,
str, sti, sumi, sumr, tol, yi,
33 * yr, zbi, zbr, zeroi, zeror, zeta1i, zeta1r, zeta2i, zeta2r, zi,
34 * zni, znr, zr, zri, zrr,
d1mach, xzabs
35 INTEGER I, IDUM, IFORM, IKFLG, INIT, KODE, N, NN, NUF, NW
36 dimension yr(n), yi(n), cwrkr(16), cwrki(16)
37 DATA zeror,zeroi / 0.0d0, 0.0d0 /
38 DATA aic / 1.265512123484645396
d+00 /
43 IF (zr.GE.0.0d0) go to 10
49 ax = dabs(zr)*1.7321d0
52 IF (ay.GT.ax) iform = 2
53 gnu = dmax1(fnu,1.0d0)
54 IF (ikflg.EQ.1) go to 20
56 gnn = fnu + fnn - 1.0d0
64 IF (iform.EQ.2) go to 30
66 CALL
zunik(zrr, zri, gnu, ikflg, 1, tol, init, phir, phii,
67 * zeta1r, zeta1i, zeta2r, zeta2i, sumr, sumi, cwrkr, cwrki)
68 czr = -zeta1r + zeta2r
69 czi = -zeta1i + zeta2i
74 IF (zi.GT.0.0d0) go to 40
77 CALL
zunhj(znr, zni, gnu, 1, tol, phir, phii, argr, argi, zeta1r,
78 * zeta1i, zeta2r, zeta2i, asumr, asumi, bsumr, bsumi)
79 czr = -zeta1r + zeta2r
80 czi = -zeta1i + zeta2i
81 aarg = xzabs(argr,argi)
83 IF (kode.EQ.1) go to 60
87 IF (ikflg.EQ.1) go to 70
91 aphi = xzabs(phir,phii)
96 IF (rcz.GT.elim) go to 210
97 IF (rcz.LT.alim) go to 80
98 rcz = rcz + dlog(aphi)
99 IF (iform.EQ.2) rcz = rcz - 0.25d0*dlog(aarg) - aic
100 IF (rcz.GT.elim) go to 210
106 IF (rcz.LT.(-elim)) go to 90
107 IF (rcz.GT.(-alim)) go to 130
108 rcz = rcz + dlog(aphi)
109 IF (iform.EQ.2) rcz = rcz - 0.25d0*dlog(aarg) - aic
110 IF (rcz.GT.(-elim)) go to 110
120 CALL
xzlog(phir, phii,
str, sti, idum)
123 IF (iform.EQ.1) go to 120
124 CALL
xzlog(argr, argi,
str, sti, idum)
125 czr = czr - 0.25d0*
str - aic
126 czi = czi - 0.25d0*sti
132 CALL
zuchk(czr, czi, nw, ascle, tol)
133 IF (nw.NE.0) go to 90
135 IF (ikflg.EQ.2)
RETURN
141 gnu = fnu + dble(float(nn-1))
142 IF (iform.EQ.2) go to 150
144 CALL
zunik(zrr, zri, gnu, ikflg, 1, tol, init, phir, phii,
145 * zeta1r, zeta1i, zeta2r, zeta2i, sumr, sumi, cwrkr, cwrki)
146 czr = -zeta1r + zeta2r
147 czi = -zeta1i + zeta2i
150 CALL
zunhj(znr, zni, gnu, 1, tol, phir, phii, argr, argi, zeta1r,
151 * zeta1i, zeta2r, zeta2i, asumr, asumi, bsumr, bsumi)
152 czr = -zeta1r + zeta2r
153 czi = -zeta1i + zeta2i
154 aarg = xzabs(argr,argi)
156 IF (kode.EQ.1) go to 170
160 aphi = xzabs(phir,phii)
162 IF (rcz.LT.(-elim)) go to 180
163 IF (rcz.GT.(-alim))
RETURN
164 rcz = rcz + dlog(aphi)
165 IF (iform.EQ.2) rcz = rcz - 0.25d0*dlog(aarg) - aic
166 IF (rcz.GT.(-elim)) go to 190
176 CALL
xzlog(phir, phii,
str, sti, idum)
179 IF (iform.EQ.1) go to 200
180 CALL
xzlog(argr, argi,
str, sti, idum)
181 czr = czr - 0.25d0*
str - aic
182 czi = czi - 0.25d0*sti
188 CALL
zuchk(czr, czi, nw, ascle, tol)
189 IF (nw.NE.0) go to 180
std::string str(char sep= 'x') const
subroutine xzlog(AR, AI, BR, BI, IERR)
std::string dimension(void) const
subroutine zuoik(ZR, ZI, FNU, KODE, IKFLG, N, YR, YI, NUF, TOL, ELIM, ALIM)
double precision function d1mach(i)
F77_RET_T const double const double double * d
subroutine zunhj(ZR, ZI, FNU, IPMTR, TOL, PHIR, PHII, ARGR, ARGI, ZETA1R, ZETA1I, ZETA2R, ZETA2I, ASUMR, ASUMI, BSUMR, BSUMI)
subroutine zunik(ZRR, ZRI, FNU, IKFLG, IPMTR, TOL, INIT, PHIR, PHII, ZETA1R, ZETA1I, ZETA2R, ZETA2I, SUMR, SUMI, CWRKR, CWRKI)
subroutine zuchk(YR, YI, NZ, ASCLE, TOL)