The numerical solution of a nonlinear system of algebraic or ordinary differential equations usually requires the formation of a Jacobian by finite differencing. In the solution of most problems, the Jacobian is evaluated repeatedly and at neighboring arguments. In this paper we will present a subroutine which is appropriate for forming Jacobians in such circumstances. The routine adjusts increments for differencing to control roundoff and truncation errors, but seldom requires more than one function evaluation to compute a column of the Jacobian. In addition, the routine takes advantage of sparsity in forming the Jacobian. This often leads to a significant reduction in the number of function evaluations required to compute the Jacobian.