读取数组时,fortran 中读取语句中的语法错误

问题描述

我试图创建一个程序来进行拉格朗日插值,但遇到了一系列我无法理解的错误。请帮忙。我过去做过类似的事情,但不知道为什么会这样。我认为这可能是由于读取数组,但我不明白为什么。

program lagrange_interpolation
implicit none

real xx,addn
integer n,i,j,q
print*,"Provide degree of polynomial(one less than number of data points)","value where you need intepolation value"
read(*,*)n,xx
real,dimension(100)::x,y,p
q=(n+1)
print*,q

do i=1,q
read(*,*)x(i)
read(*,*)y(i)
end do

do i=1,q
p(i)=1.0
end do

do i=1,q

    do j=1,q

    if(i-j)5,10,5
    5 p(i)=p(i)*((xx-x(j))/(x(i)-x(j)))

    10 continue
    end do
end do

addn=0.0
do i=1,q
addn=addn+p(i)*y(i)
end do

print*,"your ans is",addn
endprogram lagrange_interpolation

错误是::

real,p
                          1
Error: Unexpected data declaration statement at (1)

 read(*,*) x(i)
           1
Error: Syntax error in READ statement at (1)

 read(*,*) y(i)
           1
Error: Syntax error in READ statement at (1)
 p(i)=1.0

Error: Function 'p' at (1) has no IMPLICIT type
  5 p(i)=p(i)*((xx-x(j))/(x(i)-x(j)))
   1
Error: Function 'p' at (1) has no IMPLICIT type
  5 p(i)=p(i)*((xx-x(j))/(x(i)-x(j)))
                               1
Error: Function 'x' at (1) has no IMPLICIT type
 addn=addn+p(i)*y(i)
                1
Error: Function 'y' at (1) has no IMPLICIT type

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)