2016-03-06 317 views
1

我發現JSP存在類似的問題,但是我沒有看到Fortran的StackOverflow問題。.eq之間的區別。和==

現在的問題是:在Fortran中比較運算符「.eq.」和「==」之間有什麼區別?

注意,因爲我用Fortran語言的多個版本(77和90主要是)我有興趣知道,如果這不同版本進行改變或者至少你的答案是關於什麼版本。

而且,因爲我只能夠找到對谷歌的教程,這將是巨大的,如果你可以參考一些權威在你的答案(雖然我不知道,如果一個Fortran手動在線存在)。

說到這,這是我從教程頁面發現:本教程頁面http://www.personal.psu.edu/jhm/f90/lectures/10.html似乎表明它們之間沒有什麼區別,而這組幻燈片http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/F90-Control.pdf似乎表明,「==」是字符串比較而「.eq.」則用於複雜的值。

編輯: 事實上,第二個超鏈接完全不提「.EQ。」無論如何,Alexander Vogt的回答正是我所期待的。

+0

這些幻燈片中沒有像這樣的東西。你鏈接的幻燈片根本沒有提到'.EQ.'! –

+0

對不起!你是對的!我想我把它和提到的.eqv搞混了。我將相應地編輯我的問題 –

+0

另請參閱http://stackoverflow.com/questions/31306795/to-represent-equalities-and-inequalities-what-is-considered-idiomatic-fortran/31307165#31307165簡要討論風格。 – Ross

回答

4

==.EQ.是相同的。 Fortran 2008 Standard,Cl。 7.1.5.5.1 「關係固有的操作的解釋」 規定:

2的運營商<,< =,>,> =,==,和/ =總是具有相同的 解釋爲運營商.LT ,.LE。,.GT。,.GE。,.EQ。和 .NE。

在FORTRAN 77及更早版本中,only .EQ. exists。 Fortran 90引入了==運算符(分支7.2.3「關係內部運算」,同樣的文字)。

對於你的問題的第二部分,2008年的Fortran標準(表7.2:操作數和內在經營結果的類型)列出了適用的操作類型。在該表中,您可以看到允許您以任意組合比較整數,實數和複數,但只能使用湯姆字符串。結果將始終爲.true..false.==.EQ.之間沒有區別。

相關問題