The MODFLOW Application Programming Interface for simulation control and software interoperability. (February 2022) - Hughes, Joseph D.; Russcher, Martijn J.; Langevin, Christian D.; Morway, Eric D.; McDonald, Richard R.
Abstract: The MODFLOW API allows other programs to control MODFLOW and interactively change variables without having to modify the source code. The MODFLOW API is based on the Basic Model Interface (BMI), which is a set of conventions that define how to initialize a simulation, update the model state by advancing in time, and finalize the run. For many existing MODFLOW coupling applications, the information provided to MODFLOW must be updated multiple times in a time step. As this capability to modify variables within a time step is not defined by the BMI, an extension to BMI was developed. This eXtended Model Interface is part of the MODFLOW API and allows such a tight coupling to other models. Examples are included for a variety of use cases, including new flexibility for users to develop custom packages without modifying the MODFLOW source code and coupling MODFLOW with other models and optimization libraries. Highlights: The MODFLOW API allows other programs to control MODFLOW without modifying MODFLOW. The MODFLOW API is based on the Basic Model Interface and the eXtended Model Interface. The MODFLOW API can be used to develop custom packages without modifying MODFLOW.