Wednesday, September 19, 2012

Fix for map65iq for latest gfortran

Posted to the WSJT and linrad mail lists...
 
According to
     http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52860,
gfortran revisions later than v4.4 handles writes to files at EndOfFile more strictly.

ftn_init.f90 reads to the end of ALL65.TXT file and leaves the file position just _after_ the EOF mark.  On my Ubuntu 12.04 system, Map65iq quits with the error...

    At line 56 of file decode1.f90 (unit = 21, file = 
'/home/jeff/ham/wsjt/branches/map65iq/ALL65.TXT')
    Fortran runtime error: Sequential READ or WRITE not allowed after EOF marker, possibly use REWIND or BACKSPACE

I fixed this by adding a backspace command to just before the decode1.f90 subroutine writes out the ALL65.TXT date line.  This positions the file pointer to just before the EOF mark.  See the patch below...

jeff, wa1hco

===================================================================
--- decode1.f90    (revision 2591)
+++ decode1.f90    (working copy)
@@ -50,6 +50,10 @@
       rewind 21
       ns0=999999
    endif
+
+! wa1hco: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52860
+  backspace(21)
+
    if(n.lt.ns0 .and. utcdate(1:1).eq.'2') then

       call cs_lock('decode1a')

No comments:

Post a Comment