PEST++ Version 3: A Parameter ESTimation code optimized for large environmental models - Version 3

Release Date:

The PEST++ software suite is object-oriented universal computer code written in C++ that expands on and extends the algorithms included in PEST, a widely used parameter estimation code written in Fortran. PEST++ is designed to lower the barriers of entry for users and developers while providing efficient algorithms that can accommodate large, highly parameterized problems. This effort has focused on: (1) implementing and extending the most popular features of PEST in a way that is easy for novice or experienced modelers to use; and (2) creating a software design that is easy to extend with future advances.

The release of Version 3 adds additional functionality such as an integrated TCP/IP run manager, global sensitivity calculations, linear uncertainty analyses, and Gauss-Marquardt-Levenberg (GML) capabilities. Capabilities of the external general run manager GENIE have also been updated.



Documentation for the code may be viewed here:

Welter, D.E., White, J.T., Hunt, R.J., and Doherty, J.E., 2015, Approaches in highly parameterized inversion: PEST++ Version 3, a Parameter ESTimation and uncertainty analysis software suite optimized for large environmental models: U.S. Geological Survey Techniques and Methods, book 7, section C12, 54 p.


Supported Computing Platforms and Source Code Compilation

All PEST++ suite source code and its associated libraries, as well as the general run manager source code, have been integrated in the Microsoft Visual Studio® 2013 integrated development environment. PEST++ is known to run on Windows®, Linux®, and Macintosh® operating systems.

The PEST++ code is written entirely in C++. Compilation of the code has been routinely accomplished by using the Intel compilers.




PEST++ executable files are currently available for Windows operating systems. There is no installation procedure needed; unzip the archive files and ensure that the executable files are placed into your path and are accessible from the command line.

Version 3 (CURRENT) - Windows (32-bit and 64-bit)


Short list of PEST++ input instructions (426 Kb PDF file)

Instructions for building PEST++ in Linux (332 Kb PDF file)



The simple test case of Welter and others (2012) appendix 6 demonstrating the application of the PEST++ may be downloaded here.



A ZIP file that contains all of the source code for PEST++ may be downloaded here.



See the PEST++ project for frequently asked questions.



Please report any bugs encounted by creating a new issue on the PEST++ Suite github site
Support is provided for correcting bugs and clarification of how the code is intended to work; only limited assistance can be provided for applying PEST++ to specific problems. For comments regarding this software distribution site, please contact Randy Hunt.
For questions regarding the PEST++ software suite code base, please contact Dave Welter and Jeremy White (include both to ensure fastest response).


Software User Rights Notice

The PEST++ software suite is designed to provide a foundation for an open-source development platform capable of producing robust and efficient software tools for the environmental modeling community into the future. This software, documentation, and example data sets are made freely available by the authors and the U.S. Geological Survey (USGS) to be used in the public interest and in the advancement of science. The performance of the PEST++ suite software has been tested in a variety of applications. Future applications, however, might reveal errors that were not detected in the test simulations. Users are requested to notify the U.S. Geological Survey contact of any errors found in this document or the computer program using the email address available listed above. Updates might occasionally be made to this document and the PEST++ program; users are encouraged to check the website periodically.