関数を呼び出すサブルーチンを呼び出すプログラムがあります。関数の型宣言に関する Fortran の要件に多少混乱しています。関数 (つまり、実際の関数 foo(...)) で型を宣言しました。プログラムは、サブルーチン宣言セクションで関数を宣言するかどうかに関係なく動作します。
私の具体的な質問は、サブルーチンで関数を宣言しないと、将来予期しない動作が発生する可能性があるということです? インターフェイス ブロックも見たことがありますが、これも必要かどうか疑問に思っています。
より一般的には、Fortran が「舞台裏」で行っていることと、関数の宣言またはインターフェイス ブロックの使用が多かれ少なかれ重要である理由にも関心があります。
編集: いくつかのサンプル コード:
program foo
real :: a,b,c
call bar(a,b,c)
end program foo
subroutine bar(a,b,c)
real :: a,b,c
c = baz(a,b)
end subroutine bar
real function baz(a,b)
real :: a,b
baz = a*b
end function baz