外部子程式和隱式介面
當子程式不包含在主程式中,也不包含在模組或 antoher 子程式中時,它被認為是外部的。特別是它可以通過除 Fortran 之外的程式語言來定義。
當呼叫外部子程式時,編譯器無法訪問其程式碼,因此編譯器允許的所有資訊都隱式包含在呼叫程式的呼叫語句中,並且在型別中包含實際引數的屬性,而不是偽引數(其宣告是編譯器未知的)。在這種情況下,我們說介面是隱式的。
external
語句可用於指定過程的名稱相對於外部過程,
external external_name_list
但即便如此,介面仍然隱含著。
interface
塊可用於指定外部過程的介面,
interface
interface_body
end interface
interface_body
通常是過程頭的精確副本,後面是宣告所有引數,如果是函式,則是結果的宣告。
例如,對於功能 WindSpeed
real function WindSpeed(u, v)
real, intent(in) :: u, v
WindSpeed = sqrt(u*u + v*v)
end function WindSpeed
你可以編寫以下介面
interface
real function WindSpeed(u, v)
real, intent(in) :: u, v
end function WindSpeed
end interface