• Fortran

## Main Question or Discussion Point

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

#### Attachments

• 490 bytes Views: 265

Related Programming and Computer Science News on Phys.org
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
DO 15 I=1,NLINES
15 WRITE(6,'(5F10.3)')(VAL(I,J),J=1,NVALUES)
STOP
END

ign
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

can anyone help me on this?

Ign

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
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

INTEGER NLINES, NVALUES
PARAMETER(NLINES=6,NVALUES=2)
CHARACTER*8 VAL(NLINES,NVALUES)
OPEN(1,FILE='stationvsregimeetiage04june09.TXT')
DO 5 I=1,NLINES
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

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
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.

Last edited:
ign
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

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.

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.

The files are here..

#### Attachments

• 1.2 KB Views: 336