2016-03-06 315 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.之间没有区别。

相关问题