..................の間がプログラム本体です program 13 .................. C program 11 より複雑な関数の例 C xの値によって違う関数を返す場合 function func(x) real*8 func,x C xが負なら-sqrt(-x) (sqrtは平方根を計算する関数) if(x.lt.0)then func = -sqrt(-x) return C xが0または正ならsqrt(x) else func = sqrt(x) return endif end .................. program 14 .................. C さらに複雑な関数の例 C 多変数関数の場合 program main real*8 func,x,a read(*,*)a do i=-5,5 x=i*0.1d0 write(*,*)x,func(x,a) enddo end function func(x,a) real*8 func,x,a C xが負なら-(-x)**a if(x.lt.0)then func = -(-x)**a return C xが0または正ならx**a else func = x**a return endif end .................. program 15 .................. C さらに複雑な関数の例 C 配列を変数として使う場合 program main parameter(norder=4) real*8 func,x real*8 a(norder) read(*,*)(a(i),i=1,norder) do i=-5,5 x=i*0.1d0 write(*,*)x,func(x,a,norder) enddo end C (norder-1)次の多項式。各次数の係数が配列aに入っている。 function func(x,a,norder) real*8 func,x,a(norder) func=a(1) do i=2,norder func = func + a(i)*x**(i-1) enddo end