Fortran read

  1. Dear Members,

    How can I read an MS Excel created csv or tab delimited file in FORTRAN 77? The two tab delimited and csv files are attached.

    Thank you,

    Ekin
     

    Attached Files:

  2. jcsd
  3. Rename the file to Gucu.txt and try the following code:
    Code (Text):

          INTEGER NLINES, NVALUES
          PARAMETER(NLINES=7,NVALUES=5)
          REAL*8 VAL(NLINES,NVALUES)
          OPEN(1,FILE='GUCU.TXT')
          DO 5 I=1,NLINES
        5 READ(1,*)(VAL(I,J),J=1,NVALUES)
          DO 15 I=1,NLINES
       15 WRITE(6,'(5F10.3)')(VAL(I,J),J=1,NVALUES)
          STOP
          END
     
  4. ign

    ign 5

    Hello, I am also trying to read from a csv or txt file in Fortran and
    I have tried the commands that "mathmate" provided for the Gucu.txt
    (using "ekinakoglu" 's file).
    but i got this error :
    > At line 10 of file readexcel.f90
    > Fortran runtime error: End of file

    line 10 is: 5 READ(1,*)(VAL(I,J),J=1,NVALUES)

    can anyone help me on this?

    thank you in advance

    Ign
     
  5. I just tested again the execution of the above program and everything works fine.
    You may want to verify the content of the given text tile gucu.txt, shown below:
    Code (Text):

    0.1414607   2.1 12  0.9 0.175
    1.607   10  39.2    0   0.255102
    35  32  137 0.03990063  0.2335766
    8.806   325 -999    0.8399166   -999
    -999    -999    -999    0.9591094   -999
     
    Sometimes there are extra characters introduced when you download a file, or a newline missing. You can compare the contents. If all else fails, add a blank line after the last, and delete it. This will ensure you have a newline of your system.
    Again, if it does not work, try printing what you read.
     
  6. ign

    ign 5

    hello, thank you for the reply

    i still get the same error
    >At line 7 of file readexcel.f90
    >Fortran runtime error: End of file

    by the zay the data you pasted was missing two lines I believe

    anyway the file I want the fortran program to read looks like this:
    [stationID and feature]

    A2332110 PLUVI
    A2352020 PLUVI
    A3301010 NIVAL
    A3422010 PLUVI
    A3792010 TRANS
    A3832010 PLUVI

    I have tried to modify the commands you provided for the old file
    to work with this new one but I get an error back ! thank you in advance

    program readfile
    INTEGER NLINES, NVALUES
    PARAMETER(NLINES=6,NVALUES=2)
    CHARACTER*8 VAL(NLINES,NVALUES)
    OPEN(1,FILE='stationvsregimeetiage04june09.TXT')
    DO 5 I=1,NLINES
    5 READ(1,*)(VAL(I,J),J=1,NVALUES) ! Line 8
    DO 15 I=1,NLINES
    15 WRITE(6,*)(VAL(I,J),J=1,NVALUES)
    STOP
    END

    At line 8 of file readfile.f90
    Fortran runtime error: End of file
     
  7. I picked up your data and ran the following program. The results print correctly.
    Code (Text):

          INTEGER NLINES, NVALUES
          PARAMETER(NLINES=6,NVALUES=2)
          CHARACTER*8 VAL(NLINES,NVALUES)
          OPEN(1,FILE='CSV.DAT')
          DO 5 I=1,NLINES
        5 READ(1,*)(VAL(I,J),J=1,NVALUES)
          DO 15 I=1,NLINES
       15 WRITE(6,'(5A10)')(VAL(I,J),J=1,NVALUES)
          STOP
          END
     
    Results:
    Code (Text):

     A2332110  PLUVI
     A2352020  PLUVI
     A3301010  NIVAL
     A3422010  PLUVI
     A3792010  TRANS
     A3832010  PLUVI
     
    Perhaps you could shorten the file name to 8 characters and see if it helps.
     
    Last edited: Jun 4, 2009
  8. ign

    ign 5

    it eventually worked, thank you

    I simply saved the same file as text UTF-8 with no .txt extension and it worked great
    I don't know if it's related to the compiler (gfortran) or the system (linux ubuntu), no idea

    ig
     
  9. It may be that gfortran defaults to utf-8 which is not compatible with the native code for ubuntu. You may want to do some tests with text files created in ubuntu using native editors such as EMACS or vi.

    But I'm glad it all works out.
     
  10. Hi!!

    I am trying to open the attached xls or txt file with fortran 90-95.
    Firstly, is the data in the correct position?
    Is the previous code applicable to read and process my data?
    My pusrpose is to create an array 20*20 with total 400 numbers in each cell.
    For any other suggestion of other codes I will be really grateful.

    Thanks for the attention.
     
  11. The files are here..
     

    Attached Files:

Know someone interested in this topic? Share a link to this question via email, Google+, Twitter, or Facebook