Fortran Coder

标题: 算法输出array bounds exceed [打印本页]

作者: xgmxhym    时间: 2014-10-11 09:43
标题: 算法输出array bounds exceed
这是我从书上抄下来的程序,但是运行一直出现array bounds exceed,因为我没学过fortran,所以看不出来,求大神指教,比较急啊

MAINP4.F90

9.42 KB, 下载次数: 6


作者: 楚香饭    时间: 2014-10-11 10:07
你的代码有输入,请提供。

(即,需要输入哪些值,你输入的是什么?)
作者: xgmxhym    时间: 2014-10-11 11:10
楚香饭 发表于 2014-10-11 10:07
你的代码有输入,请提供。

(即,需要输入哪些值,你输入的是什么?)

因为数比较多,我拍了照片,感谢啊,如果看不清楚,我可以手输给你

33.jpg (90.16 KB, 下载次数: 560)

33.jpg

22.jpg (90.26 KB, 下载次数: 512)

22.jpg

11.jpg (87.54 KB, 下载次数: 534)

11.jpg

作者: 楚香饭    时间: 2014-10-11 11:20
这么多数,为啥不用文件输入呢??汗颜

你敲到一个文件里吧。
作者: xgmxhym    时间: 2014-10-11 11:26
楚香饭 发表于 2014-10-11 11:20
这么多数,为啥不用文件输入呢??汗颜

你敲到一个文件里吧。

我不会啊,一个文件什么意思,是找个文本编辑吗?
作者: xgmxhym    时间: 2014-10-11 11:31
楚香饭 发表于 2014-10-11 11:20
这么多数,为啥不用文件输入呢??汗颜

你敲到一个文件里吧。

我查百度,弄好给你传上去啊
作者: xgmxhym    时间: 2014-10-11 14:50
楚香饭 发表于 2014-10-11 11:20
这么多数,为啥不用文件输入呢??汗颜

你敲到一个文件里吧。

你能发个例子我看看吗?文件输入是要把程序里的输入方式改了吗?实在不太懂
作者: xgmxhym    时间: 2014-10-11 15:00
楚香饭 发表于 2014-10-11 11:20
这么多数,为啥不用文件输入呢??汗颜

你敲到一个文件里吧。

大神,求指导啊,我是土木专业的,所以比较笨对这个。我现在着急想看看这程序能不能运行成功,然后再仔细研究的。。求帮助啊
作者: 楚香饭    时间: 2014-10-11 17:04
我的意思是,你先把所有输入的数据,放到一个文件里,然后传上来。我再帮你看。

那么多数字,从图片上读,多累啊
作者: xgmxhym    时间: 2014-10-12 09:07
楚香饭 发表于 2014-10-11 17:04
我的意思是,你先把所有输入的数据,放到一个文件里,然后传上来。我再帮你看。

那么多数字,从图片上读, ...

那我理解错了,我想着是要把输入方式给改了,我现在把数放到excel里, 你帮看看,万分感谢啊。

input data.pdf

18.89 KB, 下载次数: 6


作者: 楚香饭    时间: 2014-10-12 17:39
54 行输入貌似不够,你确定只有54行吗?

还有,为啥要用 pdf 格式呢?请用 txt

作者: xgmxhym    时间: 2014-10-12 18:54
楚香饭 发表于 2014-10-12 17:39
54 行输入貌似不够,你确定只有54行吗?

还有,为啥要用 pdf 格式呢?请用 txt

实在不好意思啊,我今早想给改少点数的,有地方没改了,实在不好意思,真的很感谢你啊,我在做课题,所以非常感谢你啊

input.txt

532 Bytes, 下载次数: 4


作者: 楚香饭    时间: 2014-10-12 19:32
ASSEMB 函数中 181 行

X2=X(N2)

越界,N2=CON(J1,2) 为 0

忠告,请把所有 COMMON 后面的变量表统一,不要一会 100,一会 200,这样特别容易出错。(当然,最好是不要使用 common)
作者: xgmxhym    时间: 2014-10-12 19:43
楚香饭 发表于 2014-10-12 19:32
ASSEMB 函数中 181 行

X2=X(N2)

不用common的意思是可以直接把哪些项删除吗?
作者: xgmxhym    时间: 2014-10-12 19:55
楚香饭 发表于 2014-10-12 19:32
ASSEMB 函数中 181 行

X2=X(N2)

那这个问题要怎么解决啊?
作者: xgmxhym    时间: 2014-10-12 19:59
楚香饭 发表于 2014-10-12 19:32
ASSEMB 函数中 181 行

X2=X(N2)

这个N2=CON(J1,2) 为 0,不应该是为零的,
作者: xgmxhym    时间: 2014-10-12 20:07
楚香饭 发表于 2014-10-12 19:32
ASSEMB 函数中 181 行

X2=X(N2)

,N2=CON(J1,2) ,这里没有事J1的,是J2吧?
作者: 楚香饭    时间: 2014-10-12 20:14
1.如果你不太会,建议还是用 common 吧,替代它的代码非常麻烦。
2.这段代码是你修改别人的吧?我给你的建议是,将来你自己写代码,不要用 common
3.每个函数里的 common ,建议要一致,你这里的 common 里的 Q ,有的函数里是 100,有的是 200,这样很容易出错。
4.是 N2 越界,N1 或者 J1 没事。
5.建议你学习如何 Debug 调试,快速寻找错误。你可以参考本站文章学习 http://error.w.fcode.cn
作者: xgmxhym    时间: 2014-10-12 20:48
楚香饭 发表于 2014-10-12 20:14
1.如果你不太会,建议还是用 common 吧,替代它的代码非常麻烦。
2.这段代码是你修改别人的吧?我给你的建 ...

你不能帮我解决吗?
作者: 楚香饭    时间: 2014-10-12 20:51
不能,我对你的代码的算法一无所知
作者: xgmxhym    时间: 2014-10-12 20:54
楚香饭 发表于 2014-10-12 20:51
不能,我对你的代码的算法一无所知

好吧,谢谢了,




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