A variable-step, variable-order multistep method for the numerical solution of ordinary differential equations