Fortran Coder

查看: 10461|回复: 3
打印 上一主题 下一主题

[流程控制] do死循环问题求助

[复制链接]

8

帖子

3

主题

0

精华

入门

F 币
39 元
贡献
25 点
跳转到指定楼层
楼主
发表于 2014-5-10 19:13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5F 币
[Fortran] 纯文本查看 复制代码
Do i=1,m  !m=15
  do while (t(i)==TIME(1)) !其中t(i)为:0,1.86。。。20.8,22.4共15个数值time(1)等于16.7
    Do k=1,c      !c=9            
      b(k,c+1)=f(i,k) !f为15*9的二维数组,赋值给b的第10列中的元素,其他列的元素在前面已经赋值
    end do
  end do
  do while (t(i)<TIME(1).and.t(i+1)>TIME(1))
    do k=1,c
      b(k,c+1)=(f(i,k)*t(i)-f(i+1,k)*t(i)+(f(i+1,k)-f(i,k))*TIME(1))/(t(i+1)-t(i))
    end do
  end do
end do
print*,'所形成增广矩阵为:'
do i=1,c
  do j=1,c+1
    write(*,*) b(i,j)
  end do
end do
目的是为了查值,没有对应的值时进行线性插值,代码如下:

结果是程序把这之上的内容运行出来了,而这部分内容一直在运算,,求助高手们给看一下问题出在哪了,不胜感激!谢谢!

最佳答案

查看完整内容

我没发现你的do while有什么用。如果(t(i)==TIME(1),程序将陷入死循环。试试将do while 改为 if 语句。
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2014-5-10 19:13:48 | 只看该作者
我没发现你的do while有什么用。如果(t(i)==TIME(1),程序将陷入死循环。试试将do while 改为 if 语句。

评分

参与人数 1F 币 +9 贡献 +9 收起 理由
fcode + 9 + 9 赞一个!

查看全部评分

回复

使用道具 举报

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
板凳
发表于 2014-5-10 19:29:05 | 只看该作者
检查是否陷入死循环。
回复

使用道具 举报

8

帖子

3

主题

0

精华

入门

F 币
39 元
贡献
25 点
地板
 楼主| 发表于 2014-5-10 20:19:36 | 只看该作者
li913 发表于 2014-5-10 19:13
我没发现你的do while有什么用。如果(t(i)==TIME(1),程序将陷入死循环。试试将do while 改为 if 语句。 ...

多谢!确实是这样
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 00:53

Powered by Tencent X3.4

© 2013-2024 Tencent

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