首页 > 解决方案 > 在 Fortran 中,.feq 是做什么的。或.fne。意思是?

问题描述

if(a .feq. 5.0_dp) then **** if(a .fne. 5.2_dp) then *** 我遇到了一些这样的代码。.feq 是什么?或.fne。意思是?是“=”还是“\=”?

标签: fortran

解决方案


在 Fortran 中,运算符(一元或二元)可以采用这种形式,即一串字母(最多 63 个),.两端带有 a。.feq.运营商也是如此.fne.

我们还将看到诸如.not.,.eq.等运算符。

有些算子,比如刚才提到的这两个算子,是标准的内在算子,有些可能是非标准的内在算子,我们甚至可以有用户自定义的算子。

.feq.并且.fne.不是(Fortran 2018)标准内在运算符。它们可能是非标准的内在运算符,但很可能是用户定义的。由于他们不是标准的操作员,我们不能说他们做了什么(尽管作为非常梦幻的评论,我们可以做出合理的猜测)。

您将需要阅读项目的文档(或编译器,对于非标准内部运算符),或者您可以查看可用的源代码。

您将如何找到用户定义的运算符的功能?例如.feq.,您应该找到一个具有以下OPERATOR(...)语法的接口块:

interface operator (.feq.)
 ...
end interface operator (.feq.)

在该接口块中,您会发现一个或多个特定功能的提及,就像您对其他通用功能一样。检查这些函数,直到找到一个具有正确数量的参数(一个用于一元运算符,两个用于二进制)的正确类型(.feq.如果它是一元,则第一个参数与后面的那个匹配;或者如果它是二进制,则在左侧,与第二个论点正确)。然后你可以看到这个函数做了什么。

您可能还会发现您的 IDE 或其他工具会告诉您操作符是如何解析的。


推荐阅读