Physics Forums

Physics Forums (http://www.physicsforums.com/index.php)
-   Programming & Computer Science (http://www.physicsforums.com/forumdisplay.php?f=165)
-   -   Fortran read (http://www.physicsforums.com/showthread.php?t=315838)

ekinakoglu May23-09 08:58 AM

Fortran read
 
1 Attachment(s)
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

mathmate May23-09 11:23 AM

Re: Fortran read
 
Rename the file to Gucu.txt and try the following code:
Code:

      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


ign Jun4-09 04:45 AM

Re: Fortran read
 
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

mathmate Jun4-09 07:37 AM

Re: Fortran read
 
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:

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.

ign Jun4-09 09:31 AM

Re: Fortran read
 
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

mathmate Jun4-09 02:02 PM

Re: Fortran read
 
I picked up your data and ran the following program. The results print correctly.
Code:

      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:

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.

ign Jun5-09 09:05 AM

Re: Fortran read
 
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

mathmate Jun5-09 10:19 AM

Re: Fortran read
 
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.

kostas18ns Oct6-11 08:41 AM

Re: Fortran read
 
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.

kostas18ns Oct6-11 08:43 AM

Fortran read
 
1 Attachment(s)
The files are here..


All times are GMT -5. The time now is 03:57 AM.

Powered by vBulletin Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
© 2014 Physics Forums