Fortran编译器报告一个错误。
Expected right parenthesis in expression at (1)什么意思?
program energy
real::Es=0.4,Ep=-0.4,ts=0.2,tsp=2.0
integer::Nx=100
real::kx(101)
real::ky
kx(1)=-0.50
do i=1,Nx
kx(i+1)=kx(1)+i*(1.00/Nx)
end do
print*, 'Enter value for ky'
read*,ky
do i=1,101
! "The error mentions it in the next line in terminal"
Epos(i)=sqrt(-Es*(Ep+2*ts*(cos(kx(i))+cos(ky)))-(2*ts*(cos(kx(i))+cos(ky))*(Ep-2*ts*(cos(kx(i))+cos(ky))))+(4*tsp**2)*((sin(kx(i)))**2 +(sin(ky))**2)))
end do
write(*,*) Epos
end program energy发布于 2014-10-12 08:06:59
你的队伍太长了..。您可以为-ffree-line-length-0指定gfortran以取消限制,或者(我想要的)使用&打破行:
Epos(i)=sqrt( - Es*(Ep+2*ts*(cos(kx(i))+cos(ky))) &
- (2*ts*(cos(kx(i))+cos(ky))*(Ep-2*ts*(cos(kx(i))+cos(ky)))) &
+ (4*tsp**2)*((sin(kx(i)))**2 +(sin(ky))**2) )您的代码还有两个额外的问题:
Epos声明https://stackoverflow.com/questions/26322883
复制相似问题