因此,当我在fortran90代码中使用log
函数时,会抛出以下编译时错误:
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
答案 0 :(得分:2)
“log”之前的字符不是减号。删除它并在其位置写一个正确的“ - ”。