Fortran のフォーマット ステートメントについて頭を悩ませています。
出力をフォーマットせずに、これが私が行うことです(ループ内で、これは数回発生します):
write(*,*) t*1E9
t
こちらですreal*8
。出力はまさに私が期待するものです-0.1の増分で、いくつかの丸め誤差があります:
0.0000000000000000
0.10000000000000001
0.20000000000000001
0.29999999999999999
0.40000000000000002
0.50000000000000000
0.59999999999999998
0.69999999999999996
0.79999999999999993
0.89999999999999991
0.99999999999999989
ここで、format ステートメントを追加してみます。
write(*, '(F1.2)') t*1E9
そして(他のすべては同じです)代わりに、出力にアスタリスクのみが表示されます:
**
**
(etc...)
これがどのように機能するかを調べてみましたが、なぜこれが起こっているのかわかりません。数字のスペースを増やしてフォーマットを試しました(F15.15
1行あたりのアスタリスクを増やすだけです)、フォーマットステートメントを独自のラベル付き行に移動しようとしました...出力が得られないようですお気に入り。
ここで何が欠けていますか?