This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problems with STREAM I/0


Steve Kargl wrote:
Jerry,

I spent the day helping a colleague debug a problem with
the STREAM IO feature. I'm not sure if this is FreeBSD
specific, but I thought I'd get your opinion before filing a bug report.


Consider this code

program avl
   implicit none
   real dt, t, a(10)
   integer i
   dt = 1.e-6
   a = real( (/ (i, i=1, 10) /) )
   open(unit=11, file='a.dat', access='stream')
   open(unit=12, file='b.dat', access='stream')
   do i = 1, 10
      t = i * dt
      write(11) t
      write(12) a
   end do
   close(11)
   close(12)
end program avl

The file a.dat should contain 10 REAL values and thus have
a size of 40 bytes. The file b.dat has 100 values and should
have a size of 400. What I actuall see is


-rw-r--r--  1 kargl  kargl  - 396 Sep 12 17:04 a.dat
-rw-r--r--  1 kargl  kargl  - 436 Sep 12 17:04 b.dat

It appears that write(11) and write(12) are both writing
to both files.

Note, if I comment out the 'write(12) a' and erase the above files
I see

node10:kargl[229] ll *dat
-rw-r--r--  1 kargl  kargl  - 40 Sep 12 17:16 a.dat
-rw-r--r--  1 kargl  kargl  -  0 Sep 12 17:16 b.dat

which is what I expect.

Steve,

This is definitely a bug. If I comment out one of the writes, the file length of the file resulting from the remaining write is the correct length. (Either one, 40 or 400)

Not good!

Jerry


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]