dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

>> Fortran语言开发经验交流
搜一搜更多此类问题 
Fortran中文网Fortran中文网—Fortran语言经验交流Fortran语言开发经验交流 → 程序运行出现奇怪问题

您是本帖的第 4248 个阅读者
树形 打印
标题:
程序运行出现奇怪问题
acely624
帅哥哟,离线,有人找我吗?
等级:新手上路
文章:2
积分:243
门派:无门无派
注册:2008年8月6日
楼主
 用支付宝给acely624付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给acely624

发贴心情
程序运行出现奇怪问题
本人使用cvf6.6版fortran console application做工程实现了一个循环次数较大的程序,但运行没有达到最大循环次数就结束了,且运行前后均未提示有任何问题及警告。
调试表明:
问题出现在下面这一段上
        DR=4D0*R
        LLF=DINT((X0(I)-DR)/C)          
        LRG=DINT((X0(I)+DR)/C)
        LFR=DINT((Y0(I)-DR)/C)
        LBA=DINT((Y0(I)+DR)/C)
        IF(LBA.GE.IDY) LBA=IDY-1
        IF(LRG.GE.IDX) LRG=IDX-1
        IF(LFR.LT.0) LFR=0
        IF(LLF.LT.0) LLF=0
            DO LX=LLF,LRG
                DO LY=LFR,LBA
                    IB=LY*IDX+LX+1
                    J=NCL(IB)
      
                    IF(J.LE.0) CYCLE
                    IF(I.LE.J) CYCLE
                    ALLOCATE(CTP)
                    CTP%LPP=J
                    CTP%NEXTP=>LCP(I)%ENDP
                    LCP(I)%ENDP=>CTP
                END DO
            END DO
进一步调试,发现问题出现在这句上:ALLOCATE(CTP)
程序段是大循环的一部分,大循环设定循环次数10 000 000次,在运行了4146380次后,程序在ALLOCATE(CTP)此句结束大循环并终止程序,且无任何错误提示
程序运行时,cpu使用率50%-60%,内存使用了400M左右,其中该程序使用了50M,且每隔一定时间会将链表释放掉;开机时句柄数8000~8500,程序运行中句柄一直未超过9500
电脑配置:cpu双核1.8G,内存1G
测试:用ALLOCATE建立链表,发现内存+虚拟内存3G分配掉2.8G时程序仍然运行良好,之前的程序内存仅使用400--500M,因此可排除内存分配超额的问题
ip地址已设置保密
2010/8/11 10:43:23
acely624
帅哥哟,离线,有人找我吗?
等级:新手上路
文章:2
积分:243
门派:无门无派
注册:2008年8月6日
2
 用支付宝给acely624付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给acely624

发贴心情
自己占沙发,跪求各位不吝赐教!!
ip地址已设置保密
2010/8/12 16:03:30
大胆想
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:68
积分:460
门派:无门无派
注册:2011年3月2日
3
 用支付宝给大胆想付款或购买其商品,支付宝交易免手续费、安全、快捷! QQ 点击这里发送电子邮件给大胆想 访问大胆想的主页

发贴心情
每步循环都写个信息出来,看在哪结束的,再找原因
ip地址已设置保密
2011/4/10 19:08:20
tsz2008
帅哥哟,离线,有人找我吗?
等级:论坛游民
文章:30
积分:290
门派:无门无派
注册:2006年4月23日
4
 用支付宝给tsz2008付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给tsz2008

发贴心情

首先我告诉你,单个循环可达到超过10^9次,所以如你所说不是这个的问题。

问题是这一个语句:ALLOCATE(CTP)

这里动态分配的是一个数组CTP,请把它的大小写出来。

正确定如:ALLOCATE(CTP(100)) !如果要CTP是一个一维数组。

或者ALLOCATE(CTP(num))       !num是一个已经赋过值的整型变量。

ip地址已设置保密
2011/5/6 14:19:40
luo2510764
帅哥哟,离线,有人找我吗?
等级:新手上路
文章:8
积分:228
门派:无门无派
注册:2011年10月5日
5
 用支付宝给luo2510764付款或购买其商品,支付宝交易免手续费、安全、快捷! 点击这里发送电子邮件给luo2510764

发贴心情
顶楼上
ip地址已设置保密
2011/10/6 10:48:54

 5   5   1/1页      1    
网上贸易 创造奇迹! 阿里巴巴 Alibaba
Powered By Dvbbs Version 7.1.0 Sp1
Copyright ©2005 - 2008 www.fortran.cn
页面执行时间 0.11719 秒, 5 次数据查询
京ICP备05056801号