2008年4月22日火曜日

書式

いままでは一つの実行ファイルで計算を全部最初から終わりまで処理してたんだが、今回のは、最後の手続きがやたらとパラメーターをいじって調整しないといけないので分離させたほうが効率がよさげ。というわけで初めてファイルからのデーターの読み出しするようなコードを書く必要に迫られた。
fortranは書式ちゃんとかかないと変になる。しかも知らんかったらなんじゃこれな形式。本とかもあんまり詳しく書いてくれてない。

自分用にちょろっとまとめ


ファイルへの書き込み
open(ファイルの番号,file="ファイル名")
write(番号,'(書式)')
・・・
close(番号)


読み出し
open(ファイルの番号,file="ファイル名")
read(番号,'(書式)')
・・・
close(番号)


書式
A character
I integer
F real
E 指数表示の実数(1.23D-002みたいな)

これらのうしろに何桁かを指定する数字をつける。たとえば

A10 (10文字分)
I10 (十桁の整数)
F9.4 (全部で9桁、小数点以下4桁。前の数字は後ろ+3以上を推奨)
E12.5 (全部で12桁、小数点以下5桁。前の数字は後ろ+7以上を推奨)

倍精度だとE21.14ぐらいでちょうどよさそう?

空白については 9Xというように空白の数+Xであらわす

繰り返し処理
read(10,'(2E21.14)')のように、書式の前に2とかの数字をつけるとその回数分繰り返される。しかし、read文実行時は空白を空白として認識してくれないので、データーの間に空白があるときはその分も考えて桁数指定しないといけない。

0 コメント: