1
所以,当我在我的FORTRAN90代码中使用log
功能,它抛出以下编译时错误:错误:在(1)使用数()对数不可分类的声明
newtonf90.f90:21:
f = ((x - 2.d0)**2) \xE2\x88\x92 log(x)
1
Error: Unclassifiable statement at (1)
注意:在使用gfortran
那么,我所犯的错误是什么?
整个代码:
implicit none
double precision p0,p,df,f,tol
integer imax,i
p0=1.d0
imax=70
tol=0.0001
do i=1, imax
p = p0 - f(p0)/df(p0)
write(2,*) i , p , dabs(p0-p)
if (dabs(p0-p) .lt. tol) stop
p0=p
enddo
stop
end program newton
function f(x)
implicit none
double precision x,f
f = ((x - 2.d0)**2) − log(x)
return
end function f
function df(x)
implicit none
double precision x,df
df=2*(x - 2.d0) - 1/x
return
end function df
我很好奇 - 哪种语言/键盘/编辑器允许短划线被意外输入,而不是减号? –
我猜想一个意外的复制粘贴可能是错误的根源。当通过HTML页面或PDF文档传递代码时,这可能会很容易发生。纯文本编辑器没有理由抱怨破折号。 –