Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Read start: end of file error in fortran

  1. Sep 17, 2010 #1
    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
     
  2. jcsd
  3. Sep 17, 2010 #2

    minger

    User Avatar
    Science Advisor

    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.
     
  4. Sep 19, 2010 #3
    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
     
  5. Sep 19, 2010 #4

    minger

    User Avatar
    Science Advisor

    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?
     
  6. Sep 21, 2010 #5
    Don't know what your compiler thinks of 51a format...
    shoudn't it be 51a1 or 51a2 or 51a4?
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook