相关疑难解决方法(0)

现代 Fortran 等效于嵌套 DO 和 GO TO 共享的操作语句

do在我正在使用的旧代码中遇到了嵌套结构,并希望理解和现代化。它使用相同的标记动作语句来终止do循环,以及go to语句。这是一个简化版本,它通过一些其他微不足道的操作说明了原始代码的逻辑:

      subroutine original(lim)
      k=0
      do 10 i=1,4
        do 10 j=1,3
          k=k-2
          if (i>lim) go to 10
          k=k+i*j
 10   k=k+1
      write(*,*) k
      return
      end
Run Code Online (Sandbox Code Playgroud)

在查看此站点上的其他问题 (和外部资源)后,这是我重写原始代码逻辑的最大努力,没有过时的功能(和):go to

subroutine modern(lim)
  integer, intent(in) :: lim
  integer :: i, j, k
  k=0
  outer: do i=1,4
    inner: do j=1,3
      k=k-2
      if (i>lim) then
        k=k+1
        cycle inner
      end if
      k=k+i*j
      k=k+1
    end do inner
  end do outer
  write(*,*) k
end subroutine modern
Run Code Online (Sandbox Code Playgroud)

我使用以下程序测试了代码,包括触发/不触发go to …

fortran

4
推荐指数
1
解决办法
88
查看次数

标签 统计

fortran ×1