Groundwater Utilities

PEST’s groundwater utilities support sophisticated and flexible parameterization of groundwater models using pilot points and other parameterization devices. They facilitate creation of a strategic, multi-component objective function that is minimized as model-to-measurement misfit is reduced. They enable creative use of PEST with popular groundwater models. These include all versions of MODFLOW, as well as FEFLOW.


“PLPROC” stands for “parameter list processor”. Although it can perform many tasks, its main role is to enable creative parameterization of structured and unstructured grid models using pilot points. 

PLPROC was designed with flexibility in mind. It uses its own programming language. This allows a modeller to access a wide range of options for interpolation from pilot points to a model grid. It also allows a modeller to embody his/her expert knowledge on relationships between parameters of the same and different types in design of a model parameterization scheme.

PLPROC’s features include the following:

  • Interpolation from pilot points to a model grid using spatially adaptive kriging, radial basis functions, inverse power of distance, and other methods;
  • Linear interpolation from pilot points to polylinear features and boundary conditions;
  • Anisotropic interpolation that can follow the boundaries of an alluvial channel;
  • Manipulation of parameters ascribed to pilot points or model cells using equations of arbitrary complexity;
  • Easy co-existence of pilot point and zone-based parameterization;
  • Non-intrusive interface with a model; 
  • Can adapt to a wide range of model input file protocols;
  • Extensive reporting of its processing.
Pilot Points


"OLPROC" stands for "observation list processor". It reads model output files, and files that contain field measurements. It can run in two modes - as a model post-processor and as a PEST input dataset constructor. As a model post-processor it time-interpolates model outputs to measurement times. It can also match temporal differences between both of these. As a PEST input dataset constructor, it writes a PEST input file together with instruction files to read its own model post-processing output files.


“TS6PROC” stands for “time series 6 processor”. TS6PROC reads a MODFLOW 6 time series file and writes a replacement for it. Time series can be altered in ways specified by a user. For example they can be shifted, amplified, amplified about a mean, and combined/processed in other ways. The details of these processing options are governed by parameters. These parameters can be adjusted by PEST, along with other model parameters, during an inversion or uncertainty analysis process.    

Groundwater Utilities

Programs comprising PEST’s Groundwater Utility suite perform a range of tasks. Some of these tasks are not directly related to parameter adjustment; they are tasks of convenience that facilitate working with models such as MODFLOW. However many utilities were written specifically to support the use of PEST in groundwater model parameter estimation and uncertainty analysis. These programs employ common file formats so that that they can work with each other. Collectively they can support a complex workflow that facilitates creative use of PEST and PEST++ in a wide variety of modelling contexts.

The following list illustrates some of the functions performed by members of the PEST Groundwater Utility suite:

  • Mathematical manipulation of integer and real arrays employed by structured and unstructured-grid versions of MODFLOW;
  • Spatial interpolation from MODFLOW (structured and unstructured) grids to the locations of observation wells;
  • Time-interpolation from model output times to times at which field measurements were made;
  • Parameter pre-processing and observation post-processing for FEFLOW models;
  • Spatial and temporal differencing of field measurements and their model-calculated counterparts prior to matching them with each other;
  • Reading of binary files written by structured and unstructured grid versions of MODFLOW, and MT3D;
  • Listing of the contents of binary files written by the above programs;
  • Computation of vertical salt concentration profiles from maps of salt water / fresh water interface depth;
  • Two and three-dimensional kriging from pilot points to a structured model grid;
  • Stochastic field generation for structured versions of MODFLOW;
  • Re-writing of model property and results files in forms suitable for importation into two-and three-dimensional display and processing platforms such as SURFER, GIS and PARAVIEW;
  • Calculation of covariance matrices (used in random field generation and regularization) based on uniform and spatially varying variograms;
  • Automatic construction of complex PEST input datasets.
3D Contours


Lumped parameter soil moisture store modelLUMPREM is a simple, but effective, lumped parameter soil moisture store model. A basic interface to MODFLOW 6 is provided with it. 

LUMPREM requires daily inputs of rainfall and potential ET. Nonlinear relationships based on stored soil moisture are used to calculate recharge, runoff and actual ET. The parameters which govern these relationships can be adjusted by PEST. Numerous quantities of interest are recorded on LUMPREM’s output file. These include residual daily ET (which can be reformatted for input to the EVT package of MODFLOW), irrigation demand, and boundary condition head. The latter is calculated using a parameterizable, nonlinear relationship between head and stored soil moisture. Heads calculated in this way can be assigned to MODFLOW boundary conditions after appropriate re-formatting.