• ベストアンサー

Fortranですが

少し説明しにくいのですが、、、 計算した結果をファイルに書き込むときに、 n=1だったらfile1.dat n=2だったらfile2.dat n=NだったらfileN.dat っという具合に自動的にデータファイルを作って、書き込んでくれるプログラムを作りたいのですが、こんなことはできますか? 贅沢を言いますと、 n=1だったらfile1_10.dat n=2だったらfile11_20.dat n=NだったらfileL_M.dat のような感じでLとM(上の場合はN)を変数としたデータファイルを作りたいです。 分かりにくい場合は補足要求お願いします。

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

  • ベストアンサー
回答No.2

手っ取り早く     character fn*20     write(fn,1001) 'file',n,'.dat'  1001 format(a4,i2,a4) とでもすればどうですか?fnにファイル名が入ります。 これだとformatの中がi2なのでnが1桁の時は1つ空白が出来てしまうし、3桁とか4桁だと入りきりませんが、その辺りの処理はお任せします。 変数が複数あっても同様です。

kiki2142
質問者

お礼

ご回答ありがとうございます。 無事思っていた通りにできました。

その他の回答 (2)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

こんな感じです。(cygwinのg77で動作確認) CHARACTER*30 FNAME L = 10 M = 20 WRITE(FNAME,100) 'file',L,'_',M,'.dat' 100 FORMAT(A,I2,A,I2,A) OPEN(4,file=FNAME) WRITE(4,*) 'ABCDE' CLOSE(4) しかし、formatのI2があるため、L,Mは2桁の場合しか正しく動作しません。 一桁だと空白が入るし、3桁以上だと*になるし。 FORTRANによるともう少し気の利いた変換があるかも知れませんが。

kiki2142
質問者

お礼

ご回答ありがとうございます。 少しformat文に工夫が必要みたいですね。 こちらは自分で考えてみます。

  • colocolo62
  • ベストアンサー率32% (1162/3624)
回答No.1

open文で、開くファイル名と番地を関連付けておいて、writeする際の番地と対応させれば出来るのではないでしょうか。

kiki2142
質問者

お礼

ご回答ありがとうございました。

関連するQ&A