8 common/slow0/ range,islow(10)
9 REAL*8 a1(3,4),a(8),fp(4),fpdot(3),ui(4),uidot(4)
10 REAL*8 b2(3,4),u2(4),q2(4)
18 semi = -0.5*body(i)/h(ipair)
46 rij2 = (x(1,j) - x(1,i))**2 + (x(2,j) - x(2,i))**2 +
47 & (x(3,j) - x(3,i))**2
49 IF (rij2.LT.cmsep2*r(k)**2.AND.list(1,2*k-1).GT.0)
THEN
59 a(k) = x(k,j) - x(k,ii)
60 a(k+3) = xdot(k,j) - xdot(k,ii)
63 rij2 = a(1)*a(1) + a(2)*a(2) + a(3)*a(3)
64 a8 = body(j)/(rij2*sqrt(rij2))
65 a9 = 3.0d0*(a(1)*a(4) + a(2)*a(5) + a(3)*a(6))/rij2
66 IF (kcomp.EQ.2) a8 = -a8
69 fp(k) = fp(k) + a(k)*a8
70 fpdot(k) = fpdot(k) + (a(k+3) - a(k)*a9)*a8
82 IF (kz(14).GT.0.AND.kz(14).LT.3)
THEN
83 q1 = x(1,i1) - x(1,i2)
84 q3 = x(3,i1) - x(3,i2)
88 vx = xdot(1,i1) - xdot(1,i2)
89 vz = xdot(3,i1) - xdot(3,i2)
95 fpdot(k) = r(ipair)*fpdot(k)
99 fp(4) = sqrt(fp(1)**2 + fp(2)**2 + fp(3)**2)
100 gamma(ipair) = fp(4)*r(ipair)**2/body(i)
105 uidot(k) = udot(k,ipair)
122 zmod = float(islow(imod))
125 fpdot(k) = zmod*fpdot(k)
131 a(k) = a1(1,k)*fp(1) + a1(2,k)*fp(2) + a1(3,k)*fp(3)
132 a(k+4) = a1(1,k)*fpdot(1) + a1(2,k)*fpdot(2) +
134 fu(k,ipair) = 0.5d0*h(ipair)*u(k,ipair) + 0.5d0*r(ipair)*a(k)
135 tdot2(ipair) = tdot2(ipair) + 2.0d0*u(k,ipair)*udot(k,ipair)
136 tdot3(ipair) = tdot3(ipair) + 2.0d0*udot(k,ipair)**2 +
137 & 2.0d0*u(k,ipair)*fu(k,ipair)
138 hdot(ipair) = hdot(ipair) + 2.0d0*udot(k,ipair)*a(k)
139 hdot2(ipair) = hdot2(ipair) + 2.0d0*fu(k,ipair)*a(k)
140 fp0(k,ipair) = 0.5d0*r(ipair)*a(k)
149 a(k+4) = a(k+4) + a1(1,k)*fp(1) + a1(2,k)*fp(2) +
151 hdot2(ipair) = hdot2(ipair) + 2.0d0*udot(k,ipair)*a(k+4)
152 fudot(k,ipair) = 0.5d0*(h(ipair)*udot(k,ipair) +
153 & hdot(ipair)*u(k,ipair) +
154 & tdot2(ipair)*a(k) + r(ipair)*a(k+4))
155 hdot3(ipair) = hdot3(ipair) + 2.0*fudot(k,ipair)*a(k) +
156 & 4.0*fu(k,ipair)*a(k+4)
157 tdot4 = tdot4 + 2.0*fudot(k,ipair)*u(k,ipair) +
158 & 6.0*fu(k,ipair)*udot(k,ipair)
159 fd0(k,ipair) = 0.5d0*(tdot2(ipair)*a(k) + r(ipair)*a(k+4) +
160 & hdot(ipair)*u(k,ipair))
166 q2(k) = b2(1,k)*fp(1) + b2(2,k)*fp(2) + b2(3,k)*fp(3) +
167 & 2.0*(a1(1,k)*fpdot(1) + a1(2,k)*fpdot(2) +
169 hdot3(ipair) = hdot3(ipair) + 2.0*udot(k,ipair)*q2(k)
174 fudot2(k,ipair) = 0.5*(h(ipair)*fu(k,ipair) +
175 & hdot2(ipair)*u(k,ipair) + tdot3(ipair)*a(k)) +
176 & tdot2(ipair)*a(k+4) + hdot(ipair)*udot(k,ipair)
177 fudot3(k,ipair) = 0.5*(h(ipair)*fudot(k,ipair) + tdot4*a(k) +
178 & hdot3(ipair)*u(k,ipair)) +
179 & 1.5*(hdot(ipair)*fu(k,ipair) +
180 & hdot2(ipair)*udot(k,ipair) +
181 & tdot3(ipair)*a(k+4))
182 fudot2(k,ipair) = fudot2(k,ipair) + 0.5*r(ipair)*q2(k)
183 fudot3(k,ipair) = fudot3(k,ipair) + 1.5*tdot2(ipair)*q2(k)
184 hdot3(ipair) = hdot3(ipair) + 2.0*udot(k,ipair)*q2(k)
185 hdot4(ipair) = hdot4(ipair) + 2.0*fudot2(k,ipair)*a(k) +
186 & 6.0*(fudot(k,ipair)*a(k+4) + fu(k,ipair)*q2(k))
187 tdot5 = tdot5 + 2.0*fudot2(k,ipair)*u(k,ipair) +
188 & 8.0*fudot(k,ipair)*udot(k,ipair) + 6.0*fu(k,ipair)**2
189 tdot6 = tdot6 + 2.0*fudot3(k,ipair)*u(k,ipair) +
190 & 10.0*fudot2(k,ipair)*udot(k,ipair) +
191 & 20.0*fudot(k,ipair)*fu(k,ipair)
195 IF (abs(h(ipair)).GT.eclose)
THEN
196 a2 = 0.5/abs(h(ipair))
198 a2 = min(r(ipair)/body(i),0.5/abs(h(ipair)))
203 IF (imod.GT.1.OR.h(ipair).GT.0.0) fac = 1.0
204 dtu = fac*etau*sqrt(a2)/(1.0 + 1000.0*gamma(ipair))**0.333
207 IF (imod.EQ.1.AND.hdot2(ipair).NE.0.0d0)
THEN
208 dh = 1.0e-03*max(abs(h(ipair)),eclose)
209 xf = 2.0*dh/abs(hdot2(ipair))
210 yf = hdot(ipair)/hdot2(ipair)
211 dtu1 = sqrt(xf + yf**2) - abs(yf)
219 IF (list(1,i1).EQ.0.AND.semi.GT.0.0)
THEN
220 tk = twopi*semi*sqrt(semi/body(i))
221 step(i1) = min(tk,step(i))
226 75 z = -0.5d0*h(ipair)*dtu**2
233 step(i1) = ((((s6 + tdot5*dtu*z5/120.0d0 + tdot4/24.0d0)*dtu +
234 & tdot3(ipair)*one6)*dtu + 0.5d0*tdot2(ipair))*dtu +
238 IF (step(i1).GT.step(i).AND.h(ipair).LT.0.0)
THEN
247 step(i1) = zmod*step(i1)
252 fu(k,ipair) = 0.5d0*fu(k,ipair)
253 fudot(k,ipair) = one6*fudot(k,ipair)