我試圖編譯解決了可用的球體這裏的納維 - 斯托克斯項目比較派生類型: https://fms.gfdl.noaa.gov/gf/在FORTRAN
使用默認的編譯器ifort,我想用gfortran,因爲我想使其最終可供任何想使用它的人使用。
在代碼中的某些點,有喜歡
if (x == y)
,其中x和y是含整數,實數和指針都派生類型(稱爲domain1d/2d)的語句。 gfortran抱怨說,比較是在非數字和退出之間。
然後我下載了ifort的試用版,它編譯時沒有問題。
因此,我想知道這是否是某種類型/結構的每個成員(即使用C術語更加舒適!)的實際比較,或者是否缺少一些基本的東西,對fortran來說是新的?
我明白,比較派生類型有時候沒什麼意義,但在這裏它似乎只是檢查兩者是否攜帶相同的信息。
感謝, 喜悅
在黑暗中拍攝:嘗試.EQ。而不是== – 2013-04-11 05:11:14
什麼是這些變量的TYPE // END TYPE定義?對我來說,你可以對派生類型進行邏輯測試,但是我真的不知道。 – 2013-04-11 05:12:35
英特爾Fortran編譯器實現了對Fortran標準的各種擴展,其中一些擴展從其祖先繼承(如DEC Fortran)。如果我知道它對派生類型實現了平等測試並不令人感到意外,但我不會感到驚訝,因爲它知道它編譯了這樣一個聲明,但沒有正確地實現我們可能認爲它應該做的事。如果你設置了嚴格遵守語言標準的編譯器選項,你可以用ifort來排除這個問題。 – 2013-04-11 06:30:57