Abstract Optimization of a water resources system necessarily must appropriately mesh the modeling of the system with the optimization technique used. If the system model is linear, many effective optimization techniques exist. But if the model is non-linear in the objective function and/or constraints, very few effective optimization methods exist. This paper describes how a water resources system, including both water quantity and water quality, can be modeled to form a non-linear programming problem. The latter is solved by two techniques: (a) a Generalized Reduced Gradient method, and (b) a conjugate gradient projection method. The relationship between the model and the formulation of the non-linear programming problem is discussed, and computational experience with each of the algorithms is described.