Fortran Fortran77 end-of-file error reading formatted input

AI Thread Summary
The discussion revolves around reading a formatted file containing six columns of data in Fortran, particularly focusing on handling an unknown number of rows without encountering end-of-file errors. The user seeks to implement a loop that reads data until the end of the file, using the END parameter in the READ statement. However, they initially misunderstand the use of the END parameter, mistaking the label for data. After receiving guidance on structuring the loop and correcting syntax errors related to variable type declarations, the user encounters a new issue where the loop does not execute, resulting in a count of zero for the number of points read. The need for further assistance is emphasized, with a suggestion to share the program for more targeted help.
gcc2012
Messages
3
Reaction score
0
Hi,

I am new to the forum, apologies if I break any rule posting a new thread. I could not find the answer in similar threads came up after searching the forum.

I want to read a formatted file of six column data. Reading works OK, but I want to put it into a do loop with the repeat as many as number of lines(rows) in the file and stops when reaching the end without complaining about the 'end of file'. I find in various sites that there is END parameter that can be used in READ, WRITE statements, e.g.,

READ (UNIT=15, FMT=2000, END=999)
and '999' at the end of file, but this does not work..

I am not so much into Fortran, so I do not understand the explanations of 'sequential', 'list directed', etc. exceptions to using END. And I do not know any other way of handling this.
Any help would be great!

gcc2012
 
Technology news on Phys.org
The 999 is a statement label in your program, not the data on the last line of the input file.

Do something like
Code:
do i = 1,n
  READ (UNIT=15, FMT=2000, END=999) a(i),b(i),c(i),d(i),e(i),f(i)
enddo
999 npoints = i - 1
where "npoints" will be the number of lines that you read from the file (or it will be equal to n, if the file contained more than n lines of data)
 
Thanks AlephZero, I tried that way and it gives syntax error.
How would you read the data file organized as follows:

- sequential formatted
- six columns of real numbers
- number of rows are not always known

My immediate goal is to get the data read and each column would form an individual array. It is easy if one knows the number of lines. But, I did not see any elegant way of getting the number of rows and using it for do loops later, or getting the data read until end-of-file and code continues to run without 'end of file' error.

any suggestion?
 
gcc2012 said:
I tried that way and it gives syntax error.
If you post the message, we might be able to help. If you don't, we can't.

How would you read the data file organized as follows:

- sequential formatted
- six columns of real numbers
- number of rows are not always known
I would do it the way I already posted.
 
Thanks AlephZero.

I sorted out the syntax error, it was due to the variable type declaration.

But, now I have another problem. It does not execute the do loop at all. I print out 'npoints' and the value is 0.

What would be wrong?

No error message in this case.

gcc2012
 
You need to post the program.
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...

Similar threads

Replies
8
Views
1K
Replies
1
Views
3K
Replies
5
Views
5K
Replies
12
Views
3K
Replies
6
Views
2K
Replies
22
Views
4K
Replies
5
Views
2K
Replies
2
Views
3K
Replies
8
Views
2K
Back
Top