我有一個程序調用一個子程序,然後調用一個函數。我對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