我有一个程序,调用一个子程序,然后再调用一个函数。我对Fortran在函数类型声明方面的要求感到有些困惑。我已经在函数中声明了类型(即实数函数foo(...)),无论是否在子程序声明部分中声明函数,程序都可以正常工作。
我的具体问题是,不在子程序中声明函数是否可能导致未来出现意外行为?我也看到了接口块,想知道这是否也是必需的。
更一般地说,我也对Fortran在“幕后”的操作以及为什么声明函数或使用接口块会更或更少重要感兴趣。
编辑:以下是一些示例代码:
我的具体问题是,不在子程序中声明函数是否可能导致未来出现意外行为?我也看到了接口块,想知道这是否也是必需的。
更一般地说,我也对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