              Comments on NBODY3
              ------------------

   Direct integration is done by routine NBINT, based on divided differences.

   Particles with small steps are likely to be involved in close encounters.
   If STEP(I) < DTMIN, with DTMIN suitably defined (input or routine ADJUST),
   then a search is made for the closest neighbour in routine SEARCH.
   Depending on various tests, two particles may be selected for KS
   treatment. Both are first integrated to the highest order at current
   value of TIME.

   Initialization of KS starts with routine KSREG. All COMMON arrays of the
   two particles (denoted ICOMP & JCOMP) are then placed in the two first
   locations occupied by single particles (2*NPAIRS + 1 & 2*NPAIRS + 2,
   where NPAIRS is old number of KS pairs). Routine KSINIT deals with the
   initialization; it calls KSPOLY in order to obtain relevant polynomials.
   Routine KSLIST is used to construct the perturber list; zero membership
   means unperturbed motion.

   The main KS integration begins with routine KSINT. The new regularized
   coordinates and velocities are predicted in KSPRED. After the physical
   perturbations have been evaluated in routine KSPERT, the polynomials
   for U, UDOT & H are corrected to highest order by KSCORR. A given KS
   solution is advanced when the corresponding value of T0(I1) + STEP(I1)
   becomes the smallest; here STEP(I1) is the physical value of the KS
   step DTAU(IPAIR), with I1 = 2*IPAIR - 1 being the first KS component
   of a given pair IPAIR.

   Termination of KS occurs if the particle separation R(IPAIR) exceeds
   some close encounter distance such that the perturbation becomes
   significant, or if a third particle begins a strong interaction which
   leads to a different dominant pair. Routine KSTERM performs most of
   the necessary procedures which result in new force polynomials and
   time-steps for the two former KS components. Routines FPOLY1 & FPOLY2
   are used to initialize the polynomials for direct integration (and also
   the corresponding c.m. particle of a new KS).

   A number of additional KS routines are present, some being optional.
   The main ones are UNPERT, which checks for unperturbed motion (from one
   apocentre to the next or even many periods), and RESOLV (and KSRES)
   which transforms the predicted values of U & UDOT to physical coordinates
   and velocities (if needed). Several other routines are used for optional
   features of tidal two-body dissipation (KSTIDE & TIDES), and so-called
   slow KS (representing one KS orbit as several physical orbits, based on
   the principle of adiabatic invariance when perturbations are small).

   The case of a hard binary interacting strongly with a single particle
   (or another KS binary) is treated by chain regularization. This is very
   powerful for studying compact sub-systems with external perturbations
   added, but the coding is fairly complicated. Here the decision-making
   is based on checking for suitable configurations at the apocentre point
   of a KS orbit.

   Stable hierarchical configurations (close inner binary surrounded by
   an outer bound particle) are transformed into temporary two-body
   systems where the inner binary components are merged into one body
   (routine MERGE). Such configurations are converted back to the original
   system by routine RESET if the stability conditions are not satisfied
   (strong external perturbation or decreased outer pericentre distance).

   The code permits an arbitrary number of KS and merged systems at the
   same time, subject to the parameter values of KMAX & MMAX.
