9 REAL*8 r2(nmx,nmx),rc(3),vc(3),xx(3,3),vv(3,3)
11 common/chreg/ timec,tmax,rmaxc,cm(10),namec(6),nstep1,kz27,kz30
12 common/cpert/ rgrav,gpert,ipert,npert
13 common/calls/ tpr,tkpr,step,ider,icall,nfn,nreg,iter,imcirc
14 common/ccoll2/ qk(nmx4),pk(nmx4),rij(nmx,nmx),
SIZE(nmx),vstar1,
15 & ecoll1,rcoll,qperi,istar(nmx),icoll,isync,ndiss1
16 common/clump/ bodys(nmx,5),t0s(5),ts(5),
steps(5),rmaxs(5),
17 & names(nmx,5),isys(5)
37 IF (j1.EQ.i1.OR.j1.EQ.i2) go to 2
39 IF (j2.EQ.i1.OR.j2.EQ.i2) go to 1
40 IF (r2(j1,j2).LT.rx1.AND.r2(j1,j2).GT.rx0)
THEN
52 IF (n.LE.3.AND.iend.EQ.0)
THEN
54 IF (iname(k).EQ.1) k1 = k
55 IF (iname(k).EQ.2) k2 = k
76 vrel2 = vrel2 + (v(j1) - v(j2))**2
77 vrel21 = vrel21 + (v(j3) - v(j4))**2
78 vrel23 = vrel23 + (v(l1) - v(l2))**2
79 rdot = rdot + (x(j1) - x(j2))*(v(j1) - v(j2))
80 rc(k) = (m(i1)*x(j1) + m(i2)*x(j2))/mb
81 vc(k) = (m(i1)*v(j1) + m(i2)*v(j2))/mb
82 rc2 = rc2 + (rc(k) - x(j3))**2
83 vc2 = vc2 + (vc(k) - v(j3))**2
84 rcdot = rcdot + (rc(k) - x(j3))*(vc(k) - v(j3))
98 semi = 2.0d0/rb - vrel2/mb
100 ecc = sqrt((1.0d0 - rb/semi)**2 + rdot**2/(semi*mb))
101 eb = -m(i1)*m(i2)/(2.0d0*semi)
102 et = -m(i1)*m(i2)/(2.0d0*semi*cm(8))
106 a1 = 2.0/rcp - vc2/(mb + m(i3))
108 ecc1 = sqrt((1.0 - rcp/a1)**2 + rcdot**2/(a1*(mb + m(i3))))
109 pmin = a1*(1.0 - ecc1)
112 semi2 = 2.0d0/sqrt(r2(k1,k2)) - vrel23/(m(k1) + m(k2))
114 eb2 = -m(k1)*m(k2)/(2.0d0*semi2)
119 semi1 = 2.0d0/rb1 - vrel21/mb1
121 eb1 = -m(i3)*m(i4)/(2.0d0*semi1)
125 IF (timec.LE.0.0d0) eb1 = 0.0
129 rmax = max(sqrt(r2(i1,i3)),sqrt(r2(i2,i4)))
130 rmaxc = max(rmaxc,1.2*rmax)
142 IF (eb2.LT.eb) a0 = semi2
152 ELSE IF (iend.EQ.1)
THEN
153 de = de + abs(
energy - e0)
156 IF (eb10.EQ.0.0d0) eb10 = eb1
175 IF (n.GT.4) rm = max(r13,r24)
176 gb = 2.0*mb1/mb*(rb/rm)**3
177 IF (eb1.LT.0.0) gb = gb*m(im)/mb1
178 g4 = 2.0*m(imax)/(mb + m(im))*(rm/rmax)**3
180 gb = m(i3)/mb*(rb/r13)**3
187 cm(9) = eb + eb1 - cm(9) + ecoll1
192 de = de + abs(
energy - e0)
195 IF (name1 + name2.NE.namec(i1) + namec(i2).AND.eb.LT.0.0)
THEN
197 tch = t0s(isub) + timec
198 WRITE (6,15) tch, name1, name2, namec(i1), namec(i2), ecc0,
199 & ecc, a0, semi, eb0, eb
200 15
FORMAT (
' EXCHANGE T NAM E0 E A0 A EB0 EB ',
201 & f9.2,4i6,2f7.3,1p,2e9.1,2e10.1)
205 IF (db.GT.0.1.AND.semi.GT.0.0)
THEN
207 e1 = (
energy - eb - eb1)/eb0
210 WRITE (6,20) namec(i1), namec(i2), semi, ecc, eb, gb, g4,
212 20
FORMAT (
' CHAIN RECOIL',
' NAM =',2i6,
' A =',1p,e8.1,
213 &
' E =',0p,f5.2,
' EB =',f5.2,
' GB =',1p,e8.1,
214 &
' G4 =',e8.1,
' EB1 =',0p,f5.2,
' E1 =',f5.2,
215 &
' ET =',f6.3,
' DB =',f5.1)
219 IF (iend.EQ.2.AND.pmin.LT.2.0*semi.AND.db.GT.0.1)
THEN
220 CALL
inclin(xx,vv,rc,vc,alpha)
221 WRITE (6,25) namec(i3), ecc, ecc1, pmin/semi, rcdot/rcp,
222 & semi, a1, rcp, gb, 180.0*alpha/3.14
223 25
FORMAT (
' RECOIL: NAM E E1 PM/A RD A A1 RP GB IN ',
224 & i6,f8.4,f6.2,f5.1,f6.1,1p,4e10.2,0p,f7.1)
228 IF (kz30.GT.1.AND.iend.EQ.2)
THEN
229 tcr = mass**2.5/abs(2.0d0*
energy)**1.5
232 WRITE (6,30) i1, i2, i3, i4, rb, r13, r24, de, tc, nstep1,
233 & nreg, npert, db, ec
234 30
FORMAT (/,
' END CHAIN ',4i3,
' RB =',1pe8.1,
' R13 =',e8.1,
235 &
' R24 =',e8.1,
' DE =',e8.1,
' TC =',0p,f5.1,
' #',
236 & i5,i4,i3,
' DB =',f5.2,
' EC =',f6.3)