How is it even possible?? Yesterday I had nothing to do at work, so I decided to move the entire project from VS 2008 Pro + IVF10 to Code::Blocks 12.11 with gfortran 4.7 or something, just to play with new tools and pass some time. I was shocked to find that gfortran found THOUSANDS of errors, either real compiler errors or simple warnings that are simple warnings because of Fortran's archaic rules but are actually subtle bugs which I would NEVER find using IVF. One example above all (please disregard the code itself, it's legacy and horrible and I didn't even read it):
Not even a warning? What is ''C ?? Ok, let's see gfortran:
How could this slip through? I compiled with IVF using -Wall (or its equivalent)!!!
Pls don't say "it's the old version, IVF Composer 2013 works fine", this product was paid for and 2008 is just a few years ago!!
Other examples of mistakes not caught:
FORMAT('Error at line number ', I) instead of FORMAT('Error at line number ', I3)
gfortran's message: "error: you must give a non-null width for the number in the format statement" (or something like that)!! There were hundreds of these typos, and not a single word from IVF!
And above all: not a single warning about the use of uninitialized variables! How many times have I had to debug at runtime this (awful) legacy code because a parameter was moved from an include file to another, leaving an implicitly decleared variable uninitialized in every subroutine that includes the old include file?? Wow...really shocked.
Am I missing anything? Because I used the option to warn for everything...but the best it can do is warn against implicitly declared variables, HOW USEFUL!