,可能的變動(千行,所以我會嘗試發佈的重要行),讓我:Fortran語言:我有一個Fortran代碼正在gfortran編譯的價值
nrev(isat)=dint((t_ref-t_in)/zper)+1
1
Warning:Possible change of value in conversion from REAL(8) to INTEGER(4) at (1)
它們被初始化爲:
integer*4 nrev(nmaxsat)
integer*4 isat
real*8 t_ref
real*8 t_in
real*8 zper
有關如何解決此問題的任何想法? 謝謝!
你想修正什麼?根據雙精度表達式的大小,它不能表示爲32位有符號整數。你期望發生什麼? – talonmies 2012-04-09 18:21:43
當我運行完整的程序時,所有的輸出值都是NaN,所以我擔心這樣的警告是問題所在。在gfortran中編譯時我沒有錯誤,但在g77編譯時編譯和運行正確。我有幾個警告,但我專注於這一個希望如果我能得到幫助,我可以找出其餘的。 – 2012-04-09 18:28:19
如果您正在獲取NaN值,則表示您在某處有無效的浮點計算。您顯示的代碼正在計算一個整數值。根據您發佈的內容,無法說明這兩者如何相關。 – talonmies 2012-04-09 18:40:27