2013-04-29 45 views
2

[注:包含前一個問題的重複,但作爲單獨的問題分別轉貼]FORTRAN 1.0D0,D0需要或編譯失敗

我編譯這是已知使用gfortran ifort編譯程序。但是編譯器就行了

IF (IANG.NE.0) IANG=IANG*SIGN(1.0,XX(4)) 

與編譯錯誤失敗:

make: *** [main_file.o] Error 1 

更改此行(注意D0)

IF (IANG.NE.0) IANG=IANG*SIGN(1.0D0,XX(4)) 

解決問題

編譯器標誌是:

gfortran -fno-automatic -mcmodel=medium -O2 -ffast-math main_file.o -o main_file 

即使對此行爲的解釋,將不勝感激。

乾杯,

德里克

回答

3

編譯錯誤的原因很可能是類型+種1.0XX(4)之間的失配,Fortran標準要​​求,在這兩個種類的參數SIGN匹配並鍵入。由於您未向我們展示陣列XX的聲明,因此我有信心聲稱它可能被聲明爲realkind=kind(1.0d0)

+0

再次嗨!謝謝,這似乎是正確的。 XX(4)聲明表示:雙精度XX(6) – dmon 2013-04-29 14:57:38