2011-07-12 33 views
-1

我正在更新遺留代碼,我需要在子程序中使用一個簡單的數學函數。我無法弄清楚如何做到這一點。從測試程序調用時,我有一個函數工作。對於子程序,我需要做什麼不同的事情?使用FORTRAN77子程序中的函數

例如:

subroutine foo(i,j,k) 

i = bar(j,k) 

stuff = otherstuff 

return 
end 

其它信息: 酒吧是ERF近似。 我正在使用PGF90編譯器。 我是新來的FORTRAN從C.

謝謝!

+3

你遇到的確切問題是什麼?你有錯誤信息嗎?編譯期間?在鏈接?在運行程序時?比「我有問題」更具體。 – eriktous

回答

3

基本上,從一個程序或子程序調用不應該有所不同。代碼真的看起來像這樣,沒有任何聲明?這意味着所有變量都有隱式類型:名稱以字母i-n開頭的變量將是整數,其他所有變量都是實數;這也適用於函數返回值。您顯示的代碼嘗試將實數(bar())分配給一個整數(i)。

如果你正在編寫新代碼,總是啓動程序和程序IMPLICIT NONE。這迫使你顯式包含所有變量和函數返回值的類型聲明,大大減少了錯誤。

相關問題