1. A method for solving adjoint models, the method comprising: (a) providing a linear system of fluid flow equations comprising a plurality of variables that represent fluid flow properties in a geological formation of a subterranean reservoir; (b) constructing a matrix (Ã) T comprising a transpose of a Jacobian matrix, the transpose of the Jacobian matrix being associated with the linear system of fluid flow equations; (c) constructing a constrained pressure residual preconditioner M CPRA −1 responsive to the matrix (Ã) T ; and (d) solving matrix equation (Ã) T y=d using the constrained pressure residual preconditioner M CPRA −1 .