例如,我想以1为增量从1循环到500.然而,对于每8个循环,我想跳过接下来的18个循环(使do变化增加18)。我怎么做?如何在Fortran的do循环中跳过几次迭代
我的代码是:
event = 0
do i = 1,500,2
event = event + 1
if (event .eq. 8) then
i = i + 18
event = 0
endif
enddo
但是,我得到了错误:“一个DO体内的DO变量不应出现在变量定义背景”。基本上我不能改变循环中的变量“我”。那么我应该如何编写代码来实现它呢?
谢谢。
这是一个错误,因为Fortran允许根据您的'do i ...'行完全基于计算出的数字来优化您的循环(并且必须知道迭代次数)。这是Fortran为了优化目的而牺牲的(很多)事情之一。 – casey