30 3 IADLL ,LLL ,COMNTAG,NN ,NC )
34#include "implicit_f.inc"
44 INTEGER LLL(*),IADLL(*),NPBYL(NNPBY,*),LPBYL(*),COMNTAG(*)
47 . rbyl(nrby,*),x(3,*),v(3,*),vr(3,*),a(3,*),ar(3,*),
52 INTEGER I, J, N, NS, MSL, MSL2, IFX, IFR, NFIX, NFRE
53 my_real XX,YY,ZZ,XY,YZ,XZ,IXX,IYY,IZZ,IXY,IXZ,IYZ,
54 . jxx,jyy,jzz,jxy,jxz,jyz,jxy2,jxz2,jyz2,det,
55 . b1,b2,b3,c1,c2,c3,vx1,vx2,vx3,mmas,usdt,ddt,
56 . vg(3),ag(3),xm(3),vtm(3),vrm(3),atm(3),arm(3)
66 IF (comntag(ns)==1)
THEN
76 IF (comntag(ns)==1)
THEN
107 mmas = mmas + mass(n)
109 xm(j)= xm(j) + x(j,n)*mass(n)
110 vtm(j)=vtm(j) + v(j,n)*mass(n)
111 atm(j)=atm(j) + a(j,n)*mass(n)
116 vtm(j) = vtm(j) / mmas
117 atm(j) = atm(j) / mmas
130 ag(1)=ag(1) + ar(1,n)*iner(n)+mass(n)*(yy*a(3,n)-zz*a(2,n))
131 ag(2)=ag(2) + ar(2,n)*iner(n)+mass(n)*(zz*a(1,n)-xx*a(3,n))
132 ag(3)=ag(3) + ar(3,n)*iner(n)+mass(n)*(xx*a(2,n)-yy*a(1,n))
141 ixx = iner(n)+(yy+zz)*mass(n)
142 iyy = iner(n)+(xx+zz)*mass(n)
143 izz = iner(n)+(xx+yy)*mass(n)
158 det = jxx*jyy*jzz-jxx*jyz2-jyy*jxz2-jzz*jxy2-two*jxy*jyz*jxz
160 b1 = det*(jzz*jyy-jyz2)
161 b2 = det*(jxx*jzz-jxz2)
162 b3 = det*(jyy*jxx-jxy2)
163 c1 = det*(jxx*jyz+jxz*jxy)
164 c2 = det*(jyy*jxz+jxy*jyz)
165 c3 = det*(jzz*jxy+jyz*jxz)
171 vg(1) = vrm(1)*jxx + vrm(2)*jxy + vrm(3)*jxz
172 vg(2) = vrm(1)*jxy + vrm(2)*jyy + vrm(3)*jyz
173 vg(3) = vrm(1)*jxz + vrm(2)*jyz + vrm(3)*jzz
180 ag(1) = ag(1) - vrm(2)*vg(3) + vrm(3)*vg(2)
181 ag(2) = ag(2) - vrm(3)*vg(1) + vrm(1)*vg(3)
182 ag(3) = ag(3) - vrm(1)*vg(2) + vrm(2)*vg(1)
184 arm(1)= ag(1)*b1 + ag(2)*c3 + ag(3)*c2
185 arm(2)= ag(1)*c3 + ag(2)*b2 + ag(3)*c1
186 arm(3)= ag(1)*c2 + ag(2)*c1 + ag(3)*b3
193 vrm(j) = vrm(j) + arm(j)*dt12
198 ar(j,ns) = (vrm(j)-vr(j,ns)) * usdt
203 vx1 = vrm(2)*zz - vrm(3)*yy
204 vx2 = vrm(3)*xx - vrm(1)*zz
205 vx3 = vrm(1)*yy - vrm(2)*xx
206 a(1,ns) = atm(1) + usdt*
207 . (vtm(1)-v(1,ns)+vx1+ddt*(vrm(2)*vx3-vrm(3)*vx2))
208 a(2,ns) = atm(2) + usdt*
209 . (vtm(2)-v(2,ns)+vx2+ddt*(vrm(3)*vx1-vrm(1)*vx3))
210 a(3,ns) = atm(3) + usdt*
211 . (vtm(3)-v(3,ns)+vx3+ddt*(vrm(1)*vx2-vrm(2)*vx1))
220 rbyl(10,nn) = mass(ifx)
221 rbyl(14,nn) = v(1,ifx)
222 rbyl(15,nn) = v(2,ifx)
223 rbyl(16,nn) = v(3,ifx)
224 rbyl(17,nn) = vr(1,ifx)
225 rbyl(18,nn) = vr(2,ifx)
226 rbyl(19,nn) = vr(3,ifx)
227 rbyl(20,nn) = a(1,ifx)
228 rbyl(21,nn) = a(2,ifx)
229 rbyl(22,nn) = a(3,ifx)
230 rbyl(23,nn) = ar(1,ifx)
231 rbyl(24,nn) = ar(2,ifx)
232 rbyl(25,nn) = ar(3,ifx)
278 2 IADLL ,LLL ,JLL ,XLL ,LAMBDA ,
279 3 MASS ,INER ,RBYL ,NPBYL ,LPBYL ,
288#include "implicit_f.inc"
292#include "param_c.inc"
293#include "lagmult.inc"
294#include "com08_c.inc"
301 INTEGER IADLL(*),LLL(*),JLL(*),NPBYL(NNPBY,*),LPBYL(*)
304 . RBYL(NRBY,*),XLL(*),X(3,*),V(3,*),VR(3,*),A(3,*),AR(3,*),
305 . mass(*),iner(*),lambda(*)
309 INTEGER I, J, K, IC, IK, IR, IFX, N, NS, NFIX, NFRE, MSL, TNSL
311 . XX,YY,ZZ,VX1,VX2,VX3,USDT,DDT,XM(3),VTM(3),VRM(3),ATM(3),(3)
322 IF (nfix>0.AND.nfre>0)
THEN
326 DO ik=iadll(ic),iadll(ic+1)-1
329 xll(ik) = xll(ik)*lambda(ic)
332 CALL ancmsg(msgid=117,anmode=aninfo,
337 ar(j,i) = ar(j,i) - xll(ik)/iner(i)
338 ELSEIF (xll(ik)/=0.)
THEN
340 ar(1,ifx) = ar(1,ifx) - xll(ik)*rbyl(1,ir)
341 ar(2,ifx) = ar(2,ifx) - xll(ik)*rbyl(6,ir)
342 ar(3,ifx) = ar(3,ifx) - xll(ik)*rbyl(5,ir)
344 ar(1,ifx) = ar(1,ifx) - xll(ik)*rbyl(6,ir)
345 ar(2,ifx) = ar(2,ifx) - xll(ik)*rbyl(2,ir)
346 ar(3,ifx) = ar(3,ifx) - xll(ik)*rbyl(4,ir)
348 ar(1,ifx) = ar(1,ifx) - xll(ik)*rbyl(5,ir)
349 ar(2,ifx) = ar(2,ifx) - xll(ik)*rbyl(4,ir)
350 ar(3,ifx) = ar(3,ifx) - xll(ik)*rbyl(3,ir)
356 mass(ifx) = rbyl(10,ir)
362 xm(j) = rbyl(10+j,ir)
363 v(j,ifx) = rbyl(13+j,ir)
364 vr(j,ifx) = rbyl(16+j,ir)
365 a(j,ifx) = rbyl(19+j,ir)
366 ar(j,ifx) = rbyl(22+j,ir)
370 vrm(j) = vrm(j) + arm(j)*dt12
375 ar(j,ns) = (vrm(j)-vr(j,ns)) * usdt
381 vx1 = vrm(2)*zz - vrm(3)*yy
382 vx2 = vrm(3)*xx - vrm(1)*zz
383 vx3 = vrm(1)*yy - vrm(2)*xx
389 a(1,ns) = atm(1) + usdt*
390 . (vtm(1)-v(1,ns)+vx1+ddt*(vrm(2)*vx3-vrm(3)*vx2))
391 a(2,ns) = atm(2) + usdt*
392 . (vtm(2)-v(2,ns)+vx2+ddt*(vrm(3)*vx1-vrm(1)*vx3))
393 a(3,ns) = atm(3) + usdt*
394 . (vtm(3)-v(3,ns)+vx3+ddt*(vrm(1)*vx2-vrm(2)*vx1))
subroutine rby_decond(x, v, vr, a, ar, iadll, lll, jll, xll, lambda, mass, iner, rbyl, npbyl, lpbyl, nc, ncr)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)