【问题标题】:Fortran error #8093: A do-variable within a DO body shall not appear in a variable definition contextFortran 错误 #8093:DO 主体内的 do 变量不应出现在变量定义上下文中
【发布时间】:2014-03-19 15:36:46
【问题描述】:

我在 Fortran 2003 中编译代码时遇到此错误:

error #8093: A do-variable within a DO body shall not appear in a variable definition context.

这是我的代码的一部分:

 do k = v(i)-1, v(i)+1

     if (k == 0) then
        k= Nb
       end if

     if (k == Nb+1) then
        k=1
       end if
end do 

k 被视为整数 和

integer, dimension (10):: v=0

任何人帮我看看我的代码有什么问题?

【问题讨论】:

    标签: fortran fortran90 fortran95


    【解决方案1】:

    错误准确地告诉你问题所在:你不能重新定义循环变量k在do循环中

    您可能需要第二个变量,例如kk,你需要它来做:

    do k = v(i)-1, v(i)+1
     if (k == 0)    kk= Nb
     if (k == Nb+1) kk=1
    end do
    

    【讨论】:

      【解决方案2】:

      您正试图从循环内更改循环变量。如果您真的想要这样做,请使用以下内容:

      ! Infinite Loop
      k = v(i)-1
      do
        if ( k == 0 ) then
          k = Nb
        endif
        if ( k == Nb+1 ) then
          k = 1
        endif
      
        k = k + 1
        if ( k > v(i)+1 ) exit
      enddo ! k
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-23
        • 2023-04-09
        • 2016-01-24
        • 1970-01-01
        相关资源
        最近更新 更多