Fortran Coder

查看: 2334|回复: 3

[求助] Unclassifiable statement 报错

[复制链接]

47

帖子

15

主题

0

精华

专家

F 币
311 元
贡献
158 点
发表于 2022-5-28 15:12:52 | 显示全部楼层 |阅读模式
程序中有如下子程序(部分)
[Fortran] 纯文本查看 复制代码
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

但是在运行是出现了如下报错
[Fortran] 纯文本查看 复制代码
 228 |         k(1) = real(i3)/numk, k(2) = real(i4)/numk
      |         1
Error: Unclassifiable statement at (1)

这里面我对k(1),k(2)以及给出了定义,为什么还会出现unclassifiable statement 报错呢

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
发表于 2022-5-28 16:15:10 | 显示全部楼层
k(1) = real(i3)/numk; k(2) = real(i4)/numk

k=[real::i3,i4]/numk


47

帖子

15

主题

0

精华

专家

F 币
311 元
贡献
158 点
 楼主| 发表于 2022-5-28 18:37:13 | 显示全部楼层
vvt 发表于 2022-5-28 16:15
k(1) = real(i3)/numk; k(2) = real(i4)/numk

k=[real::i3,i4]/numk

所以Fortran在定义变量时是可以用逗号,而赋值的时候需要用分号么

235

帖子

0

主题

0

精华

版主

World Analyser

F 币
630 元
贡献
464 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
发表于 2022-5-29 08:52:51 | 显示全部楼层
本帖最后由 kyra 于 2022-5-29 08:55 编辑

不管是赋值,还是其他操作。(所有的)语句要么独立一行,要么以分号分隔。

定义语句允许一次定义多个变量。但这些变量的定义,是一个语句。
如果有多个定义语句,也可以用分号分隔。比如
integer :: a , b , c ; real :: d , e , f

赋值语句也允许一次赋值一个数组,就像楼上给出的 k=[real::i3,i4]/numk 这个语句一样。


您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-19 05:59

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表