This report presents a finite-difference model and its associated modular computer program. The model simulates flow in three dimensions. The report includes detailed explanations of physical and mathematical concepts on which the model is based and an explanation of how those concepts were incorporated in the modular structure of the computer program. The modular structure consists of a Main Program and a series of highly independent subroutines called 'modules.' The modules are grouped into 'packages.' Each package deals with a specific feature of the hydrologic system which is to be simulated, such as flow from rivers or flow into drains, or with a specific method of solving linear equations which describe the flow system, such as the Strongly Implicit Procedure or Slice-Successive Overrelaxation.
The division of the program into modules permits the user to examine specific hydrologic features of the model independently. This also facilitates development of additional capabilities because new modules or packages can be added to the program without modifying the existing modules or packages. The input and output systems of the computer program are also designed to permit maximum flexibility.
Ground-water flow within the aquifer is simulated using a block-centered finite-difference approach. Layers can be simulated as confined, unconfined, or a combination of confined and unconfined. Flow from external stresses, such as flow to wells, areal recharge, evapotranspiration, flow to drains, and flow through riverbeds, can also be simulated. The finite-difference equations can be solved using either the Strongly Implicit Procedure or Slice-Successive Overrelaxation.
The program is written in FORTRAN '66 and will run without modification on most computers which have a FORTRAN '66 compiler. It will also run, without modification, with most extended FORTRAN '77 compilers and with minor modifications on standard FORTRAN '77 compilers. Documentation presented in this report includes a narrative description, a flow chart, a list of variables, and a program listing for each module.