8 common/slow0/ range,islow(10)
20 td2 = td2 + u0(k,ipair)*udot(k,ipair)
25 semi = -0.5d0*body(icm)/h(ipair)
26 zeta = 1.0 - r(ipair)/semi
27 psi = td2/sqrt(body(icm))
28 ecc = sqrt(zeta**2 + psi**2/semi)
31 IF (ecc.LT.0.0001) go to 30
35 IF (zeta.GT.0.0d0.AND.abs(q/semi).LT.0.1)
THEN
41 sn1 = q*sn1*float(2*it)/float(2*it + 1)
44 s = s + sn1*q*0.9d0/(1.0 - q)
45 dt = (r(ipair)*zeta - psi**2 + zeta*s*semi)*psi/
46 & (ecc**2*sqrt(body(icm)))
47 ELSE IF (semi.GT.0.0d0)
THEN
49 theta = atan2(abs(psi)/sqrt(semi),zeta)
51 dt = semi*sqrt(semi/body(icm))*(theta - abs(psi)/sqrt(semi))
52 ELSE IF (semi.LT.0.0d0)
THEN
53 a1 = psi/(ecc*sqrt(abs(semi)))
55 a2 = abs(a1) + sqrt(a1**2 + 1.0d0)
57 IF (a1.LT.0.0d0) theta = -theta
59 dt = a0*sqrt(a0/body(icm))*(abs(psi)/sqrt(a0) - theta)
66 IF (list(1,i1).GT.0.AND.itime.EQ.0.AND.dt.GT.step(i1))
THEN
69 zmod = float(islow(imod))
74 10
IF (dt.GT.step(i1))
THEN
75 time = time - step(i1)
78 z = -0.5d0*h(ipair)*dtau(ipair)**2
80 dtau(ipair) = -abs(dtau(ipair))
84 step(i1) = ((one6*tdot3(ipair)*dtu + 0.5*tdot2(ipair))*dtu
86 step(i1) = -zmod*step(i1)
88 IF (itime.LT.200) go to 10
92 dtu = dt/(r(ipair)*zmod)
96 20 y0 = dt - zmod*((one6*tdot3(ipair)*dtu +
97 & 0.5*tdot2(ipair))*dtu + r(ipair))*dtu
98 ypr = -((0.5*tdot3(ipair)*dtu + tdot2(ipair))*dtu + r(ipair))
101 dt1 = ((one6*tdot3(ipair)*dtu + 0.5*tdot2(ipair))*dtu +
105 IF (abs(dt - dt1).GT.1.0d-10*step(i1).AND.iter.LT.5) go to 20
112 z = -0.5d0*h(ipair)*dtau(ipair)**2
117 dtau(ipair) = abs(dtu0)
126 IF (zeta.GE.0.0)
THEN
127 xc = sqrt(0.5d0 + 0.5d0*zeta/ecc)
128 ys = psi/(ecc*xc*sqrt(body(icm)))
131 xc = 0.5*abs(psi)/(sqrt(semi)*ecc)/sqrt(0.5d0-0.5d0*zeta/ecc)
133 ys = 2.0*sqrt(semi/body(icm)*(0.5d0 - 0.5d0*zeta/ecc))
134 IF (psi.LT.0.0) ys = -ys
137 zz = body(icm)/(4.0*semi)
144 u(k,ipair) = u0(k,ipair)*xc - udot(k,ipair)*ys
145 udot(k,ipair) = u0(k,ipair)*ys*zz + udot(k,ipair)*xc
146 u0(k,ipair) = u(k,ipair)
147 r(ipair) = r(ipair) + u(k,ipair)**2
148 tdot2(ipair) = tdot2(ipair) + 2.0d0*u(k,ipair)*udot(k,ipair)
152 IF (tdot2(ipair).LT.0.0d0)
THEN
157 IF (abs(dt).LT.step(icm).AND.time.GT.0.0)
THEN