2017-07-06 84 views
-4

我在Fortran非常新。我試圖編譯這個Fortran,我認爲90?碼。我正在用intel編譯器使用visual studio。Fortran錯誤5082

以下代碼給我一個錯誤5082.我完全不知道爲什麼。像字面上沒有線索。請幫助。

integer function Dub(n) 
integer n 
Dub = 2*n 
return  
end 


program Subroutines 

implicit none 

! Variables 
integer n 
n = 5 


! Body of Subroutines 
write(*,*) n 
Dub(n) 


write(*,*) 'Press Enter to Exit' 
read(*,*) 
stop 
end program Subroutines 
+0

什麼是完整的錯誤信息? – melpomene

+0

你不應該記住,你應該粘貼它。 – melpomene

+0

此外,你應該告訴我們,你的編譯器和你正在使用的版本,並顯示編譯命令行 - 除了任何完整的和確切的文本診斷信息。 –

回答

0

在Fortran中的函數,或一個子程序調用,必須是語句的一部分(或初始化表達式,但是這是更高級的)。本身並不是一種聲明,不像其他一些語言,如C,C++和Java。函數調用必須在表達式中,並且子例程調用必須使用call關鍵字。例子見https://en.wikibooks.org/wiki/Fortran/Fortran_procedures_and_functions

將您的程序的這一行更改爲n = Dub(n)會使其合法,但無用。該函數除了返回一個值外什麼都不做,而且你的主程序對返回的值沒有任何用處。通常你調用一個函數是因爲你想要執行函數的副作用,或者使用返回值,或者兩者都有。

+0

可能想要:'write(*,*)dub(n)' –