1
我確定這個解決方案非常基礎,但我很難弄清楚如何在Fortran中使用函數。我有以下簡單的程序:如何在Fortran中創建函數?
PROGRAM main
IMPLICIT NONE
INTEGER :: a,b
a = 3
b = 5
PRINT *,funct(a,b)
END PROGRAM
FUNCTION funct(a,b)
IMPLICIT NONE
INTEGER :: funct
INTEGER :: a,b
funct = a + b
END FUNCTION
我嘗試的這個若干變化,包括分配功能之前一個數據類型,本功能的結果分配給在主程序另一個變量並打印該變量,並且移動PROGRAM塊上方的FUNCTION塊。這些都沒有奏效。在當前的程序,我得到第6行(與PRINT語句行)的錯誤:
Error: Return type mismatch of function 'funct' (UNKNOWN/INTEGER(4))
Error: Function 'funct' has no IMPLICIT type
從所有我已經試過了導遊,我似乎是這樣做的權利;至少有一個變體或其中一些變體的組合應該起作用。我如何需要更改此代碼以使用該功能?
的問題是,你用'隱none',而你沒有給'funct'一個宣言。你必須添加'integer,external :: funct'。 –
謝謝,這個和皮埃爾的答案都奏效了。 – zbz323