次のような Fortran コードがあります。
file1.f90
program myprog
use func1mod
do i=1,N
call subroutine1
enddo
subroutine subroutine1
integer*8::var1,var2,var3,...
do j=1,N
x=func1(var1,var2,var3,..)
computations based on x
enddo
return
end
end
file2.f90
module func1mod
contains
func1(var1,var2,var3,....)
func1=some computations based on var1, var2, var3, ...
return
end function func1
end module func1mod
関数 func1 は、その引数を変更しません。引数に基づいて値を計算し、値を返します。引数の数は多いが、関数のコードは 30 行未満です。関数呼び出しのオーバーヘッドを削減する最善の方法は何ですか。1 つのアプローチは、関数をインライン化することです。他の方法はありますか?