Fortran Coder

查看: 11161|回复: 2
打印 上一主题 下一主题

[求助] !!!注释掉输出语句,程序不能运行问题求助!!!

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
14 点
跳转到指定楼层
楼主
发表于 2020-4-27 21:26:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wsyqz 于 2020-4-27 21:49 编辑

各位前辈,小弟是做有限元方向的的,采用的工具是Abaqus,配合Fortran编写的程序(.for),完成有限元分析。
但是最近小弟发现一个非常玄幻的问题:
只要注释掉或者删除 .for文件中的一段负责输出语句(与实际计算过程无关,仅仅是输出当前运行的进度),整个程序的输出结果不收敛;
保留该段,程序可以配合Abaqus正常完成分析,该语句如下


CCCCCCCCCCCCCCCCCCCCCCCC
        WRITE (*,34) M
34    FORMAT ('M= ',I6.5,/)
       WRITE (*,35) N
35    FORMAT ('N= ',I6.5,/)
CCCCCCCCCCCCCCCCCCCCCCCC


经过尝试,发现注释掉后两行,保留前两行(如下所示),程序仍可正常运行
CCCCCCCCCCCCCCCCCCCCCCCC
        WRITE (*,34) M
34    FORMAT ('M= ',I6.5,/)

!      WRITE (*,35) N
!35    FORMAT ('N= ',I6.5,/)
CCCCCCCCCCCCCCCCCCCCCCCC

或者注释掉前两行,保留后两行(如下所示),程序仍可正常运行
CCCCCCCCCCCCCCCCCCCCCCCC
!       WRITE (*,34) M
!34    FORMAT ('M= ',I6.5,/)
        WRITE (*,35) N
35    FORMAT ('N= ',I6.5,/)

CCCCCCCCCCCCCCCCCCCCCCCC

但是只要这一段语句中注释掉所有write语句,那么程序计算不收敛,仿佛程序要求这里必须有输出才行,不知道到底是什么原因…………

求各位前辈指点!




分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

835

帖子

2

主题

0

精华

大宗师

F 币
3926 元
贡献
2334 点
沙发
发表于 2020-4-28 10:19:09 | 只看该作者
这种情况偶尔会遇到,代码bug造成的,比如越界访问。只能通过调试解决。

2

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
14 点
板凳
 楼主| 发表于 2020-4-29 08:53:03 | 只看该作者
li913 发表于 2020-4-28 10:19
这种情况偶尔会遇到,代码bug造成的,比如越界访问。只能通过调试解决。

看到老师您的回复后,我仔细检查了一下程序,还真发现了一个程序流程上的bug,虽然这个bug不影响计算结果, 但是在更正这个bug后,即使删除帖子里提到的输出语句,程序也可以正常运行了
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-27 11:02

Powered by Tencent X3.4

© 2013-2024 Tencent

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