KINSOL is a solver for nonlinear algebraic systems based on Newton-Krylov solver technology. It is newly rewritten in the C language, based on the previous Fortran package NKSOL of Brown and Saad. KINSOL employs the Inexact Newton method. As this solver is intended mainly for use on large systems, three iterative methods are provided to solve the resulting linear systems -- GMRES, Bi-CGStab, and TFQMR. These are Krylov methods, and are implemented with scaling and preconditioning, in modules that are common to all of the SUNDIALS codes. For the sake of convenience to users with smaller systems, KINSOL also includes direct (dense and band) linear solvers for the linear systems. In this case the nonlinear iteration is a Modified Newton method. In addition to the basic Krylov method modules, the KINSOL package includes a module called KINBBDPRE, which provides a band-block-diagonal preconditioner for the parallel version. For use with Fortran applications, a set of Fortran/C interface routines, called FKINSOL, is also supplied. These are written in C, but assume that the user calling program and all user-supplied routines are in Fortran.