.eq 之间的差异。和==
Difference between .eq. and ==
我看到 JSP 存在类似的问题,但我没有看到 Fortran 的 Whosebug 问题。
问题是:Fortran中的比较运算符“.eq.
”和“==
”有什么区别?
请注意,由于我使用多个版本的 Fortran(主要是 77 和 90),我很想知道这是否在各个版本之间发生了变化,或者至少是您的答案所针对的版本。
此外,由于我只能在 google 上找到教程,如果您能在您的回答中引用一些权威的内容就太好了(尽管我不确定在线是否有 Fortran 手册).
说起来,这是我从教程页面中找到的:这个教程页面 http://www.personal.psu.edu/jhm/f90/lectures/10.html seems to indicate there is no difference between them, while this set of slides http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/F90-Control.pdf 似乎表明“==
”用于字符串比较,而“.eq.
” " 用于复数值。
编辑:
实际上,第二个超链接根本没有提到“.eq.”。无论如何,Alexander Vogt 的回答正是我想要的。
==
和 .EQ.
是相同的。 Fortran 2008 标准,Cl。 7.1.5.5.1 "Interpretation of relational intrinsic operations" 状态:
2 The operators <, <=, >, >=, ==, and /= always have the same
interpretations as the operators .LT., .LE., .GT., .GE., .EQ., and
.NE., respectively.
在 FORTRAN 77 及更早版本中,only .EQ.
exists。 ==
运算符已在 Fortran 90 中引入(Cl. 7.2.3 "Relational intrinsic operations",同文)。
对于问题的第二部分,Fortran 2008 标准(Table 7.2:内部运算符的操作数类型和结果)列出了适用的操作数类型。在 table 中,您可以看到您可以比较任意组合的整数、实数和复数,但字符串只能比较字符串。结果将始终为 .true.
或 .false.
。 ==
和.EQ.
之间没有区别。
我看到 JSP 存在类似的问题,但我没有看到 Fortran 的 Whosebug 问题。
问题是:Fortran中的比较运算符“.eq.
”和“==
”有什么区别?
请注意,由于我使用多个版本的 Fortran(主要是 77 和 90),我很想知道这是否在各个版本之间发生了变化,或者至少是您的答案所针对的版本。
此外,由于我只能在 google 上找到教程,如果您能在您的回答中引用一些权威的内容就太好了(尽管我不确定在线是否有 Fortran 手册).
说起来,这是我从教程页面中找到的:这个教程页面 http://www.personal.psu.edu/jhm/f90/lectures/10.html seems to indicate there is no difference between them, while this set of slides http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/F90-Control.pdf 似乎表明“==
”用于字符串比较,而“.eq.
” " 用于复数值。
编辑: 实际上,第二个超链接根本没有提到“.eq.”。无论如何,Alexander Vogt 的回答正是我想要的。
==
和 .EQ.
是相同的。 Fortran 2008 标准,Cl。 7.1.5.5.1 "Interpretation of relational intrinsic operations" 状态:
2 The operators <, <=, >, >=, ==, and /= always have the same interpretations as the operators .LT., .LE., .GT., .GE., .EQ., and .NE., respectively.
在 FORTRAN 77 及更早版本中,only .EQ.
exists。 ==
运算符已在 Fortran 90 中引入(Cl. 7.2.3 "Relational intrinsic operations",同文)。
对于问题的第二部分,Fortran 2008 标准(Table 7.2:内部运算符的操作数类型和结果)列出了适用的操作数类型。在 table 中,您可以看到您可以比较任意组合的整数、实数和复数,但字符串只能比较字符串。结果将始终为 .true.
或 .false.
。 ==
和.EQ.
之间没有区别。