知識の箱

主に気象を研究する上で得た知識と、WEBページ作成のために得た知識を記録しています。

fortranでbitデータの取扱い2~fortranでの読み込み~

元のデータが、1byte(16bit)で1個だけ入っているfortranでデータを読むには、

=======================================

program test
implicit none

integer(kind=1) :: var

open (unit=10, file=’test.dat’, form=’unformatted’,
access=’direct’, recl=1*1*1)

read (unit=10, rec=1) var

stop
end program test

=======================================

で読むことができる。

ここで入っているデータは、13という整数であるとしよう。

 read (unit=10, rec=1) var

の後に

 write(6,'(i2)’), var

と書けば、13と表示される。

一方、write文のformatをiではなくbと書くと、bit分解した、つまり、2進法で記載された表示になる。

 write(6,'(b8.8)’), var

今は、1byte=8bitなので、b8と書いている。
2byteならb16、4byteならb32と書けばよい。

こうすると出力は、

 00001101

b8.8ではなくb8と書くと先頭の0が表示されない。
つまり、1101と表示される。