サブルーチンとは、同じ作業を何度も行う場合などに、その部分をメインプログラムと切り離しておいて、必要なときに呼び出して使うことができるというものです。
call サブルーチン名(引数,引数,・・・) stop end c subroutine サブルーチン名(引数,引数,・・・) プログラム return end
サブルーチン名の付け方は、変数名と同じですが、型は関係ありません。
dimension x(2) x(1)=1 x(2)=2 y=5 call ss(x,y,z) write(*,*)'x1=',x(1) write(*,*)'x2=',x(2) write(*,*)'y=',y write(*,*)'z=x1+x2+y=',z stop end c subroutine ss(a,b,c) dimension a(2) c=a(1)+a(2)+b return end
返す値が1つの場合は関数も使えます。
関数では、返す値を関数名に代入します。
関数名の付け方は、変数名の付け方と同じです。
function 関数名(引数,引数,・・・) プログラム 関数名=値 or 計算式 return end
x=2.0 y=f(x) write(*,*)'x=2.0、','f(x)=2x+3=',y stop end c function f(a) f=2*a+3 return end
計算式が1行の場合は、文関数が使えます。
f(x)=2.0*x+3.0 y=f(2.0) write(*,*)'x=2.0、','f(x)=2x+3=',y stop end