我有一个程序调用一个子程序,然后调用一个函数。我对Fortran对函数类型声明的要求有些困惑。我已经在函数中声明了这个类型(即真实函数foo(...)),并且无论我在子例程声明部分中声明函数,该程序都能正常工作。Fortran中的函数接口90/95
我的具体问题是,不会在子程序中声明函数可能会导致未来的意外行为?我也看到了接口块,并且想知道这是否也是必需的。更为普遍的是,我也对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
你可以在这里给一些示例代码吗?我不确定你是什么意思。该函数是否被传递给子例程,或者该子例程是否具有调用该函数的CONTAINS行,或者...? –
@乔纳森,你去了。 – astay13