fortran调试过程中 出现这样的错误 该怎么做

 我来答
zhangshy1982
2011-10-12 · TA获得超过109个赞
知道答主
回答量:75
采纳率:0%
帮助的人:72.1万
展开全部
这个错误是无法执行的数学计算,提示是sqrt,也就是说无法开方,可能原因是需要开方的数是一个负数,或者无限大的正数或无限小的负数,由于fortran并不会说当出现无限大或无限小的数就报错,所以可能在执行到这一步之前数已经出错了,这一错误不属于语法错误而属于逻辑错误,需要耐心调试,说说我调试的一些常用技巧:
1. 首先要找到程序出错的地方,因为程序提示sqrt计算出错,所以你可以在程序里面搜一搜哪里使用了开方运算,然后在这之前和之后设置一些记号,例如
write(*,*) 'aaa'
write(*,*) 'bbb'
等等,根据这些输出是否执行来判断程序执行到哪一步出错
2. 跟踪变量的值的变化,比方说你检测到变量x的值变成了负数或者无穷大,那么你就在程序的不同位置输出x的值,最好记录在文件中方便检查
open(5,file='debug.txt')
write(5,*) x
... ! 代码
write(5,*) x
... ! 代码

有些编译器,诸如matlab,intel fortran有提供比较方便的办法跟踪变量的值,但是思路是一样的

说白了就这么两招,但一般的bug都是这么找出来的,关键是耐心和细心,不要怕浪费时间,一个程序调试的时间远远超过写程序的时间是很正常的,祝好运
KedanJ
2011-10-12
知道答主
回答量:30
采纳率:0%
帮助的人:21.2万
展开全部
开方里面是负数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式