Unclassifiable statement 报错
程序中有如下子程序(部分)subroutine integralk(numk, numw, w, gamma, sigma)
use ABA
implicit none
integer, intent(in) :: numw, numk
real(8),intent(in) :: w(numw)
real(8), intent(in) :: gamma
complex(8),intent(out) ::sigma(2, 2, numw)
integer :: N = 6, i1, i3, i4
real(8) :: k(2), en(6), ds
complex(8) :: t_sigma(2, 2, numw) , sigmak(2, 2, numw)
complex(8) :: H(6,6), dagger_H(6,6), v(2, 6, 6), r(2, 6, 6)
ds = 8d0*(PI**2)/((a0**2)*sqrt(3.0)*(numk**2))
t_sigma = 0.d0
do i3 = 1,numk
do i4 = 1,numk
k(1) = real(i3)/numk, k(2) = real(i4)/numk
但是在运行是出现了如下报错
228 | k(1) = real(i3)/numk, k(2) = real(i4)/numk
| 1
Error: Unclassifiable statement at (1)
这里面我对k(1),k(2)以及给出了定义,为什么还会出现unclassifiable statement 报错呢
k(1) = real(i3)/numk; k(2) = real(i4)/numk
或
k=/numk
vvt 发表于 2022-5-28 16:15
k(1) = real(i3)/numk; k(2) = real(i4)/numk
或
k=/numk
所以Fortran在定义变量时是可以用逗号,而赋值的时候需要用分号么 本帖最后由 kyra 于 2022-5-29 08:55 编辑
不管是赋值,还是其他操作。(所有的)语句要么独立一行,要么以分号分隔。
定义语句允许一次定义多个变量。但这些变量的定义,是一个语句。
如果有多个定义语句,也可以用分号分隔。比如
integer :: a , b , c ; real :: d , e , f
赋值语句也允许一次赋值一个数组,就像楼上给出的 k=/numk 这个语句一样。
页:
[1]