こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

fortranのプログラム

fortranのプログラム

現在、fortranの勉強をしております。
そこで、質問があるのですが、
ある関数f(x,y,z)の座標(x,y,z)の値がデータとして与えられているとき、

S=10+f

をfortranで計算したいと考えております。
ただ、関数fは複数(f1、f2、f3)あり、次々とfに代入してSを計算したいのですが、どのようにプログラムしたらいいか思いつきません。
どなたか、ヒントだけでもいいので、教えてください。

ちなみに、私が考えたプログラムは(下のプログラムはポイントだけ書いてあります。endやその他関係ないと思われるところは省いております。)

do 100 k=1,3
S=S+fk(x,y,z)
continue

function f1
f1(s,t,u)=・・・
return
end

f2(s,t,u)=・・・
return
end

使用しているバージョンは、fortran77(本当は90を使っているのですが、77だけで書いています)です。

投稿日時 - 2010-11-02 15:51:39

QNo.6292227

困ってます

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

私が77でやるなら

program main
S=0
x=1
y=2
z=3
do 100 k=1,3
S=S+f(k,x,y,z)
100 continue
print*,S
end

function f(k,s,t,u)
if (k.eq.1) then
f=s+t+u
else if (k.eq.2) then
f=s+t+u*2
else if (k.eq.3) then
f=s+t+u*3
endif
return
end

こんな感じ。

投稿日時 - 2010-11-02 18:00:54

お礼

早速のご回答ありがとうございます。
このプログラミングを参考に書いてみます。

投稿日時 - 2010-11-02 19:08:47

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問