Nbody6
 All Files Functions Variables
escape.f
Go to the documentation of this file.
1  SUBROUTINE escape
2 *
3 *
4 * Escaper removal.
5 * ----------------
6 *
7  include 'common6.h'
8  common/binary/ cm(4,mmax),xrel(3,mmax),vrel(3,mmax),
9  & hm(mmax),um(4,mmax),umdot(4,mmax),tmdis(mmax),
10  & namem(mmax),nameg(mmax),kstarm(mmax),iflag(mmax)
11  COMMON /echain/ ech
12  CHARACTER*11 which1
13  LOGICAL first
14  SAVE first
15  DATA first /.true./
16 *
17 *
18 * Adopt twice the tidal radius as escape condition.
19  resc2 = 4.0*rtide**2
20  rtide2 = rtide**2
21  ncorr = 0
22  ncrit1 = 0
23  i3hi = 0
24  DO 1 k = 1,3
25  cmr(k) = 0.0d0
26  cmrdot(k) = 0.0d0
27  1 CONTINUE
28 *
29 * Set the distance (squared) with respect to the density centre.
30  i = ifirst
31  5 ri2 = (x(1,i) - rdens(1))**2 + (x(2,i) - rdens(2))**2 +
32  & (x(3,i) - rdens(3))**2
33  IF (ri2.LT.rtide2) ncrit1 = ncrit1 + 1
34  vi2 = xdot(1,i)**2 + xdot(2,i)**2 + xdot(3,i)**2
35 *
36 * See whether escape is indicated (retain merger ghost particles).
37  IF (ri2.GT.resc2.AND.ri2.LT.1.0d+10) THEN
38  rjmin2 = 1.0d+10
39 * Find distance to the nearest neighbour and calculate potential.
40  poti = 0.0d0
41  DO 8 j = ifirst,ntot
42  IF (j.EQ.i) go to 8
43  rij2 = (x(1,i) - x(1,j))**2 + (x(2,i) - x(2,j))**2 +
44  & (x(3,i) - x(3,j))**2
45  poti = poti + body(j)/sqrt(rij2)
46  IF (rij2.LT.rjmin2) THEN
47  rjmin2 = rij2
48  jmin = j
49  END IF
50  8 CONTINUE
51 * Check escape criterion for external fields or isolated system.
52  ei = 0.5*vi2 - poti
53  IF (kz(14).EQ.4.OR.kz(14).EQ.3) THEN
54  ei = ei - mp/sqrt(ri2 + ap2)
55  IF (body(i).EQ.0.0d0) go to 30
56  END IF
57  IF ((kz(14).GT.0.AND.kz(14).NE.4).OR.ei.GT.0.0) go to 30
58  END IF
59 *
60  10 i = i + 1
61  12 IF (n.EQ.2) go to 13
62 *
63  IF (i.LE.ntot) go to 5
64  IF (ncorr.EQ.0) go to 25
65 *
66 * Form centre of mass terms.
67  13 DO 15 i = 1,n
68  DO 14 k = 1,3
69  cmr(k) = cmr(k) + body(i)*x(k,i)/zmass
70  cmrdot(k) = cmrdot(k) + body(i)*xdot(k,i)/zmass
71  14 CONTINUE
72  15 CONTINUE
73  cmr(4) = sqrt(cmr(1)**2 + cmr(2)**2 + cmr(3)**2)
74 *
75  stepi = min(stepi,1.0d0)
76  jlast = min(ncorr,nmax)
77  WRITE (6,18) n, nsesc, nbesc, zmass, be(3), cmr(4), resc, stepi,
78  & rsi, zmass/float(n), ncrit1, (jlist(j),j=1,jlast)
79  18 FORMAT (/,' ESCAPE N =',2i6,i4,f8.4,f12.6,2f7.2,f7.3,f7.2,f9.5,
80  & i6,2x,6i6,/,5(6x,20i6,/))
81 *
82 * IF (KZ(23).EQ.2.AND.KZ(14).EQ.1) THEN
83 * JLAST = MIN(2*NCORR,LMAX)
84 * WRITE (6,20) (ILIST(J),J=1,JLAST)
85 * 20 FORMAT (/,' ESCAPE ANGLES ',11(2I4,2X),9(/,15X,11(2I4,2X)))
86 * END IF
87 *
88 * Check updating of global index for chain c.m.
89  IF (nch.GT.0) THEN
90  CALL chfind
91  END IF
92 *
93 * Set phase indicator < 0 for new time-step list in INTGRT.
94  iphase = -1
95 *
96  25 RETURN
97 *
98  30 a2 = (x(1,jmin) - rdens(1))**2 + (x(2,jmin) - rdens(2))**2 +
99  & (x(3,jmin) - rdens(3))**2
100 * See whether nearest body satisfies escape condition or RIJ > 10*RMIN.
101  IF (a2.GT.resc2.AND.kz(14).GT.0) go to 40
102  IF (rjmin2.GT.100.0*rmin2) go to 40
103  a3 = xdot(1,jmin)**2 + xdot(2,jmin)**2 + xdot(3,jmin)**2
104  a4 = (xdot(1,i) - xdot(1,jmin))**2 +
105  & (xdot(2,i) - xdot(2,jmin))**2 +
106  & (xdot(3,i) - xdot(3,jmin))**2
107  a5 = (body(i) + body(jmin))/sqrt(rjmin2)
108 * Check velocity of binary component in case of bound pair.
109  a6 = 2.0*a5/a4
110  IF (a6.GT.1.0.AND.a3.GT.2.0*zmass/sqrt(a2)) go to 40
111 * Retain escaper if dynamical effect on neighbour is significant.
112  IF (a6.GT.0.01) go to 10
113 *
114 * Form optional output diagnostics.
115  40 x1 = x(1,i) - rdens(1)
116  y1 = x(2,i) - rdens(2)
117  z1 = x(3,i) - rdens(3)
118  a3 = abs(y1/x1)
119  a4 = abs(z1)/sqrt(x1**2 + y1**2)
120  ilist(2*ncorr+1) = datan(a3)*180.0/3.14159
121  ilist(2*ncorr+2) = datan(a4)*180.0/3.14159
122 * Escape angles with respect to the X-axis and XY-plane.
123  resc = sqrt(ri2)
124  stepi = step(i)
125  rsi = rs(i)
126 *
127 * Accumulate escaper names and save current name in case I > N.
128  ncorr = ncorr + 1
129  jlist(ncorr) = name(i)
130  namei = name(i)
131  kstari = kstar(i)
132 * Include termination for escaping chain c.m. system (mainly NBODY7).
133  IF (name(i).EQ.0) THEN
134  nsub = max(nsub - 1,0)
135  nch = 0
136  WRITE (6,42) ech, ei
137  42 FORMAT (' CHAIN ESCAPE!!!!! ECH EI ',2f10.6)
138  ecoll = ecoll + ech
139  ech = 0.0
140  END IF
141  IF (name(i).LT.0) kstari = kstari + 30
142  IF (body(i).LE.0.0d0) go to 50
143 *
144 * Check initialization of tidal tail integration for 3D model.
145  IF (kz(23).GE.3.AND.kz(14).EQ.3) THEN
146  CALL tail0(i)
147  END IF
148 *
149 * Obtain binding energy of body #I and update optional tidal radius.
150  zk = 0.5d0*body(i)*vi2
151  IF (kz(14).GT.0.AND.kz(14).LT.3) THEN
152  CALL xtrnlv(i,i)
153  zk = zk + ht
154  rtide = (zmass/tidal(1))**0.3333
155  ELSE IF (kz(14).EQ.4.OR.kz(14).EQ.3) THEN
156  rtide = rtide0*zmass**0.3333
157  END IF
158  ei = zk - body(i)*poti
159 *
160 * Correct total energy (also ZKIN & POT for consistency).
161  be(3) = be(3) - ei
162  zkin = zkin - zk
163  pot = pot - body(i)*poti
164 *
165 * Update total mass and save energy & number of single escapers.
166  IF (i.LE.n) THEN
167  zmass = zmass - body(i)
168  e(4) = e(4) + ei
169  npop(4) = npop(4) + 1
170  nsesc = nsesc + 1
171  ELSE
172  ipair = i - n
173  END IF
174  esesc = esesc + ei
175 *
176 * Include optional escape output on unit 11.
177  IF (kz(23).GT.1) THEN
178  IF (first) THEN
179  OPEN (unit=11,status='NEW',form='FORMATTED',file='ESC')
180  first = .false.
181  END IF
182  tesc = tscale*ttot
183  eesc = ei/body(i)
184  vb2 = 2.0*zkin/zmass
185 * Distinguish between tidal field and isolated system (ECRIT at RTIDE).
186  IF (kz(14).GT.0.AND.kz(14).LE.2) THEN
187  ecrit = -1.5*(tidal(1)*zmass**2)**0.3333
188  eesc = 2.0*(eesc - ecrit)/vb2
189  eesc = min(eesc,999.0d0)
190  besc = zmbar*body(i)
191  ELSE
192  eesc = 2.0*eesc/vb2
193  besc = body(i)/bodym
194  END IF
195  vkm = sqrt(vi2)*vstar
196  WRITE (11,45) tesc, besc, eesc, vkm, kstari, name(i)
197  45 FORMAT (f8.1,3f6.1,i4,i7)
198  CALL flush(11)
199  END IF
200 *
201 * Reduce particle number & total membership and check NNBMAX.
202  50 n = n - 1
203  ntot = ntot - 1
204  nnbmax = min((n - npairs)/2,nnbmax)
205  znbmax = 0.9*nnbmax
206  znbmin = max(0.2*nnbmax,1.0)
207 * Set indicator for removal of c.m. or KS components.
208  kcase = 1
209 *
210 * Remove any circularized KS binary from the CHAOS/SYNCH table.
211  IF (i.GT.n + 1.AND.kstar(i).GE.10) THEN
212  ii = -(n + 1 + ipair)
213  CALL spiral(ii)
214  END IF
215 *
216 * Update COMMON arrays to remove the escaper and correct F & FDOT.
217  CALL remove(i,1)
218 *
219 * Delete escaper from neighbour lists and reduce higher locations.
220  60 DO 150 j = 1,ntot
221  nnb = list(1,j)
222  IF (nnb.EQ.0) go to 150
223  l = 2
224  70 IF (list(l,j).NE.i) go to 130
225 *
226 * Move up the remaining list members and reduce membership by one.
227  DO 80 k = l,nnb
228  list(k,j) = list(k+1,j)
229  80 CONTINUE
230  list(1,j) = list(1,j) - 1
231 * Reduce the steps to minimize error effect (do not allow DT < 0).
232 * STEP(J) = MAX(0.5D0*STEP(J),TIME - T0(J))
233 * STEPR(J) = MAX(0.5D0*STEPR(J),TIME - T0R(J))
234  IF (list(1,j).GT.0) go to 130
235 *
236 * Add a distant body as neighbour if list only contains escaper.
237  k = ifirst - 1
238  100 k = k + 1
239  rjk2 = (x(1,j) - x(1,k))**2 + (x(2,j) - x(2,k))**2 +
240  & (x(3,j) - x(3,k))**2
241  IF (rjk2.LT.resc2.AND.k.LT.n) go to 100
242  list(1,j) = 1
243  list(2,j) = k
244  go to 150
245 *
246 * Reduce higher particle locations by one.
247  130 IF (list(l,j).GT.i) list(l,j) = list(l,j) - 1
248  l = l + 1
249  IF (l.LE.list(1,j) + 1) go to 70
250  150 CONTINUE
251 *
252 * Update list of old KS components (remove #I and rename > I).
253  nnb = listr(1)
254  DO 170 l = 2,nnb+1
255  IF (listr(l).EQ.i) THEN
256 * Remove both components of pair and reduce membership by two.
257  j = 2*kvec(l-1)
258  DO 165 k = j,nnb-1
259  listr(k) = listr(k+2)
260  165 CONTINUE
261  listr(1) = listr(1) - 2
262  END IF
263  170 CONTINUE
264 *
265 * Reduce higher particle locations by one (separate loop for pairs).
266  DO 180 l = 2,nnb+1
267  IF (listr(l).GT.i) listr(l) = listr(l) - 1
268  180 CONTINUE
269 *
270 * Update list of high velocity particles (remove #I and rename > I).
271  nnv = listv(1)
272  DO 190 l = 2,nnv+1
273  IF (listv(l).EQ.i) THEN
274 * Remove escaper and reduce the membership.
275  DO 185 k = l,nnv
276  listv(k) = listv(k+1)
277  185 CONTINUE
278  listv(1) = listv(1) - 1
279  END IF
280 * Reduce higher particle locations by one (or three for c.m.).
281  IF (listv(l).GT.i) THEN
282  listv(l) = listv(l) - 1
283  IF (i.GT.n + 1) listv(l) = listv(l) - 2
284  END IF
285  190 CONTINUE
286 *
287 * Check special case of second KS component removal.
288  IF (kcase.GT.1) go to 205
289 *
290 * See whether the escaper is a single particle or c.m.
291  IF (i.LE.n + 1) go to 12
292 *
293 * Skip correction if ghost is also merged binary (NAMEI = 0 below).
294  IF (namei.NE.0.AND.body(2*ipair-1).GT.0.0d0) THEN
295  zmb = body(2*ipair-1) + body(2*ipair)
296  zm2 = body(2*ipair)
297  eb = h(ipair)*body(2*ipair-1)*body(2*ipair)/zmb
298  semi = -0.5*zmb/h(ipair)
299  ecc2 = (1.0 - r(ipair)/semi)**2 + tdot2(ipair)**2/(semi*zmb)
300  ecc = sqrt(ecc2)
301  pmin = semi*(1.0 - ecc)
302  ratio = max(radius(2*ipair-1),radius(2*ipair))/pmin
303  name1 = name(2*ipair-1)
304  kstar1 = kstar(2*ipair-1)
305  pb = days*semi*sqrt(semi/zmb)
306  ELSE
307 * Obtain two-body elements of ghost binary and update energies.
308  eb = 0.0d0
309  ratio = 0.0
310  bodycm = cm(3,im) + cm(4,im)
311  semi = -0.5*bodycm/h(jpair)
312  zmu = cm(3,im)*cm(4,im)/bodycm
313  pb = days*semi*sqrt(semi/bodycm)
314  ecc2 = (1.0-r(jpair)/semi)**2 + tdot2(jpair)**2/(bodycm*semi)
315  ecc = sqrt(ecc2)
316  eb1 = zmu*h(jpair)
317  be(3) = be(3) - eb1
318  emerge = emerge - eb1
319  deb = deb + eb1
320  END IF
321 *
322 * Update total energy (ECOLL with EB < -1 & #27 > 0 affects BINOUT).
323  be(3) = be(3) - eb
324  ebin = ebin - eb
325 *
326 * Check optional diagnostics for hierarchical systems.
327  IF (namei.LE.0.AND.(kz(18).EQ.1.OR.kz(18).EQ.3)) THEN
328  iphase = 7
329  CALL hiarch(ipair)
330  END IF
331 *
332 * Distinguish between actual and ghost binary (mergers come later).
333  IF (body(2*ipair-1).GT.0.0d0) THEN
334  name2 = name(2*ipair)
335 *
336 * Include rare case of higher-order system (4, 5 or 6 members).
337  IF (namei.LT.-2*nzero) THEN
338  jm = 1
339  DO 195 k = 1,nmerge
340  IF (namem(k).EQ.namei) jm = k
341  195 CONTINUE
342  i3hj = n
343  DO 196 j = ifirst,ntot
344  IF (name(j).EQ.nameg(jm)) i3hj = j
345  196 CONTINUE
346 * Identify quartet, quintuplet or sextuplet.
347  IF (name2.LE.nzero.AND.name(i3hj).LE.nzero) THEN
348  which1 = ' QUARTET '
349 * Include both types of quintuplet: [[B,S],B] and [[B,B],S].
350  ELSE IF (name2.LE.nzero.OR.name(i3hj).LE.nzero) THEN
351  which1 = ' QUINTUPLET'
352  ELSE
353  which1 = ' SEXTUPLET '
354  END IF
355  zm1 = cm(1,jm)*zmbar
356  zm2 = cm(2,jm)*zmbar
357  zm3 = (cm(3,jm) + cm(4,jm))*zmbar
358  eb3 = cm(1,jm)*cm(2,jm)*hm(jm)/(cm(1,jm) + cm(2,jm))
359  semi3 = -0.5*(cm(1,jm) + cm(2,jm))/hm(jm)
360  pb3 = days*semi3*sqrt(semi3/(cm(1,jm) + cm(2,jm)))
361  WRITE (6,199) which1, name(2*ipair-1), name(2*ipair),
362  & name(i3hj), zm1, zm2, zm3, eb3, semi3, pb3
363  199 FORMAT (/,a11,' ESCAPE NM =',3i6,' M =',3f6.2,
364  & ' EB3 =',f8.4,' A3 =',1p,e8.1,' P3 =',e8.1)
365 * Copy actual name of outer component for KS binary output.
366  name2 = name(i3hj)
367  END IF
368 *
369  vi = sqrt(0.5*vi2*zmass/abs(zkin))
370  WRITE (6,200) ipair, name(2*ipair-1), name2,
371  & kstar(2*ipair-1), kstar(2*ipair), kstari,
372  & list(2,2*ipair), body(2*ipair-1)*zmbar,
373  & body(2*ipair)*zmbar, eb, ratio, vi, ecc, ei, pb
374  200 FORMAT (/,' BINARY ESCAPE KS =',i5,' NM =',2i6,
375  & ' K* =',4i3,' M =',2f5.1,' EB =',f8.4,
376  & ' R*/PM =',f5.2,' V/<V> =',f5.2,' E =',f5.2,
377  & ' EI =',f8.5,' P =',1p,e8.1)
378  ELSE
379  WRITE (6,202) ipair, name(2*ipair-1), name(2*ipair),
380  & kstar(2*ipair-1), kstar(2*ipair), kstar(i),
381  & cm(3,im)*smu, cm(4,im)*smu, eb1, ecc, semi, pb
382  202 FORMAT (/,' QUAD ESCAPE KS =',i5,' NM =',2i6,
383  & ' K* =',3i3,' M =',2f5.1,' EB =',f8.4,
384  & ' E =',f7.3,' A =',1p,e8.1,' P =',e8.1)
385  eb = eb + eb1
386  ei = 0.0
387  END IF
388 *
389 * Accumulate escaping binary energies and increase the counter.
390  IF (list(2,2*ipair).EQ.-1) THEN
391  e(5) = e(5) + eb
392  e(6) = e(6) + ei
393  npop(5) = npop(5) + 1
394  ELSE
395  e(7) = e(7) + eb
396  e(8) = e(8) + ei
397  npop(6) = npop(6) + 1
398  END IF
399  ebesc = ebesc + eb
400 *
401  IF (namei.GT.0) THEN
402  nbesc = nbesc + 1
403  ELSE
404  nmesc = nmesc + 1
405  END IF
406 *
407 * Reduce particle number, pair index & single particle index.
408  n = n - 1
409  npairs = npairs - 1
410  ifirst = 2*npairs + 1
411 *
412 * Move up all tables of regularized pairs below IPAIR.
413  IF (ipair.LE.npairs) THEN
414  CALL remove(ipair,2)
415  END IF
416 *
417 * Increase index for removing KS components.
418  205 kcase = kcase + 1
419  IF (kcase.LE.3) THEN
420 * Remove COMMON arrays of the second component before the first.
421  i = 2*ipair + 2 - kcase
422  ntot = ntot - 1
423 * Reduce NTOT by 3 and N by 2 when KS pair escapes.
424  CALL remove(i,3)
425  go to 60
426  END IF
427 *
428 * Check selection of possible ghost in higher-order system.
429  IF (i3hi.GT.0) THEN
430  i = 0
431  DO 208 j = ifirst,ntot
432  IF (name(j).EQ.nameg(jm)) THEN
433  i = j
434  END IF
435  208 CONTINUE
436  IF (i.GT.0) THEN
437  i3hi = 0
438  go to 50
439  END IF
440  END IF
441 *
442 * Include the case of escaping merger.
443  IF (namei.GE.0) go to 250
444 *
445 * Locate current position in the merger table (standard case).
446  im = 0
447  DO 210 k = 1,nmerge
448  IF (namem(k).EQ.namei) im = k
449  210 CONTINUE
450 * Skip on failed detection just in case.
451  IF (im.EQ.0) go to 250
452 *
453 * Include case of higher-order system (outer single or binary).
454  deb = 0.0
455  IF (namei.LT.0) THEN
456 * Determine the ghost index.
457  i3hi = 0
458  DO 215 j = ifirst,ntot
459  IF (name(j).EQ.nameg(im)) i3hi = j
460  215 CONTINUE
461 * Specify nominal escape distance for ghost removal.
462  x(1,i3hi) = 1.0d+04
463 * Define possible KS pair index for quadruple system correction.
464  jpair = i3hi - n
465  END IF
466 *
467 * Consider current ghost unless deeper hierarchy is present.
468  jm = im
469  IF (i3hi.GT.0) THEN
470 * Search for c.m. name one level below current (NAMEI < 0).
471  IF (namei.LT.-2*nzero) THEN
472  DO 220 k = 1,nmerge
473  IF (namem(k).EQ.namei + 2*nzero) jm = k
474  220 CONTINUE
475 * Use previous merger index to look for binary ghost at earlier level.
476  i30 = i3hi
477  DO 225 j = ifirst,ntot
478  IF (name(j).EQ.nameg(jm)) i3hi = j
479  225 CONTINUE
480  IF (i3hi.GT.n) THEN
481  jpair = i3hi - n
482  ELSE
483 * Adopt original solution on failure to identify binary.
484  i3hi = i30
485  END IF
486 * Set nominal escape distance of any new ghost (I3HI <= N possible).
487  x(1,i3hi) = 1.0d+04
488  END IF
489  END IF
490 *
491 * Copy merger energy to respective energy bins (primordial or new).
492  zmu = cm(1,jm)*cm(2,jm)/(cm(1,jm) + cm(2,jm))
493  IF (min(name1,nameg(jm)).LE.2*nbin0) THEN
494  e(5) = e(5) + zmu*hm(jm) + deb
495  ELSE
496  e(7) = e(7) + zmu*hm(jm) + deb
497  END IF
498  emesc = emesc + zmu*hm(jm)
499 *
500 * Reduce membership if IM is last (otherwise done in RESET).
501  IF (im.EQ.nmerge) THEN
502  nmerge = nmerge - 1
503  END IF
504 *
505 * Identify merged ghost particle (single body or binary c.m.).
506  jcomp = -1
507  DO 230 j = ifirst,ntot
508  IF (body(j).EQ.0.0d0.AND.name(j).EQ.nameg(im)) jcomp = j
509  230 CONTINUE
510 * Include search over lower level on failed identification.
511  IF (jcomp.EQ.-1.AND.i3hi.GT.0) THEN
512  DO 232 j = ifirst,ntot
513  IF (body(j).EQ.0.0d0.AND.name(j).EQ.nameg(jm)) jcomp = j
514  232 CONTINUE
515  END IF
516 *
517 * Skip if correct ghost not identified (note I3HI # JCOMP if JM # IM).
518  IF (jcomp.GT.0) THEN
519  i = i3hi
520 * Form two-body elements and period of inner binary.
521  namei = 0
522  npop(7) = npop(7) + 1
523  bodycm = cm(1,jm) + cm(2,jm)
524  semi0 = -0.5*bodycm/hm(jm)
525  zmu = cm(1,jm)*cm(2,jm)/bodycm
526  eb = zmu*hm(jm)
527  pb = days*semi0*sqrt(semi0/bodycm)
528  be(3) = be(3) - eb
529  emerge = emerge - eb
530 * Include extra corrections for mergers between binary pairs.
531  IF (jm.LT.im) THEN
532  zmu2 = cm(1,im)*cm(2,im)/(cm(1,im) + cm(2,im))
533  eb2 = zmu2*hm(im)
534  be(3) = be(3) - eb2
535  emerge = emerge - eb2
536  IF (jm.EQ.nmerge) nmerge = nmerge - 1
537  END IF
538  rj = 0.0
539  td2 = 0.0
540  DO 235 k = 1,4
541  rj = rj + um(k,jm)**2
542  td2 = td2 + 2.0*um(k,jm)*umdot(k,jm)
543  235 CONTINUE
544  ecc2 = (1.0 - rj/semi0)**2 + td2**2/(bodycm*semi0)
545  ecc0 = sqrt(ecc2)
546  pcrit = stability(cm(1,jm),cm(2,jm),body(jcomp),ecc0,ecc,
547  & 0.0d0)
548  pcrit = pcrit*semi0
549 *
550  WRITE (6,240) name1, nameg(jm), kstar1, kstar(jcomp),
551  & kstarm(jm), cm(1,jm)*zmbar, cm(2,jm)*zmbar,
552  & eb, ecc0, pmin/pcrit, semi0, pb
553  240 FORMAT (/,' HIARCH ESCAPE NM =',2i6,' K* =',3i3,
554  & ' M =',2f5.1,' EB =',f8.4,' E =',f7.3,
555  & ' PM/PC =',1p,e8.1,' A =',e8.1,' P =',e8.1)
556 *
557 * Remove the ghost particle (NAME = 0 & EB = 0 for second binary).
558  go to 50
559  END IF
560 *
561  250 i = ipair + n
562  go to 12
563 *
564  END