Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!


  1. May 28, 2013 #1

    I'm having trouble with some FORTRAN code I'm trying to use.

    I receive an error:

    Code (Text):
    At line 769 of file ../src/mpolar.f (unit = 11, file = 'polarx.387')
    Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE
    Upon inspection of the code the following appears:

    Code (Text):
      55 READ(LU11,END=60) DUMMY
          GO TO 55
    C---- the polar dump file doesn't exist, so write new header
       56 CONTINUE
          WRITE(LU11) NAME, ' MSES   ', VERSION
          WRITE(LU11) NBL, II
          WRITE(LU11) (ILEB(N), ITEB(N), IIB(N), N=1, NBL)
          DO 59 N=1, NBL
            WRITE(LU11) (XB(IB,N), YB(IB,N), IB=1, IIB(N))
       59 CONTINUE
       60 CONTINUE
          END ! PXINIT
    as far as I understand the file is closing before it is written to. Upon inspection of the file system the file does get created but it is empty.

    Could someone possibly explain to me what the code is trying to do and possibly suggest a solution?

    I'm new to fortran code so I dont understand the syntax. Is there a good online manual for fortran?
  2. jcsd
  3. May 28, 2013 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Homework Helper

    Post your complete code. That may get you more suggestions. It's hard to follow what the routine is trying to do with just this snippet of code.
  4. May 28, 2013 #3
    I have attached the file that is giving me problems. The file is compiled with a makefile

    Attached Files:

  5. May 28, 2013 #4


    User Avatar

    Staff: Mentor

    The file is open with status='unknown', such that if the file does not exist, it is created. There is then a read attempt, which in your case reaches the end of the file because it has just been created by the open statement and is empty. This is followed by a write to the file (since line 769 can only be reached if the file did not previously exist), where the program complains that it can't write since the file pointer is now beyond the EOF marker.

    This is a strange behavior, probably a quirk of gcc, as a Fortran program would normally be expected to point just before the EOF marker when the EOF is reached. (I've tried with another compiler and the program executed normally.) To remedy the situation, just add the following line right after 56 CONTINUE:

  6. May 28, 2013 #5
    Thank you so much! It seems to be working! I guess the error shouldve been self explanatory but since I have no working knowledge of fortran I didnt know the syntax that I needed to get the programme working.

    Just to add, however, I was using gfortran not gcc. I dont know if that made a difference?

    As I asked before, what is a good online resource to learn fortran?
  7. May 28, 2013 #6


    User Avatar

    Staff: Mentor

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook