Design Decisions

The following design decisions were made in order to fulfill the goals:

1. The programming language will be Fortran -- Many other languages would have been adequate, but the author is most familiar with Fortran. Also, MODFLOW is written in Fortran, so this makes it easy to read and write data for MODFLOW.

2. The ANNIE Interactive Development Environment (AIDE) will be used as the tool for providing user interaction in MFI (Kittle and others, 1989) -- The version of AIDE used in MFI includes enhancements that were added to AIDE after its original publication (P. R. Hummel, written commun., 1994). AIDE provides a set of tools for creating programs that interact with users through menus and "fill in the blanks" screens. AIDE is a character based system as compared to a graphical system. It is not as powerful as many of today's graphical systems, but it is portable. AIDE incorporates a help system and range checking of data. AIDE is sufficient for controlling the selection of options and entering miscellaneous data. It is insufficient for entry of large arrays.

3. Large arrays of data and lists of point stress data will be entered through the use of a commercial spreadsheet program -- Regardless of what interactive interface tool is used, writing a sophisticated user interface for entering arrays and lists of stresses would be too expensive and time consuming. By interfacing with an existing program, the greatest functionality can be obtained at the lowest cost. Further, it is likely that other commercial programs could be useful for generating arrays depending on user preferences and the specific modeling task. Thus, MFI was designed under the assumption that interfaces to other programs could be added.

4. MFI will primarily deal with gridded data -- That is, it is assumed that the required data values are known at all points in the grid. Although there is no intent to directly incorporate gridding capabilities within MFI, these capabilities could be obtained by using other programs along with MFI.

5. As a further method of allowing the user to maximize the use of other software, MFI will allow external files to be specified as part of a MODFLOW dataset -- These external files will not be read or modified by MFI, but the dataset will be setup so that MODFLOW will read these files. This is possible because MODFLOW allows arrays to be read from external files.

6. To avoid duplicate data, MFI will directly read and write MODFLOW datasets rather than maintaining a separate database.