• ベストアンサー

commonで定義した変数を文字型に変換してファイル名に使いたいのですが(fortran)

たとえば計算ループの反復回数のカウントにniterという変数を使っているとします。 niterが10の倍数になる度にniterの数をファイル名にしてそれぞれの結果をそれぞれのファイルに出力したいのですが,うまくいきません。 open(10,file='file' // CHAR(ICHAR('0'+niter) // '.txt' &,status='unknown') のようにするようにと教わったのですが、これだけではうまくいかないので詳しい方教えていただけませんか? 

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.1

詳しいというわけでもありませんが。 > CHAR(ICHAR('0')+niter) これでは一桁の数にしか対応できないのではないでしょうか? 10の倍数であれば、10で割って CHAR(ICHAR('0')+niter/10) としてみては。 二桁以上に対応しようとすると、CHAR/ICHARでもできなくはないですが、面倒なので私なら、 character*10 filename write(filename,'("file",I2.2,".txt")') niter open(10,file=filename) としちゃいます。

masa2-1
質問者

お礼

ありがとうございます。 早速やってみました。できました。 文字型なんて使ったことなかったんで 助かりました。

関連するQ&A