ForGE Source Released

As promised, the source code for ForGE v0.4.0 has been released here:

https://github.com/jshahbazi/fortran-forge

fork away!

ForGE Progress

Progress on ForGE has come to a halt due to me moving and getting a new job.  But I plan on putting the source code up on github for everyone to see.  Once I do that, I’ll post a link here so you can check it out.  I haven’t completely stopped development on it, but I certainly don’t want to stop any enterprising individuals from continuing on where I left off.  The idea of how to wrap gtk-fortran into an easier framework for others was really the most important part of the whole thing, so now that that’s there, the rest is (relatively) easy.

Fortran Hashing Algorithm

Here’s a very fast and very good hashing algorithm developed by Daniel J. Bernstein:  (click here to see the code)

Update (5/25/2014): The code had a pretty big bug in it that is now fixed thanks to the sharp eye of a reader.  Please use the new, updated code, otherwise the result won’t change for multiple calls.  I blame my poor knowledge of Fortran back when I originally posted it.

ForGE Compilation Issues

So the instructions for compiling ForGE were lacking the linker arguments for gtk-fortran (which is required). Technically, I did say that gtk-fortran was a requirement, but I suppose my goal to help simply Fortran development wasn’t quite met by leaving that part out. However, I have fixed the readme.txt file to reflect the proper linker arguments that are required. Sorry.

And I had previously left out the forge.mod file that was required to compile the entire framework. So yeah, that’s in there now. Everything should work. Please let me know if it doesn’t.

Finally, I haven’t updated the instructions or the wiki to reflect the new functions/widgets that are available. I will soon. But until then, the test.f90 file should give several examples of how to use them.

On a brighter note, the framework is starting to come together to look much better. Widget placement looks better, and I’m gaining finer control over each piece. I’m currently attempting to incorporate PLPlot into the whole thing, so graphing will soon be available (I hope).

ForGE v0.4.0

Version 0.4.0 of the ForGE framework has been released. Several new widgets (including cairo drawing surfaces) have been added, internal tweaks to the how widgets are placed, sized, and displayed have been made, and some new functions have been added.

F03GL Package for SF Released

If you’ve ever tried to get F03GL OpenGL library to compile/work, then you’ll be pleased to know that Approximatrix has released both a F03GL package and a freeglut package for Simply Fortran IDE: http://packages.simplyfortran.com/package/37.html

The package server add-on for SF does cost money, but for the amount of time it can save you, its absolutely worth it.  All the packages are precompiled and ready to go once the software installs them.  They even come with example code to get you started.

ForGE Instructions!

Instructions are now available for the ForGE framework. Please visit https://sourceforge.net/projects/fortran-forge and download the instructions.txt file.

ForGE v0.3.1

Version 0.3.1 of the ForGE framework has been released: https://sourceforge.net/projects/fortran-forge

The code has been rewritten to move to an object-oriented, static-library design. Documentation is severely lacking for now.

Changes to this version include:

  • Completely rewrote codebase to change to object-oriented design
  • More widgets added

Static Library Compilation Tip

If you’re going to compile a static library with gfortran, remember that you need to add ‘lib‘ as a prefix, and ‘.a‘ as a suffix, to the filename. So, for a library named ‘foo‘, you will need to compile it to ‘libfoo.a

Then add ‘-lfoo‘ to the linker arguments.

ForGE v0.2

Version 0.2 of the ForGE framework has been released: https://sourceforge.net/projects/fortran-forge

Changes to this version include:

  • Finished converting to object containers for each window, no more global variables for that
  • Changed named of handlers module to event_handlers for clarity
  • Added additional widget procedures: create_button, create_text_entry
  • Added example event handlers for new widgets