Помогите разобраться с I/O в Fortran. Нужно сделать бинарный файл и дописать в начало число 'строк', чтобы другая программа смогла понять его.
Сначала пишу файл, используя stream, и считаю число 'строк'.
Потом дописываю в этот же файл число 'строк' в начало. Получается неправильно. Проблема явно в том, что я неправильно дописываю. 
Подскажите как сделать правильно?
program test
  implicit none
  real(8) :: coord(4)
  integer :: i,j,k
  
  open(unit=12,file="sample.bin",access='stream',&
       form='unformatted',status='unknown')
  k=0
  do i=1,100,1
     do j=1,10,1
        call random_number(coord)
        coord=(coord-0.5_8)*10._8
        if(coord(1)>0) then
           write(12)  i,j,coord
           k=k+1
        else
           exit
        end if
     end do
  end do
  ! output 1
  read(12,pos=1)
  read(12) i,j,coord
  write(*,*) k
  write(*,*) i,j,coord
  ! add # of lines
  write(12,pos=1) k  
  ! output 2
  read(12,pos=1)
  read(12) k
  read(12) i,j,coord
  write(*,*) k
  write(*,*) i,j,coord
  close(12)
  
end program test
 
  -- Пн янв 21, 2013 13:57:21 --Как я понял, когда добавляю в начало число, то я перезаписываю то, что там было. Можно ли добавить без перезаписи?
-- Пн янв 21, 2013 14:02:05 --Спасибо, уже разобрался. Нужно было просто записать в начало что не жалко потом переписать.
Код:
k=0
  do i=1,100,1
     do j=1,10,1
        call random_number(coord)
        coord=(coord-0.5_8)*10._8
        if(coord(1)>0) then
           if(k==0) write(12)  0,i,j,coord
           if(k>0)  write(12)  i,j,coord
           k=k+1
        else
          exit
        end if
     end do
  end do