Topic: Fortran 77

Does Simply Fortran handle Fortran 77 without any problems?

Re: Fortran 77

Yes, the compiler should have no problem compiling Fortran 77 code.  You may have to add the compiler flag

-std=legacy

under Compiler Options (accessible from the Options menu) to enforce conformance with the older standard.

If you'd like to try before registering, Simply Fortran is free to use for the first 30 days.  It may be downloaded at http://simplyfortran.com/download/.

Jeff Armstrong
Approximatrix, LLC

3 (edited by JohnWasilewski 2013-02-21 12:24:16)

Re: Fortran 77

To illustrate Jeff's reply...

I have a current project for structural analysis of 2-dimensional rigid frames, which had something like 8,000 lines of F77 code when I started using Simply Fortran ('SF') for its ongoing development. 
The whole thing compiled almost straight away when I showed it to SF.  The only things that didn't work immediately were (i) a very small number of non-standard extensions to F77 which I had used because they appeared to be gaining wide acceptance among compilers, such as 'ENCODE' and 'DECODE', and (ii) system-dependent code, which I had needed in my original version.

I had used very few non-standard extensions to F77, and most of the well-known ones which I had used have in any event been implemented in F95 onwards, so there were very few of them which needed some very minor alterations to the source code.  The kind of system-dependent code I had used of necessity included things like functions to retrieve the  system system date, the command line, etc., functions used to delete files, functions used to erase the console screen, move the cursor backwards, read a single keypress and so forth.  Knowing that these would differ in every implementation, I had given them all my own function names and alll were coded together in a single system-dependent source file.  GNU Fortran was able to handle all of my needs, and I needed to rewrite just this one file out of more than thirty source files in all.

My original code had implemented a dynamic storage strategy, allowing many arrays to be dimensioned at run-time.  F77 does not include this but I was able to provided it in how I devised my source code.  I made heavy use of one-dimensional arrays declared as being of length 1, and then addressing them outside the declared address range. 
eg            REAL*8  STIFF(1).
                READ(LUI, 10) N
        10    FORMAT (I3)
                DO 100 I=1,N
      100    STIFF(I) = {some value}

All of this worked perfectly in SF, at the first attempt.

As I have continued developing my code, it has expanded to around 10,000 lines, and I have been making full use of F95 facilities, to take advantage of all that we can now do in FORTRAN.  I've also implemented a Windows user interface and RTF output files (readable as formatted M$Word documents) in place of the original console-prompted i/o.  I use the DISLIN library for the Windows graphic screen functions.
---
John