Review of Visual Modflow 2.0

This page is part of The Modflow Help File.

Go back to Contents. Note: The "Contents" link will not work unless you have installed the Modflow Help file and are accessing this page locally.

Go to MODFLOW Resources page.

Go back to the Program Reviews page.

This review was written in 1997. The only change to this review since then have been trivial. It does not reflect the current version of Visual MODFLOW.

Last updated on Tue 04 Aug 1998 at 02:49 PM

Other than an unsolicited free copy of Visual Modflow, I have not received payment of any kind from Waterloo Hydrologic either directly or indirectly.


This review is based on the final Visual Modflow 2.0 and some pre-release versions. Since this revew was written Waterloo Hydrogeologic has come out with a new version of Visual Modflow. I haven't had a chance to try it out yet. Originally, I was not provided with any documentation but I had few problems using the program. Someone totally unfamiliar with Modflow probably would not be able to use Visual Modflow without documentation. Context-sensitive on-line help is available and useful but would not be enough for a complete novice without documentation. In some cases no on-line help was available for a particular function or else the help was incomplete.

Visual Modflow integrates Modflow, ModPath, ZoneBudget, and MT3D and acts as a preprocessor and postprocessor for all of them.

Operating System:

Visual Modflow operates under DOS or in a DOS window under Windows and according to Waterloo Hydrologic it also works under Windows 95. I don't have Windows 95 so I haven't tested that feature. To keep the program from using up all the memory and crashing when operating under Windows, I had to increase the Virtual Memory from 8 to 19 kb. ("Virtual Memory" is a method for using hard disk space as if it were extra memory. It is a standard feature of Windows.) I had no problem running the program under DOS. When the program crashed when operating under Windows, it did not also cause a system crash. Because the program does not make use of Windows features such as the ability to copy things to the clipboard, there is no obvious advantage to running it under Windows instead of DOS. On my computer, at least, Visual Modflow employs the entire screen when running in a DOS Window under Windows. If you wish to switch to another program while Visual Modflow is running, you have to use Alt-TAB. You probably will want to have a mouse to run the program. (Is there any computer user who doesn't have a mouse these days.)


When you start a new project you first assign units of the problem and the problem dimensions in terms of both number of rows, columns and layers as well as maximum dimensions in physical units. The maximum physical dimension should be selected with care because it does not appear to be possible to change them later on. One nice thing about Visual Modflow is that it allows you to use different units for different aspects of a project. Thus, you can have recharge rates in terms of mm/yr and pumping rates in terms of m3/day. Visual Modflow makes all the required conversions. The allowable units are:

Initially, you can have between 2 and 250 columns and rows and from 1 to 60 layers. In practice, you may be limited to lower values by the size of your computer's memory. On request, Waterloo Hydrogeologic will provide a custmized version of Visual MODFLOW to any user or potential user which will allow you to make a grid up to any size that is required. This would not normally extned to modifying MODFLOW itself to remove it's limitations on the allowable number of layers because that might make it more subject to court challenges. Rows, columns and layers can be easily subdivided or combined in the interior of the model with the click of a mouse. You can subdivide one row or column at a time if you want to but more often you may wish to select a zone and change the column or row dimensions of all of them at once. When you do this, rows or columns are added (or deleted) so that the physical dimensions of the model remain unchanged. This is a good feature because it means you can refine one part of the grid without needing to consider how the addition or deletion or rows affects the rest of the grid. You also can easily move the boundaries between adjacent rows columns and layers. However, rows columns and layers can not be added to the exterior of the model nor can the physical dimensions of the model be reduced by removing any of the exterior rows, columns or layers. When a row or column is split in two, all the cells that were divided retain the properties of the cells from which they originated. (However wells and other similar features are automatically assigned to the correct cells.) The program does not provide any warning if you have rows or columns of quite different width next to each other. Thus it is up to the user to make sure that all row and column dimensions are appropriate. Initially, the boundaries between all layers are horizontal. However if you wish to have layer boundaries or surface elevations that vary, you can import that data from ASCII x-y-z files or Surfer .grd files. By default, Visual Modflow will use the values from the 5 nearest points when interpolating the boundary elevations. If you wish, you can increase or decrease the number of points to be considered. It appears to be impossible to edit top and bottom elevations of individual cells from within Visual Modflow. You can import data from input files from existing Modflow models and DXF diagrams.

Unlike Modflow itself, Visual Modflow does not allow you to specify the presence of a gap between the bottom of one layer and the top of the layer beneath it. This means that all aquitards must be included as layers within the model. In Modflow, as opposed to Visual Modflow, it is possible to model confining layers by specifying a gap between adjacent layers and accounting for the presence of the confining layers by setting the vertical conductivity to a low value. This can be advantageous if release of water from storage in the aquitards is not a consideration. However, such quasi-three-dimensional models are unsuitable for particle tracking or mass transport.

When you start assigning properties, such as hydraulic conductivity, to the model cells, you are first prompted for default values. These default values are assigned to all the cells and may then be edited on a cell-by-cell basis. Cells may be selected for editing either one at a time or by outlining a rectangle or polygon with a mouse. Usually you will want to be looking at a plan view of the model when you do this but you can also look at cross sections along any row or column. Some properties can also be assigned by selecting a line of cells or a series of line segments. For example in the River package, you can select a series of line segments, assign properties to the beginnings and ends of the whole line and Visual Modflow will calculate the properties of the intermediate points. This illustrates another nice point about Visual Modflow; For properties that vary along the length of a line, it will calculate values for intermediate points based on the values at the ends of the line. If you wish to select a polygon of cells for editing, you use the left mouse button to outline the polygon you wish to edit and then use the right mouse button to indicate that you are finished outlining the polygon. I had to find this out by trial and error because the on-line help didn't mention the use of the right mouse button when outlining polygons. After using the polygon to inactivate cells, you may wish to reactivate a few of them on the margins if the way you drew the polygon wasn't precisely correct. You can do that by using the "Mark Single" button and using the right (instead of the left) mouse button. You can use similar techniques to assign all other model properties.

All boundary conditions including evapotranspiration and recharge rates may vary spatially and with time.

The preprocessing for the Well package is easy to do. One way is to first create a text file with the starting times, stopping times and pumping rates for a particular well and import this into Visual Modflow. You don't have to set up the stress periods yourself. Visual Modflow sets them up for you based on the pumping schedule and other transient data. You can modify the number of time steps per stress period and the time-step multiplier before running the program. The pumping rates can easily be varied within the graphical interface by simply pressing the <Enter> key after you have entered a single pumping rate for the first stress period. This will create another time step starting from the end of the last time step. Visual Modflow can also create a graph of the pumping schedule. Besides the pumping schedule, you must also enter the screened interval(s) and other required information. If a well is screened in more than one layer, Visual Modflow will calculate the appropriate amount of pumpage for each layer. If you later add more layers or change the layer boundaries, Visual Modflow will make all required changes in the MODFLOW input files automatically.

Whenever you wish to start working on a new property of the model, you are prompted to save the existing data - a good feature. From the point of view of the user, it seems like all of the data is saved in a single file which you may edit later. (In fact, more than one file contains the data, but the user doesn't need to see this.) The Visual MODFLOW model contains more information than is contained within the Modflow input files. For example, you can enter precise well locations and screened intervals. When you actually run Modflow, the input files for Modflow are generated from this file. When grid cells are subdivided, only the cell that actually contains the well, will be designated as a well in the Modflow input files.

In the horizontal flow barrier package, flow barriers are treated as properties of individual cells rather than as the property of the boundary between cells. You can only have one flow barrier per cell. This is more restrictive than required by Modflow but should not cause problems for any practical applications that I can imagine.

When you assign properties to cells or groups of cells, Visual Modflow will change the color of the cells to reflect the change. Each property of the model is assigned to an individual overlay. By choosing the overlays that are visible you can decide which properties will be visible. Whenever you start editing a new property, the overlay for that property will be switched on automatically. You can easily turn off any overlay at any time. This is useful because sometimes if too many overlays are active it can be difficult to interpret what you see on the screen. In most cases, the overlay for the most recently edited property will be on top. This can be a problem in some cases. For example. I first added a well and then edited the storage properties of some cells. I then went back and added another well to one of the same cells for which I had edited the storage properties. When I then went back to edit the storage properties of some additional cells, the color for cells with non-default storage properties was obscured by the pattern for the well. This could be good or bad depending on what you want to see. You can now "set the order of the overlays, such that the important information is not lost underneath a subsequent overlay."

If you don't like the colors that Visual Modflow uses for an individual cell, you're out of luck; you can't change the colors that Visual Modflow assigns. Personally, this doesn't bother me because I like the default color scheme. I don't know what the different colors look like when printed on a black and white printer.

Visual Modflow will prevent you from entering some impossible values. For example, specific yield must be greater than 0 and less than 1. However, Visual Modflow does not prevent you from entering porosities that are smaller than the specific yield nor does it warn you about other foolish choices you might make in the design of the model so long as those choices are legal. Thus Visual Modflow will allow you if you specify time steps which are too long and grid designs in which narrow rows or columns are adjacent to a much wider ones. It is up to the modeler to ensure that all the input parameters are appropriate.

Modflow Execution:

Visual Modflow comes with the following public-domain packages incorporated into the Modflow executable in addition to those included in the original version of Modflow; In addition, it has three proprietary packages; It does not include the following packages; It is a little surprising that BCF1, BCF2, and BCF3 are all included in the same program because BCF3 is fully compatible with BCF2 and BCF1 so long as there are no comments on line 1 of a BCF1 input file in spaces that are used for data in BCF2 or BCF3. Thus if you have BCF3, you don't need BCF2 or BCF1. There may be some small savings in speed to using BCF2 over BCF3 if you do not plan to use the added capabilities of BCF3. If used properly, BCF3 can increase the accuracy of the model slightly but the difference is relatively minor. Several of the packages appear to be included in the executable in order to make it compatible with other versions of Modflow despite the fact that Visual Modflow does not provide any preprocessing for them. These packages include BCF3, STR1, and GFD1. If you want to use those packages, you will have to edit the input files by hand or use a different preprocessor which supports them. (It may be difficult to find a preprocessor for GFD1).

Visual Modflow has a very nice link between the preprocessor/postprocessor and the Modflow executable. Once you have finished preparing the input, the preprocessor prepares the Modflow input files, calls up the Modflow executable and runs the model and then returns you to the preprocessor/postprocessor to show you your results.

It is possible to run the MODFLOW executable independently of the preprocessor/postprocessor However, you first have to give the command "set dos4gvm=@vmod.vmc". It would be easy to add this to your AUTOEXEC.BAT file so you would never have to think about it. Alternatively you could create a special batch file with the command or just remember to type it. Before running the executable, you have to assign unit numbers for each package by modifying the file MODFLOW.IN. This is easy to do with an ASCII text editor such as the Windows Notepad. The first two lines of MODFLOW.IN are used to assign the output (or listing) and Basic Package input files to units 6 and 1 respectively. You must remember to assign negative unit numbers to the unformatted head save and drawdown files. It may be difficult or impossible to use the postprocessing functions of Visual Modflow with models that are run independently of the preprocessor/postprocessor. I had the input files a quasi-3D model of the Chicot aquifer in Louisiana. I was able to run the model using the executable which comes with Visual Modflow but I could not view the output in Visual Modflow.


Visual Modflow can show you your results in the form of contour diagrams, flow vectors or concentration in any layer, row or column. (You may need to adjust the size of the vectors to an acceptable size.) You can use MODPATH to delineate capture zones in steady state or transient models. You can also export heads in any layer to an ASCII file. However, you can not export data for vertical profiles to ASCII files.

One important part of the output of Modflow is the water budget. It's always important to look at the water budget to make sure that errors aren't too large. In Visual Modflow, you need to run ZoneBudget to do this. First, however, you have to set the output control options to save the cell-by-cell flow terms required by ZoneBudget before you run Modflow. Visual Modflow makes it very easy to set the output control options. You can use ZoneBudget to look at the water budget of the entire model or of multiple zones of interest within the model. If you wish to redefine a zone, you can do so easily and then run ZoneBudget again without running Modflow. You then choose the time step of interest and Visual Modflow will display the water budget for that time step. You can switch to the next zone in that time step at the push of a single button. Switching between time steps is a little more complicated; you have to push two buttons instead of one. You will need to check through each time step one at a time to see if the water budget error is sufficiently small in all time steps. This can be time consuming for models with many time steps and is an obvious candidate for automation in a future version of Visual Modflow. It would also be nice to be able to graph any or all of the water budget terms against time. This would allow you to look at a graph of the error, for example, and quickly determine whether the water budget was acceptable.

It is easy to compare observed heads with model generated heads in Visual Modflow. Before running the model, you enter the observed data. After running the model, Visual Modflow will plot the modeled head in the same cell as the observation. It will then plot observed vs. modeled heads. This can aid in calibration of the model. The program also calculates statistics on the data to give an overall summary of the quality of the calibration. If you are interested in a particular data point, you can click on it to see the name of the data point and the calculated and observed data for it.

If you wish to see a hydrograph for an individual location, you may add an observation point and then run Modflow. You can then select the observation point and see a hydrograph for that cell.


I am not aware of any bugs in the current version of Visual MODFLOW


Visual Modflow can be purchased from

Go back to Contents. Note: The "Contents" link will not work unless you have installed The Modflow Help File and are accessing this page locally.

©1996, 1997 Richard B. Winston,
2163 Tulip St
Baton Rouge, La 70806