質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

Q&A

解決済

1回答

1457閲覧

fortran 関数に渡したら数値がおかしくなる

mercurian-teto

総合スコア75

FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

0グッド

0クリップ

投稿2018/07/08 06:15

#環境
fortran90
#質問

fortranで区分求積法で積分を計算するプログラムなのですが、

関数で値を渡している渡していないでなぜか実行結果大きく変わってしまいます。

どこをどう見ても違う表現方法に変わっただけにしか見えないのですが、

どこら辺が間違っているのでしょうか。回答お願いします。

program kubunnkyuusekihou implicit none real(8) a,b !右端と左端の値 real(8)dx !分割した時の一つ一つの区間の長さ integer N !分割数 integer k !ループ変数 real(8) xk !分割した時にできた区間の右端、左端 integer S !求める面積 real(8) f write(*,*)'分割数は?' read(*,*) N a = 1.0d0 b = 10.0d0 dx = ( b - a ) / dble( N ) S = 0.0d0 do k = 1, N xk = a + 0.5d0 * dx * (2.0d0*dble(k)-1.0d0) S = S + dx * 3 * xk * xk end do write(*,*)'求める面積はS', S end program kubunnkyuusekihou #実行結果 分割数は? 3 求める面積はS 978
program kubunnkyuusekihou_error implicit none real(8) a,b !右端と左端の値 real(8)dx !分割した時の一つ一つの区間の長さ integer N !分割数 integer k !ループ変数 real(8) xk !分割した時にできた区間の右端、左端 integer S !求める面積 real(8) f write(*,*)'分割数は?' read(*,*) N a = 1.0d0 b = 10.0d0 dx = ( b - a ) / dble( N ) S = 0.0d0 do k = 1, N xk = a + 0.5d0 * dx * (2.0d0*dble(k)-1.0d0) S = S + dx * f(xk) end do write(*,*)'求める面積はS', S end program kubunnkyuusekihou_error function f( x ) implicit none real(8), intent(in) :: x real(8) f f(x) = 3.0d0 * x * x !関数の定義 end function #実行結果 分割数は? 3 求める面積はS -2147483648

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最近の Fortranは全くなのですが、、、

f(x) = 3.0d0 * x * x

戻り値に設定しているとおもうのですが、

f = 3.0d0 * x * x

ではないでしょうか?

投稿2018/07/08 10:42

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mercurian-teto

2018/07/08 11:06

回答ありがとうございます。 とんでもなくしょうもないミスでした。 上記のように訂正したら結果もそれらしくなりました。 お恥ずかしい限りです。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問