Modifications of the Limited Memory BFGS Algorithm for Large-scale Nonlinear Optimization