• ベストアンサー
  • 困ってます

fortranのプログラム

  • 質問No.6292227
  • 閲覧数133
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 38% (35/91)

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だけで書いています)です。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 44% (4443/9982)

他カテゴリのカテゴリマスター
私が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

こんな感じ。
お礼コメント
tigers007

お礼率 38% (35/91)

早速のご回答ありがとうございます。
このプログラミングを参考に書いてみます。
投稿日時:2010/11/02 19:08
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ