在fortran 90中嵌套do while循环

时间:2013-06-25 13:22:38

标签: fortran90 do-while fortran95

我的代码中有以下部分。

 x=1.d0
 y=1.d0
 do while (x<5.0)
   do while (y<3.0)
      print*,'x=',x,'  y=',y
      y=y+1.d0
   end do
   print*,'x================',x
   x=x+1.d0
 end do  

这里我的目的是通过y-do-loop为x-do-loop的x中的每次更新改变y值。但是,在第一个x循环之后,y循环不再执行,即我得到以下输出。

x=   1.0000000000000000        y=   1.0000000000000000     
 x=   1.0000000000000000        y=   2.0000000000000000     
 x================   1.0000000000000000     
 x================   2.0000000000000000     
 x================   3.0000000000000000     
 x================   4.0000000000000000

为了我的目的,我不能用do吗?如果是,可以进行哪些修改?感谢。

1 个答案:

答案 0 :(得分:1)

您没有在外部循环中重置y的值,因此在y增加到3后,它永远不会再次小于3.您应该尝试:

x=1.d0
do while (x<5.0)
   y=1.d0
   do while (y<3.0)
      print*,'x=',x,'  y=',y
      y=y+1.d0
   end do
   print*,'x================',x
   x=x+1.d0
end do  
相关问题