アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者です。
簡単にするため以下のようなコードを書きます。

real d
do 100 d=0,0.4,0.001
write(*,*)'d=',d
OPEN(10, FILE='delta.txt', action='write')
write(10,*) d
close(10)
100 continue
end

このコードだと、TextFileにはなぜか一つの値しか書かれません。dの値を0から0.4まで0.001刻みで、すべての値を書き出すにはどうすればよいのでしょうか?
なにとぞよろしくお願いします。

A 回答 (4件)

なんでループの中で、毎回毎回ファイルをオープンしては閉じているのでしょう?


ループの外で開いて、ループで書き込み、ループから出たところでクローズ。
で良いと思いますが。

この回答への補足

追加に質問してもよろしいでしょうか?
このコードで計算した結果を、gnuplotなどのソフトを用いて、計算と同時にグラフを書かせることは可能なのでしょうか?

補足日時:2007/07/20 12:51
    • good
    • 0
この回答へのお礼

ありがとうございます!書き出すことができました。

お礼日時:2007/07/20 12:51

> 使用しているfortranは「Fjitsu Fortran&C Academic Package V4.0L10」というものです。


> これを使ってグラフは書けるのでしょうか。

これですか↓

Fortran&C Academic Package : 富士通
http://software.fujitsu.com/jp/fcaca/

Fortranでサポートしている独自の拡張機能
とかが
ぜんぜんわからないのでなんともいえませんねえ。

ただ、Cプログラムと混ぜてリンクできるようなので、

> write(10,*) d

のようにFortanプログラムで書かれている部分を、
Cで組んだ出力ルーチンに渡すようにすればいいんじゃないですかね。

で、そのCの部分をどう書くかですが、
お手軽には

Controling GNUPLOT from your C program
http://tortoise1.math.ryukoku.ac.jp/~takataka/gn …
にあるような popenを使った形でいいんじゃないでしょうか。
多分サポートOSのどれでも使えますし。

ただ質問にあるFortranプログラムではループの中で
出力しているので、
Cプログラムを
・popen する関数
・出力する関数
・pcloseする関数
に分けて、適切なタイミングでそれらを
Fortran側から呼ぶなどしないといけないでしょう。

動くコードをくれという話なら有料です :)
    • good
    • 0
この回答へのお礼

何度も丁寧に回答ありがとうございます。
紹介していただいたサイト等を参考にもう少し学んでみます。

お礼日時:2007/07/22 02:12

> このコードで計算した結果を、gnuplotなどのソフトを用いて、計算と同時にグラフを書かせることは可能なのでしょうか?



可能か否かということであれば可能です。
子プロセスでgnuplotを立ち上げて、その標準入力に向けて
コマンドやデータを放り込むだけです。

しかし、このプロセス起動等があなたの使っている
Fortranコンパイラでできるかどうかがわかりませんので、
質問の直接の答えは「わかりません」です。

ついでにdoのほうも
Fortran90 PROGRAMMING_Sec5
http://ocw.kyoto-u.ac.jp/jp/common/course10/reso …
にあるように
do の直後の文番号がなく、ループの終端に
end do をおきます。


do d=0,0.4,0.001
write(*,*)'d=',d
write(10,*) d
end do

こんな感じ。

この回答への補足

使用しているfortranは「Fjitsu Fortran&C Academic Package V4.0L10」というものです。
これを使ってグラフは書けるのでしょうか。
書けるのであれば、実際の操作を教えていただけないでしょうか?
何度も失礼します。

補足日時:2007/07/20 16:01
    • good
    • 0
この回答へのお礼

再び御回答ありがとうございます。

お礼日時:2007/07/20 16:01

せっかく、fortan90/95を使うなら、ラベル付doではなくて、構造化Do文(do,end do)を使ったほうがいいと思います。


f77との互換性が必要というなら別ですが。
    • good
    • 0
この回答へのお礼

即答感謝します!
構造化Do文というのはどのように使用すればよいのでしょうか?
以前に見た書籍では、ほとんどこのコードと同様の形で書いてあったので・・・
ご迷惑をかけますが、初心者でサッパリわかりません。よろしくお願いします。

お礼日時:2007/07/20 12:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!