Fortran do循环中出错:在(1)处的表达式中应为右括号

Fortran do循环中出错:在(1)处的表达式中应为右括号,fortran,codeblocks,Fortran,Codeblocks,在Windows上使用code::Blocks 16.0.1编译此代码时,显示以下错误 a(i) = (1/(delx)^2)-(1/x-1) 1 Error: Expected a right parenthesis in expression at (1) b(i) = ((-2/((delx)^2)) - bi*ce) 1 Error: Expected a right parenthesis in expressio

在Windows上使用code::Blocks 16.0.1编译此代码时,显示以下错误

a(i) = (1/(delx)^2)-(1/x-1)
                1
Error: Expected a right parenthesis in expression at (1)

b(i) = ((-2/((delx)^2)) - bi*ce)
                   1
Error: Expected a right parenthesis in expression at (1)

c(i) = (1/(delx)^2) + (1/(2*(delx)*(x-1)))
                1
Error: Expected a right parenthesis in expression at (1)
在3条语句的末尾添加
&
后,后两条语句变为正常,但第一条语句保持不变

program HW0
implicit none
integer, parameter :: nx=101
integer, parameter :: ce = 100
real*8, parameter :: bi = 10.d0
real*8 :: delx
integer :: i
real*8, dimension(nx) :: t, x
real*8, dimension(nx) :: a, b, c, d
i = 1
delx = 1/(nx-1)


a(1) = 0; b(1) = 1; c(1) = 0; d(1) = 0
a(nx) = -(1/(delx))
b(delx) = (1/(delx)) + bi
c(nx) = 0; d(nx) = 0;

do i = 2, (nx - 1)
a(i) = (1/(delx)^2)-(1/x-1)
b(i) = ((-2/((delx)^2)) - bi*ce)
c(i) = (1/(delx)^2) + (1/(2*(delx)*(x-1)))
d(i) = 0
enddo

do i = 2, nx
b(i) = b(i) - c(i-1)*(a(i)/b(i-1)); d(i) = d(i) - d(i-1)*(a(i)/b(i-1))
enddo

t(nx) = d(nx)/b(nx)

do i = (nx-1), 1, -1
t(i) = (d(i) - c(i)*t(i+1))/b(i)
enddo
stop
end program HW0

^不是Fortran运算符。您需要**。

请注意“delx=1/(nx-1)”,它的计算结果为0(因为1/100->0是整数除法)。我们可以得到一个正确的值,delx=1.0d0/(nx-1)(或1.0_dp/…等等)。哦,我忘了。谢谢你的帮助!