使用Fortran语句函数

时间:2014-08-07 12:25:24

标签: fortran fortran90

我阅读了有关语句功能的内容,例如:

C(F) = 5.0*(F - 32.0)/9.0

这不是:

C = 5.0*(F - 32.0)/9.0

即。没有功能部分,或者我可能遗漏了什么?

如果它们不相同,我什么时候需要使用声明函数?

1 个答案:

答案 0 :(得分:6)

C = 5.0*(F - 32.0)/9.0

只是赋值给变量C,它可以在任何地方,每次程序流到达时都会被评估一次。

C(F) = 5.0*(F - 32.0)/9.0

是一个语句函数,可以在范围内的任何时候进行评估,例如,C(100)返回大约37.8

从某些代码

  xx(i) = dx*i

  f(a) = a*a

  do i = 1, nx
     x = xx(i)
     print *, f(x)
  end do

使用f(x)的每个新值评估print语句中的x并生成新值。 x的值也是对前一行语句函数xx的评估结果。

但声明函数现在(在Fortran 95中)声明已过时。更好地在任何新代码中使用内部函数。如,

program p
  implicit none
  !declarations of variables x, i, nx, dx

  do i = 1, nx
     x = xx(i)
     print *, f(x)
  end do
contains

  real function xx(i)
    integer, intent(in) :: i
    xx = dx*i
  end function

  real function f(a)
    real, intent(in) :: a
    f = a*a
  end function
end program