この質問は、サブプログラム内の違反を検出する方法という問題に関連していますintent(in)
。しかし、関連する質問で答えが見つかりませんでしたEnforce intent(in) defined variables in Fortran as constant also in called subroutines/functions。
intent(in)
インテント宣言を省略した別のサブプログラム/関数によって変更できると宣言されている変数。
例えば:
module test
implicit none
contains
subroutine fun1(x)
real(8), intent(in)::x
call fun2(x)
end subroutine
subroutine fun2(x)
real(8) :: x
x = 10
end subroutine
end module
このコードは、gfortran と ifort によってエラー/警告なしでコンパイルできます。だから私の質問は:
- 意思表示の省略を禁止することはできますか?
- 省略されたインテントを Fortran コンパイラに強制的に解釈させることはでき
intent(inout)
ますか?