Developers wanted: If you have ideas and/or can make programming contributions, please join the project. I would like to start a developers group for this program. The SourceForge site documentation and support is not copious, so I’m a little unclear how to enlist programmers, make announcements, and use the version tracking software. Feel free to offer enlightenments there.
The most critical development need at this point is with interprocess communication (IPC).
Currently the Graphical User Interface (GUI) is written in Visual Basic (VB) 5.0, while all of the grid reading / writing / creating and Modflow input file creation are done in Fortran. Each is compiled into executable files (separately running programs) that communicate and share data with files, written within a given operating system. The GUI is only used for sending program commands, i.e. program options, as text strings in files, command#.txt files. The command#.txt files are stored on disk and can thus be used to script the Fortran, running it without the GUI. I avoided passing data with pipes or through memory to avoid committing the program to a specific GUI / operating system combination. This allows the GUI to be changed out to anything that can supply the command files, including a web browser or a human being. Thus all you need to do to “cross platform” the code is recompile the Fortran in the new operating system and use whatever GUI you want. The IPC is done by looping the Fortran while waiting for a file from the GUI, and using the operating system to signal when the file exists. The problem is that this sets up races between the operating system and the program, and if the operating system loses (e.g. the file exists in the registry but isn’t completed on disk), the program crashes.
Can someone recommend a solution? Also, I know there are ways to dedicate files on the system to specific “instances” of the program so that multiple “instances” can be running without using another “instance’s” command file, but I do not know how to implement that. Any suggestions here would be welcomed also.