  We classify abelian subgroups of Out(F_n) up to finite index in an
algorithmic and computationally friendly way. A process called disintegration
is used to canonically decompose a single rotationless element \phi into a
composition of finitely many elements and then use these elements to generate
an abelian subgroup A(\phi) that contains \phi. The main theorem is that up to
finite index every abelian subgroup is realized by this construction. As an
application we classify, up to finite index, abelian subgroups of Out(F_n) and
of IA with maximal rank.
