.eq之间的区别.和==

Rya*_*ber 5 fortran comparison-operators

我看到JSP存在类似的问题,但我没有看到Fortran的StackOverflow问题.

问题是: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.".无论如何,亚历山大·沃格特的答案正是我所寻找的.

Ale*_*ogt 11

==并且.EQ.完全相同.Fortran 2008标准,Cl.7.1.5.5.1"关系内在操作的解释"指出:

2运算符<,<=,>,> =,==和/ =始终与运算符.LT.,.LE.,.GT.,.GE.,.EQ.和.NE具有相同的解释., 分别.

在FORTRAN 77及更早版本中,.EQ.存在.该==运营商已经推出了与Fortran 90的(CL.7.2.3"关系本身固有的操作",相同的文字).

对于问题的第二部分,Fortran 2008标准(表7.2:操作数的类型和内部运算符的结果)列出了适用的操作数类型.在该表中,您可以看到允许您以任意组合比较整数,实数和复数,但字符串只有tom字符串.结果将始终是.true..false..==和之间没有歧视.EQ..