みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

fortranのwrite文について

fortranで数値計算をしています。
計算結果をdatファイルに出力する際、
長い変数名の数値を30列(1列は1000行以上)以上にわたって出力したいことがあります。
現在は、それぞれの変数名を横並びにプログラムに書き、
かつ、1行あたりの文字列の制限もあるので、
&記号を使って、無理やり出力しています。
具体的には、
do i=1,1000,1
write(1000,*)aaaaaaaaaaaaaaaa(i),&
&bbbbbbbbbbbbbbbb(i),&
&cccccccccccccccc(i),&
&dddddddddddddddd(i),&
........
end do

という形です。
もっとスマートにかけないでしょうか?

投稿日時 - 2012-10-12 18:41:42

QNo.7745161

困ってます

質問者が選んだベストアンサー

列に対して変数名が違いますので、あまり良い方法は無いと思います。

&でやらずに、適当な単位でwrite文を分けて改行しないという書き方もできます。
http://www.nag-j.co.jp/fortran/FI_18.html#AUTOTOC_18_2

二次元配列に入れて出力するという方法もありますが、各変数を二次元配列に入れ直さないといけませんので手間はあまり変わらないような気がします。

もう一つは、最初から二次元配列として宣言して、
real :: var(30,1000)
integer, parameter :: aaaaaaaaaaaaaaaa = 1
integer, parameter :: bbbbbbbbbbbbbbbb = 2
のようにパラメータとし、
var(aaaaaaaaaaaaaaaa, 1)=879.0
var(bbbbbbbbbbbbbbbb, 1)=123.9
のようにするかでしょうか。

投稿日時 - 2012-10-15 18:55:00

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問