next up previous
: 配列 : プログラム : プログラム

関数副プログラム

プログラムが複雑になると、プログラム全体を1つの単位としておくのが難し くなるので、プログラムを機能ごとの単位に分割し、それ らを組み合わせていけばよい。こうすると、プログラム作成、デバック( エラー修正)が容易になるばかりでなく、過去のプログラムの蓄積が 利用できる。そのようなものとしてまず関数副プログラムをあげる。


1)関数副プログラムの定義:

$[t]$ function $f(d_1,d_2,...)$

.....

f= ...

return

end

$t:$ 型宣言子 $f:$ 関数名 $d_i:$ 仮引数

2)引用法:

$f(a_1,a_2,...)$

$f:$ 関数名 $a_i:$ 実引数


注意1: 仮引数の有効範囲は関数副プログラムの中だけである。したがって仮引 数と同じ名前の変数をプログラム中の他の箇所で別の意味に使用することもできる。

注意2: 実引数と仮引数の型は一致していなければならない。一方が単精度で 他方が倍精度だったりすると、全く異なる結果になる。仮引数の宣言は関数副プ ログラムの中で行なう。

例:

c     Main routine
      implicit real*8 (a-h,o-z)
c
      read(*,*) a,b,n
      h=(b-a)/n
      sum=0.5*(func(a)+func(b))
      do i=1,n-1
         x=a+h*i
         sum = sum + func(x)
      end do
      write(*,*) sum*h
c
      end
c
c     Function subprogram
      real*8 function func(x)
c
      implicit real*8 (a-h,o-z)
c
      func=cos(x)
c
      return
      end



Kiyohide Nomura 平成16年4月22日