功能语法

可以使用多种语法编写函数

function name()
  integer name
  name = 42
end function
integer function name()
  name = 42
end function
function name() result(res)
  integer res
  res = 42
end function

函数通过函数结果返回值。除非函数语句具有 result 子句,否则函数的结果与函数的名称相同。使用 result,函数结果是由 result 给出的。在上面的前两个例子的每一个中,函数结果由 name 给出; 在第三个由 res

必须在执行函数期间定义函数结果。

函数允许使用一些特殊的前缀。

函数意味着此函数没有副作用:

pure real function square(x)
  real, intent(in) :: x
  square = x * x
end function

元素函数被定义为标量运算符,但它可以使用数组作为实际参数调用,在这种情况下,函数将按元素方式应用。除非指定了 impure 前缀(在 Fortran 2008 中引入),否则元素函数也是函数。

elemental real function square(x)
  real, intent(in) :: x
  square = x * x
end function