Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

GeoSolid3D / News: Recent posts

GeoSolid3D code available, Developers Wanted

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).
http://en.wikipedia.org/wiki/Inter-process_communication
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.

Posted by John Hoaglund 2009-11-06

Code coming soon

PSU project details are at:
http://www.emsei.psu.edu/~hoaglund/research.html
Work supported by:
USDA grant #2003-35102-13587
Improving ground water models by adjusting transverse anisotropy regressed from a structural model

Code for this project will be uploaded soon. The project started as the Viewxsxn project at Penn State University through version 1.2. Versions 1.3 and 1.4 have been written since I left PSU, and will be uploaded to the project when 1.2 is released.

Posted by John Hoaglund 2007-04-10