我想使用运算符.ef.
,但运算符不接受可选参数。是否可以保留我的功能并让操作员也能工作?
Module Core
Implicit None
Interface Operator (.ef.)
Module Procedure fes
End Interface Operator (.ef.)
Contains
Function fes &
( &
nm, wn &
) &
Result (located)
Logical :: located
Character (Len=*), Intent (In) :: nm
Character (Len=*), Intent (In), Optional :: wn
End Function
Gfortran正在回归以下问题
lib/scriptus/core.f:62:0:
Function fes &
1
Error: Second argument of operator interface at (1) cannot be optional
答案 0 :(得分:2)
不允许您定义操作的可选参数。 Fortran 2008,Cl。 12.4.3.4.2。表示:
1 ...伪参数应为非可选的伪数据对象......
这是编译器在发出错误时引用的内容:
错误:(1)处的操作员界面的第二个参数不能是可选的
注意:您可以使用带有可选参数的过程,它们可以出现在模块中,但不能使用operator
关键字在接口块中引用它们。你的函数fes
看起来很好,这不是问题。您的问题是将操作符映射到函数的接口块。