fortrangfortranfortran77

Proper Fortran compiler to execute a program


I have little knowledge of the Fortran language. I have come across some programs written in the 90s (see attached snapshot showing just a portion of a long script).

enter image description here

I'd like to know what kind of compiler is appropriate to execute such codes? I have installed gfortran-4.2.3 on my mac. I'm also not sure about the indentation in the attached code: if C (comment) is at column 1, does the main code start at column 9 or 7? what about the position of numbers placed in between referred by GO TO?


Solution

  • This is not Fortran 90. This is Fortran 77.

    That said, gfortran is able to compile this code. Make sure that the file extension for the file is .f so that gfortran realises it's fixed-form.

    The C needs to be in the first column, the numbers that you reference are labels, they can be between column 1 and 5. The asterisk at line 198 is a continuation character, meaning that this should be treated as part of the previous line. It must be in column 6. Everything else needs to be between columns 7 and 72 (inclusive)

    Oh, and the 3-digit numbers at the very beginning are line numbers, and must not be in the source code.

    Edited to add: Since you have to type it all again anyway, you might as well make it free-form:

    Replace the C in the first column with !, and change the way continuation lines are marked: Turn this:

          write (*, *) "This is some long text,  
         *  which doesn't fit into a line"
    

    Into this:

    write(*, *) "This is some long text, " // &
         "which doesn't fit into a line"
    

    Everything else can stay like it is. (You can now use proper indentation, too!)

    New Edit

    So you've pasted the code that you wrote and the error messages, so I'm replying to that now.

    In Fixed Form, any character past column 72 is ignored. You have a few lines with long strings, where the terminating quotation mark is in that ignored region.

    Make sure that no line exceeds the 72nd row.