Read start: end of file error in fortran

  • Fortran
  • Thread starter agalya
  • Start date
  • #1
9
0

Main Question or Discussion Point

Hi all,

do i = 1, 79
open(2,file=afiln(i),status='old')
do k = 1,11
read(2,'(51a)')astr1
enddo
do j=12,2000
read(2,22,end=23,err=23)iyr,imn,id,ih,imt,flx
write(7,*)i,j
obstim = float(id)*1440.0+float(ih)*60.0+float(imt)
if(obstim .eq. pt(i).and. flx.ne.1.0E33)then
if(flx .ge. 1.0)then
write(3,*)afiln(i),j,imn,id,ih,imt,flx
endif
endif
enddo
23 write(*,*)i
enddo

In the above program I'm reading 79 files of different length, no file is 2000 lines length. but at 40th file (length 1163) it isays read start: end of file.
Can somebody please help me rectufy this problem
Thanks
 

Answers and Replies

  • #2
minger
Science Advisor
1,495
2
Are you sure that your files are opening correctly? I thought that I've tried opening a file via string array and it not working real well.

Also, you may have problems since the files aren't always at least 2000 lines. You are trying to read data 2000 lines down on each file, for which there may not be there.

There are two ways around this. First, I believe you can basically "turn off" the error checking on the file read. It's an argument in the READ statement.

The better way would be to include a header line in each file stating how many lines of data that file contains. Then, instead of looping from j=12,2000, you loop from j=12,n.
 
  • #3
9
0
HI

Thanks for the reply, but none of the file is having 2000 lines(1450 lines only), up 40th file they go properly. I'm having problem for this file only(1163 lines). Dont understand why it is happening to this file alone since the "end" statement in the read works properly for other files.

* files are opening properly

thanks and regards
 
  • #4
minger
Science Advisor
1,495
2
Directly after you read the file, write it out using the exact same code (substituting READ for WRITE) and see what files are being written. You need to find out exactly what's happening in the code, and that's the best way. Are you actually reading what you think you are?
 
  • #5
221
0
Hi all,

do i = 1, 79
open(2,file=afiln(i),status='old')
do k = 1,11
read(2,'(51a)')astr1
enddo
do j=12,2000
read(2,22,end=23,err=23)iyr,imn,id,ih,imt,flx
write(7,*)i,j
obstim = float(id)*1440.0+float(ih)*60.0+float(imt)
if(obstim .eq. pt(i).and. flx.ne.1.0E33)then
if(flx .ge. 1.0)then
write(3,*)afiln(i),j,imn,id,ih,imt,flx
endif
endif
enddo
23 write(*,*)i
enddo

In the above program I'm reading 79 files of different length, no file is 2000 lines length. but at 40th file (length 1163) it isays read start: end of file.
Can somebody please help me rectufy this problem
Thanks
Don't know what your compiler thinks of 51a format...
shoudn't it be 51a1 or 51a2 or 51a4?
 

Related Threads on Read start: end of file error in fortran

Replies
5
Views
5K
Replies
2
Views
19K
Replies
19
Views
3K
Replies
2
Views
7K
Replies
4
Views
6K
Replies
5
Views
936
  • Last Post
Replies
2
Views
2K
Replies
1
Views
5K
Top