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文檔傳遞代碼時,這可能會很容易發生。純文本編輯器沒有理由抱怨破折號。 –