Fortran允许元素子程序具有intent(inout)和intent(out)参数,但仅允许元素函数具有intent(in)。
为什么会这样呢?这只是一种风格惯例,还是在调用函数和调用子程序方面有一些普遍不同的东西呢?
换句话说,
Elemental Integer Function FOO(i)
Integer, intent(in) :: i
...
FOO=something
End Function
并且
Elemental Subroutine FOO(i, v)
Integer, intent(in) :: i
Integer, intent(out) :: v
...
v=something
End Subroutine
- 这些 FOO 实现效率是否相同?