带有可选参数的Fortran函数

时间:2015-05-06 14:45:32

标签: function fortran optional

我想使用运算符.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

1 个答案:

答案 0 :(得分:2)

不允许您定义操作的可选参数。 Fortran 2008,Cl。 12.4.3.4.2。表示:

  

1 ...伪参数应为非可选的伪数据对象......

这是编译器在发出错误时引用的内容:

  

错误:(1)处的操作员界面的第二个参数不能是可选的

注意:您可以使用带有可选参数的过程,它们可以出现在模块中,但不能使用operator关键字在接口块中引用它们。你的函数fes看起来很好,这不是问题。您的问题是将操作符映射到函数的接口块。