Windows Me上でCompaq Visual Fortran 6.0を使用しています。

ほぼ同じようなプログラムですが、パラメータが異なり、
明らかに違う計算結果になるはずなのですが、
まったく同じ数字が出てきてしまいます。

コンパイルして作られたexeファイルが同一であると思われるのですが、
どなたか分かりますでしょうか。

A 回答 (1件)

 どのようなプログラムなのかは知らないので自信持てませんが、その二つのプログラムは同じWorkspaceでコンパイルしている(つまりコンパイルしてもEXEファイルが1つしか作られない)状態じゃありません?



 本来、一つのプログラムに対してEXEファイル1個ですよね?

 あと、パラメータはRealで定義してますか?integerで定義してますか?

 同じ計算結果になるというのなら、バグ探しのコツは、一方のプログラム中の計算式を大幅にいじってみるといいんじゃないかな?

  
    • good
    • 0
この回答へのお礼

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

Workspaceに問題がありそうです。
毎回コンパイルするごとにWorkspaceを削除しながらコンパイルしていたのですが、
フォルダ自体は同じフォルダだったので、
今回はフォルダごと削除し、新たなフォルダでコンパイルしたらうまく行ったようです。

ちなみにパラメータは、commonで変数定義して後で数値代入しています。

お礼日時:2002/02/11 04:36

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCompaqのVisual Fortranの使い方について

CompaqのVisual Fortranを使っているのですが,英語なので使い方がよく分かりません.このソフトの使い方を説明している本やサイトがありましたら,教えてください.(Fortranの文法自体はある程度分かります.)

Aベストアンサー

compaq visual fortranで検索するとすぐに以下のページが
出てきますよ。
http://www1.jpn.hp.com/products/software/development/dvf/

QCompaq Visual Fortranを使っていて困っています。

Compaq Visual Fortranを使っているのですが、バッチファイルを使って実行を何度も行いたいのですが、毎回実行が終わるたびに「QuickWinを終了しますか?」というウィンドウが出てきてyes を押さないと次の実行に移りません。この操作をせずに何度も実行を行う方法をご存知の方、よろしければ教えてください。よろしくお願いいたします。

Aベストアンサー

参考まで、

Compaq Visual Fortran の日本語マニュアルなどはエクセルソフト株式会社のホームページ http://www.xlsoft.com/jp/products/intel/cvf/index.html で公開しておりますので,適宜ご利用いただけますよう,お願いいたします。

弊社が保有しておりますユーザ登録情報は,個人情報保護の観点からエクセルソフト株式会社へは移管いたしておりません。今後 Intel Visual Fortran の情報を必要とされるお客様は,大変お手数ですが,エクセルソフト株式会社へお申し込みいただけますよう,お願いいたします。

以上,よろしくお願いいたします。


敬具

2004年6月
日本ヒューレット・パッカード株式会社

QFortran90/Fortran95→Fortran77

大学の授業でFortranを使ったプログラミングを勉強しています。

以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます)
大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^;
家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています

なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコンパイルしているからだと思います(全くの勘違いだったら指摘して下さい)

Fortran90/Fortran95の開発環境がフリーで整えばいいのですが、見つからないのでプログラムを修正したいと思います そこで、力を貸していただきたいのです

前置きが長くなりましたが、エラーが出る文は以下のところです
open(8,file='freq_ex13.dat',action='write',status='replace')
ここを、Fortran77のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

大学の授業でFortranを使ったプログラミングを勉強しています。

以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます)
大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^;
家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています

なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコン...続きを読む

Aベストアンサー

action='write'を削除してみては?
8番にREADを使わなければいいだけの話です。
http://docs.hp.com/ja/B3908-90007/ch10s65.html#id21163286

Fortranはコンパイラ毎に独自の拡張が相当されてますから、移植する際にはどの拡張が使えるのか把握する必要があります。
使えない場合はコンパイルエラーが返ってくるのですぐにわかりますけど。
http://www.cc.nao.ac.jp/vppman/HTML/japan/langFort/fvp11/fvp00079.htm

参考URL:http://docs.hp.com/ja/B3908-90007/ch10s65.html#id21163286

QFortran コンパイルエラー

Cygwin上でFortranを用いて流体の数値解析を行っています。
先輩から引き継いだシミュレーションコードなのでプログラムをいじらなくても実行できるだろうと思ったのですが、コンパイル時に以下のエラーが出てしまい、いろいろ試行錯誤しましたが自力では解決できませんでした。

エラーは次のとおりです。何かご存知の方アドバイス頂けたらありがたいです。○はスペースです。カンマの下に1があります。

op.f:13.21:
○101 format(i,4e)
○○○○○○1     
Error:Nonnegative width reqired in format string at (1)

Aベストアンサー

format で使う書式文字列を再確認してください.
エラーメッセージの通りで, I編集にはそのあとに幅を書く必要があります.

Qfortran77 自宅ではコンパイルできないので

課題が出ているのですが、
自宅のパソコンではコンパイルできないので、
このプログラムで動くか教えてほしいです

dx/dt=1+x^2
初期条件x=0,t=0
を0<t<1.5まで
10等分で解く

オイラー法
f(x,t)=1+x**2
x=0,t=0
a=1.5
b=10
h=a/b

do i=0,a,h
x=x+f(x,t)*h
write(*,*) x,t
end do



2次ルンゲクッタ法
do i=0,a,h
x=x+h{(1-m)*f(x,t)+mf(x+h/(2m),t++h/(2m)*f(x,y))}
write(*,*)x,t
end do

4次ルンゲクッタ法
do i=0, a,h
k1=h*f(x,t)
k2=h*f(x+h/2,t+k1/2)
k3=h*f(x+h/2,t+k2/2)
k4=h*f(x+h/2,t+k3/2)
x=x+(k1+2*k2+2*k3+k4)/6
write(*,*) x,t
end do

これでx(t)=tantであることが求められるでしょうか??
間違っている箇所を指摘していただけると嬉しいです。

あと2階常微分でのルンゲクッタ法というのが全く理解できません。
どなたか詳しく教えてください。

お願いします。

課題が出ているのですが、
自宅のパソコンではコンパイルできないので、
このプログラムで動くか教えてほしいです

dx/dt=1+x^2
初期条件x=0,t=0
を0<t<1.5まで
10等分で解く

オイラー法
f(x,t)=1+x**2
x=0,t=0
a=1.5
b=10
h=a/b

do i=0,a,h
x=x+f(x,t)*h
write(*,*) x,t
end do



2次ルンゲクッタ法
do i=0,a,h
x=x+h{(1-m)*f(x,t)+mf(x+h/(2m),t++h/(2m)*f(x,y))}
write(*,*)x,t
end do

4次ルンゲクッタ法
do i=0, a,h
k1=h*f(x,t)
k2=h*f(x+h/2,t+k1/2)
k3=h*f(x+h/2,t+k2/2)
k4=h*f(x+h/2,t+k3...続きを読む

Aベストアンサー

Vectorに無料コンパイラがありませんか。なければ、basicインタープリタでもOKですから、実行してみると良いのですが、、、
(fortranとbasicは言語仕様が似ているので便利かと思います)

●doループは整数刻みで、期待する値とは異なるはず…即ちバグ
●その他は文法エラーはなさそうです


人気Q&Aランキング

おすすめ情報