1 SUBROUTINE kspert(I1,NNB0,XI,VI,FP,FD)
8 common/chainc/ xc(3,ncmax),uc(3,ncmax),bodyc(ncmax),ich,
10 REAL*8 xi(6),vi(6),fp(6),fd(6),tf(3),td(3)
21 15
IF (list(nnb2,i1).LE.n) go to 20
23 IF (nnb2.GT.1) go to 15
33 rij2 = a1*a1 + a2*a2 + a3*a3
34 a6 = body(k)/(rij2*sqrt(rij2))
38 v1 = xdot(1,k) - vi(1)
39 v2 = xdot(2,k) - vi(2)
40 v3 = xdot(3,k) - vi(3)
41 a9 = 3.0d0*(a1*v1 + a2*v2 + a3*v3)/rij2
42 fd(1) = fd(1) + (v1 - a1*a9)*a6
43 fd(2) = fd(2) + (v2 - a2*a9)*a6
44 fd(3) = fd(3) + (v3 - a3*a9)*a6
50 rij2 = a1*a1 + a2*a2 + a3*a3
51 a6 = body(k)/(rij2*sqrt(rij2))
55 v1 = xdot(1,k) - vi(4)
56 v2 = xdot(2,k) - vi(5)
57 v3 = xdot(3,k) - vi(6)
58 a9 = 3.0d0*(a1*v1 + a2*v2 + a3*v3)/rij2
59 fd(4) = fd(4) + (v1 - a1*a9)*a6
60 fd(5) = fd(5) + (v2 - a2*a9)*a6
61 fd(6) = fd(6) + (v3 - a3*a9)*a6
66 IF (nnb2.GT.nnb0) go to 40
76 rij2 = a1*a1 + a2*a2 + a3*a3
79 IF (rij2.GT.cmsep2*r(j)**2)
THEN
80 v1 = xdot(1,k) - vi(1)
81 v2 = xdot(2,k) - vi(2)
82 v3 = xdot(3,k) - vi(3)
83 a9 = 3.0d0*(a1*v1 + a2*v2 + a3*v3)/rij2
91 32 a1 = x(1,k) - xi(1)
94 rij2 = a1*a1 + a2*a2 + a3*a3
95 v1 = xdot(1,k) - vi(1)
96 v2 = xdot(2,k) - vi(2)
97 v3 = xdot(3,k) - vi(3)
98 a9 = 3.0d0*(a1*v1 + a2*v2 + a3*v3)/rij2
99 33 a6 = body(k)/(rij2*sqrt(rij2))
100 fp(1) = fp(1) + a1*a6
101 fp(2) = fp(2) + a2*a6
102 fp(3) = fp(3) + a3*a6
103 fd(1) = fd(1) + (v1 - a1*a9)*a6
104 fd(2) = fd(2) + (v2 - a2*a9)*a6
105 fd(3) = fd(3) + (v3 - a3*a9)*a6
111 rij2 = a1*a1 + a2*a2 + a3*a3
112 a6 = body(k)/(rij2*sqrt(rij2))
113 fp(4) = fp(4) + a1*a6
114 fp(5) = fp(5) + a2*a6
115 fp(6) = fp(6) + a3*a6
116 v1 = xdot(1,k) - vi(4)
117 v2 = xdot(2,k) - vi(5)
118 v3 = xdot(3,k) - vi(6)
119 a9 = 3.0d0*(a1*v1 + a2*v2 + a3*v3)/rij2
120 fd(4) = fd(4) + (v1 - a1*a9)*a6
121 fd(5) = fd(5) + (v2 - a2*a9)*a6
122 fd(6) = fd(6) + (v3 - a3*a9)*a6
132 40
IF (nch.GT.0)
THEN
135 IF (j.GT.ich) go to 50
138 CALL
fchain(j1,1,xi(1),vi(1),fp(1),fd(1))
140 CALL
fchain(j1,1,xi(4),vi(4),fp(4),fd(4))
148 fp(k) = fp(k) - fp(k+3)
149 fd(k) = fd(k) - fd(k+3)
155 IF (kz(14).GT.0.AND.kz(14).LT.3)
THEN
165 fp(k) = fp(k) + tf(k)
166 fd(k) = fd(k) + td(k)
171 IF (kz(14).EQ.4.OR.kz(14).EQ.3)
THEN
177 rrdot = rrdot + (xi(k) - xi(k+3))*(vi(k) - vi(k+3))
183 xrel = xi(k) - xi(k+3)
184 vrel = vi(k) - vi(k+3)
185 fp(k) = fp(k) - xrel*fmp
186 fd(k) = fd(k) - (vrel - 3.0*rrdot*zf*xrel)*fmp