FORMAT文について覚書

1 数字の扱い


A=1234567890

WRITE(*,*)A

STOP

END

というプログラムを書いた時。普通に実行すると

1.234568E+09

と表示された。

1.1 実数表示について


A=1234567890

WRITE(*,100)A

100 FORMAT(F14.8)

STOP
END

と書き換える。ここで

WRITE(*,100)A

はWRITE のフォーマット文が文番号100 にあることを示す。
この時の結果は

**************

と表示される。
結果に******が表示された時は与えられた値(現在はA) がフォーマット文で指定した内容で表示できないことをあらわす。
フォーマット文の内容F14.8
F 実数表示で
14 全部で14 文字で表し
.8 小数点以下は8 文字で表示せよ
と指定されている。この場合フォーマット文では小数点で1 文字、小数点以下の8 文字が指定されているの
で他に使えるのは5 文字である。しかしながらA は10 文字なのでエラー(**************) が表示され
た。これを解決するには小数点以下の文字数を減らしたり(F14.3 として小数点以下を3 文字にする)
全文字数を増やす(F20.8 として全部で20 文字にする) がある。

1.2 指数表示について

指数表示はF をE に変えるだけである。


100 FORMAT(E14.8)

とフォーマット文を書き換えて実行した時

0.12345679E+10

と表示される。
10の9乗(E+09) で表したい時は小数点を動かすのにP を用いる。

100 FORMAT(1PE14.8)

とフォーマット文を書き換えて実行すると小数点の位置が一桁ずれた

1.23456794E+09

と表示される。

2 文字の扱い


A=123456789
B=234567890
WRITE(*,100)A,B
100 FORMAT(E14.8,E14.8)
STOP
END

というプログラムを書いた時。普通に実行すると


0.12345679E+090.23456789E+09

と表示された。
フォーマット文を

100 FORMAT(' 値1 は',E14.8,' 値2 は',E14.8)

と書き換えて実行した時


値1 は0.12345679E+09 値2 は0.23456789E+09

と表示される。文字列は「'」(Shift+7 で出る) で囲み、数値は「,」で囲む。ただし、フォーマット文の最後
が数値の場合、閉めの「,」は書かない。
× 100 FORMAT(' 値1 は',E14.8,' 値2 は',E14.8,)
100 FORMAT(' 値1 は',E14.8,' 値2 は',E14.8)