主题:程序运行出现奇怪问题
acely624
[专家分:50] 发布于 2010-07-26 21:35:00
本人使用cvf6.6版fortran console application做工程实现了一个循环次数较大的程序,但运行没有达到最大循环次数就结束了,且运行前后均未提示有任何问题及警告。
因程序较大,本人不方便帖出来。在此问下,有没可能是版本及工程问题?
回复列表 (共35个回复)
31 楼
acely624 [专家分:50] 发布于 2010-08-13 09:43:00
[quote]采用 integer*8 数据类型[/quote]
???不明白,能讲清楚吗
32 楼
web81 [专家分:150] 发布于 2010-08-13 11:18:00
你可以试试在allocate语句中间加入 stat子句,查看返回值,0为正确分配,如果是正数值可以查看编译器的说明来确定具体错误原因。
33 楼
acely624 [专家分:50] 发布于 2010-08-14 15:36:00
[quote]你可以试试在allocate语句中间加入 stat子句,查看返回值,0为正确分配,如果是正数值可以查看编译器的说明来确定具体错误原因。[/quote]
试过了,程序正常运行时,stat返回值为0;程序运行出问题时,无法看到stat返回值
34 楼
web81 [专家分:150] 发布于 2010-08-15 18:50:00
好像链表申请内存时不是这么用的。
ALLOCATE(CTP)
CTP%LPP=J
CTP%NEXTP=>LCP(I)%ENDP
LCP(I)%ENDP=>CTP
用这个替换试试
ALLOCATE( LCP(I)%ENDP , STAT = error )
LCP(I)%ENDP%LPP = J
LCP(I)%ENDP%NEXTP => LCP(I)%ENDP
注意 LCP(I)%ENDP的对应的type。
35 楼
acely624 [专家分:50] 发布于 2010-08-17 09:42:00
问题已解决,感谢各位的热情参与!
我没找到错误的原因,不过我修改了内存的分配与释放的频率后,问题没有再出现。还是希望能有高手出来解释下为什么!
我来回复