An active set Newton algorithm for large-scale nonlinear programs with box constraints