This link has been bookmarked by 3 people . It was first bookmarked on 02 Aug 2006, by (ta).
-
-
read 文と write 文における改行
Fortran は C とは違い、write 文を 1 回実行する度に
改行を行います。ゆえに、
(1) do i=1,n
write(6,*) a(i)
end do
(2) write(6,*) (a(i),i=1,n)
では異なる結果となります。(1) では一つの要素毎に
改行するのに対して、(2) では全ての要素を空白で繋げて
出力したのち改行します。write の場合よりもっと厄介なのが read です。
read は 1 行読んだ後に改行します。
----- ファイル data の内容 -----
1 2 3
4 5 6
7 8 9
10 11 12
空行
13 14 15
----- プログラム -----
dimension b(4),c(4)
open(1,file='data')
read(1,*) a
read(1,*) (b(i),i=1,2)
read(1,*) c <---- (c(i),i=1,4) と同じ
read(1,*) d
まず a に 1 が入るのは誰でも分かるでしょう。
次の b(1) には何が入るか? read 文は読み込み実行後に
改行するので、b(1) には次の行の 4 が入ります。b(2) は 5 です。
次の c(1) ~ c(4) はどうなるでしょうか。b(2) を読み込んだ後に
改行するので、c(1) は 7 です。そして c(2) = 8, c(3) = 9 と
入り、c(4) のところでその行には読み込むべきデータがなくなって
しまいます。このときはデータが見つかるまで改行をして c(4) には
次の行の 10 が入ります。d は 13 です。
-
-
-
Fortran プログラミングの基礎知識
-
Would you like to comment?
Join Diigo for a free account, or sign in if you are already a member.