Adjoint-based gradient computations for oil reservoirs have been increasingly used in closed-loop reservoir management optimizations. Most constraints in the optimizations are for the control input, which may either be bound constraints or equality constraints. This paper addresses output constraints for both state and control variables. We propose to use a (interior) barrier function approach, where the output constraints are added as a barrier term to the objective function. As we assume there always exist feasible initial control inputs, the method maintains the feasibility of the constraints. Three case examples are presented. The results show that the proposed method is able to preserve the computational efficiency of the adjoint methods.