2017-06-05 44 views
-2

我是Fortran的新用戶。我試圖理解的Fortran77 .for文件在方程中繼續使用1.。這是否意味着它是1的向量而不是整數?非常感謝你。什麼意思在Fortran77中

+1

這可能意味着它是一個「真正的」價值,但沒有看到你的代碼很難有更多的幫助。 –

+0

@HighPerformanceMark對不起,我沒有包含任何代碼,但我認爲這正是作者想要做的。看起來像Fortran90和Fortran95不再有這個了。 –

+0

當然他們有。許多其他的編程語言也會有同樣的傾向。實際上,Fortran 90和95中刪除的內容很少。 –

回答

0

.只是強制編譯器將其視爲REAL類型(而不是INTEGER類型)。由於FORTRAN處理混合模式表達式(具有INTEGER和REAL類型的表達式)的方式,在執行這些操作時必須小心。如果一個表達式混合了這兩種類型,那麼結果將是REAL,但是子表達式的評估順序會有所不同。

例如:

9/2 * 3.0 = 12.0

因爲9/2作爲整數運算進行評價,從而9/2 = 4

更改順序會影響結果:

3.0 * 9/2 = 13.5

由於子表達3.0 * 9首先計算,並且包含REAL,並迫使結果是真實的。

注意:您可以通過使用固定與第一例子的問題.

9./2 * 3.0 = 13.5

這是更好地要麼確保所有操作數是真實的,或者都是INTEGER,以確保您避免舍入/截斷錯誤。

+1

什麼時候'1.'出現在諸如'1.eq.2'的表達式中? – francescalus

+0

'.eq.'是平等運算符。在這種情況下,你有'1','.eq.'和'2'作爲表達式的三個組件。所以你在那裏沒有'1'。 – gariepy

+1

還有'1'的情況,其中'1'是連續標記。我的觀點是,這個問題並沒有說「我有一個令牌1」。並沒有顯示任何代碼:我們不確定這些情況是否適用。 – francescalus