2008年7月3日 メモ  今日の話題 : バイナリデータ データの書かれ方を確認するには Cygwin 上で od od -a ファイル名     データを文字として od -i ファイル名     データを整数として  od -f ファイル名     データを実数として write(*,*) のような書き込みは、数値も文字にして書いている バイナリデータの書き方 program writetest implicit none integer :: i real :: x i = 99 x = 99.0 open(unit=12, file='testdata.bin', form='unformatted', & access='direct', recl=10) write(unit=12, rec=1) i, x, 'A' close(12) stop end バイナリデータはどう書き込まれたか知らないと読めない 普通読みだすにはプログラムが必要 読み出しソフトの例 program writetest implicit none integer :: i real :: x character :: c*1 open(unit=12, file='testdata.bin', form='unformatted', & access='direct', recl=10) read(unit=12, rec=1) i, x, c write(*,*) i, x, c close(12) stop end 通常、単純なフォーマットの場合が多い たとえば program writetest implicit none integer, parameter :: n=100, m=200 integer :: i, j real :: x(n,m) ! set values do i=1, n do j=1, m x(i, j) = 100 * i + j end do end do ! write data open(unit=12, file='testdata2.bin', form='unformatted', & access='direct', recl=4*m) do i=1, n write(unit=12, rec=i) ( x(i,j), j=1,m) end do close(12) ! read data open(unit=12, file='testdata2.bin', form='unformatted', & access='direct', recl=4*m) do i=1, n read(unit=12, rec=i) ( x(i,j), j=1,m) write(*,*) ( x(i,j), j=1,m ) end do close(12) stop end