fortran中函数定义出错

时间:2017-09-03 15:18:43

标签: function fortran gfortran

我在fortran中编写以下代码并且函数definintion出错

program bisection_method
implicit none
real:: a=2.5,b=4.5,c,f

if (f(a)*f(b).gt.0) then
  write(*,*) "error"
else
  do while ((b-a)/2.0>0.0001)
  c = (a+b)/2.0
    if (f(a)*f(c).lt.0) then
      c = a
    else
      c = b
    endif
  enddo
endif

write(*,*)"the root is ",c
end program

function f(x)
 implicit none
 real::f,x
 f=(16*(x^3)-385*(x^2)+6000*(x)-3125)
end function f

并出现以下错误

fbisection.f90:24:9:

  f=(16*(x^3)-385*(x^2)+6000*(x)-3125)
         1
Error: Expected a right parenthesis in expression at (1)

知道为什么会这样吗? 感谢

1 个答案:

答案 0 :(得分:1)

您将^**混淆,后者是取幂运算符(^字符不是fortran中的运算符。)

只需用以下代码替换所述行:

f=(16*(x**3)-385*(x**2)+6000*(x)-3125)