• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FORTRAN90)

フォーマット指定方法についての質問

このQ&Aのポイント
  • FORTRAN90でファイル出力をフォーマット付きで行いたい場合、どのようにフォーマット指定を行えば良いのかについて質問しています。
  • 具体的な例として、character変数の文字にフォーマット指定の文字列を指定し、六つの実数を横一列に書き出す方法を知りたいとしています。
  • また、特定の部分を自動的に変える方法についても質問しています。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.4

>write(char,"(A,I1,A)")"'(",imax,"D13.5)'" write(char,"(A,I1,A)")"(",imax,"D13.5)" では? 質問文にも ' が入ってたようですね。フォントのせいで目立たず、見えませんでした。 何故 ' を書いたんでしょう?

0123456789A
質問者

お礼

手動でフォーマットを指定するときは"(3D13.5)"のように書くので charに文字を入れる時も''を付けてしまってました。 ご教授頂いた方法でできました。 ありがとうございます。

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.3

>状況といいますとどういったことになるのでしょうか。 お書きのプログラムを実行しようとしたときにどういう結果になったかということが全く書かれていません。望みの結果でなかったことだけはわかりますが。 xxxxx というコンパイルエラーメッセージが出たとか、実行時にコアダンプしたとか、そういったことが状況です。 あと、質問に書いているのはプログラムの断片だけでこれだけでは正しいとも間違っているとも判断できません。補足の4行のあとに質問の2行を書いてendを書いたものが全プログラムでしょうか?

0123456789A
質問者

補足

ご面倒をおかけしますm(__)m 念のためテストプログラムを書きました。 program test integer :: i,imax parameter(imax=3) real :: x(imax) character(LEN=40) :: char open(10,file="test.dat") write(char,"(A,I1,A)")"'(",imax,"D13.5)'" x(1) = 1.0 x(2) = 1.0 x(3) = 1.0 write(10,char)(x(i),i=1,imax) stop end program test これで出るエラーは forrtl: info (58): format syntax error at or near '(3D13.5)' forrtl: severe (62): syntax error in format, unit 10, file test.dat です。コアファイルなどは出てませんでした。 なんなんでしょう。。。?

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.2

良く使われる手段で何の問題も無いと思います。 うまく行かないのはどこかに誤りがあるためでしょう。 状況が全く示されていないのでこれ以上は何も言えません。

0123456789A
質問者

補足

ご回答ありがとうございます。 状況といいますとどういったことになるのでしょうか。 文字の定義は、 character(LEN=40) :: char integer :: Int real :: x,y,z,w,s,t プログラムは単純に Int = 6 とし、質問の操作をするだけのものです。 コンパイラはintel ifort OSはLinuxです。 他に必要な状況があればお願いします。

回答No.1

あなたコンパイラをインタプリタと思っていませんか?

関連するQ&A