Fortran Coder

标题: 程序运行的良性错误? [打印本页]

作者: zjl88915    时间: 2014-2-27 14:56
标题: 程序运行的良性错误?
附件中,是我的程序文件。当我的主程序read命令读取1D_Unsat.dat这个文件中的T(1)这个数时,当T(1)<1e7时,运行很正常,输出正常。一旦T(1)大于1e7出现截图所示的问题(正常的话我需要算到T(1)=1e11)。我按照C06LAF子程序的帮助文件的错误提示进行修改,问题依然存在。 现在附件里是程序和问题截图。我是小白。。。但是这个程序我需要尽快弄出来,暂时没有时间去好好学习fortran,好无力的赶脚。。。大神帮帮忙。。。。

QQ拼音截图未命名.png (5.21 KB, 下载次数: 1397)

QQ拼音截图未命名.png

xiugai2.rar

52.9 KB, 下载次数: 1


作者: 珊瑚虫    时间: 2014-2-27 14:56
试了一下,我的看法是
程序退出的地方在第387行(第一次调用C06LAF子程序的时候):
必须同时满足:RELERX大于0.1D0*ERREST(NCURR)以及LINC不等于NCURR
我把上述4个量打印出来的结果是:
RELERX=  1.000000000000000E-003
0.1D0*ERREST(NCURR)=1.869595362724266E-003
LINC=0
NCURR=1
这说明你的第一个大于没有满足,至于为什么没有满足 你就顺着往上查找,可能是你的某个参数输入错误了,如果是用过的程序,本身应该没什么问题。

作者: btx97    时间: 2014-2-27 16:21
我是来灌水的。 不学习fortran,都敢用得这么专业。 称赞下伟大的冒险精神。
作者: zjl88915    时间: 2014-2-27 16:25
btx97 发表于 2014-2-27 16:21
我是来灌水的。 不学习fortran,都敢用得这么专业。 称赞下伟大的冒险精神。 ...

有时候真的迫不得已。。。唉。。。
作者: zjl88915    时间: 2014-2-27 19:38
珊瑚虫 发表于 2014-2-27 18:43
试了一下,我的看法是
程序退出的地方在第387行(第一次调用C06LAF子程序的时候):
必须同时满足:RELERX ...

好的,谢谢您的建议!
作者: fcode    时间: 2014-2-27 19:47
楼主你别这样,确定问题解决了再采纳。

To:珊瑚虫,这个程序里大多数是 NAG Library 里的,所以函数库有问题的可能性很小。应该还是数据的事儿。
作者: 珊瑚虫    时间: 2014-2-27 19:52
是的
作者: zjl88915    时间: 2014-2-27 21:23
fcode 发表于 2014-2-27 19:47
楼主你别这样,确定问题解决了再采纳。

To:珊瑚虫,这个程序里大多数是 NAG Library 里的,所以函数库有问 ...

的确是数据的问题,子程序都是ok的。我按照楼上的建议调整了下一个参数,程序确实可以运行了,而且得出的数据与之前的比对了一下,结果还是很理想的。。。
作者: fcode    时间: 2014-2-27 21:47
so,可喜可贺。感谢楼上的捐赠。
作者: zjl88915    时间: 2014-2-28 13:32
fcode 发表于 2014-2-27 21:47
so,可喜可贺。感谢楼上的捐赠。

我是真觉得咱们这个论坛很不错,才会支持的。真心谢谢管理员、版主和各位大神。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2