Fortran Coder

查看: 11933|回复: 2
打印 上一主题 下一主题

[求助] 程序莫名其妙出错,求指点

[复制链接]

60

帖子

17

主题

0

精华

专家

F 币
454 元
贡献
266 点
跳转到指定楼层
楼主
发表于 2015-9-18 17:06:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
代码不能再简单,读数没有错误,关键是开头循环的好好的,到了一个位置之后就报错。debug也没用。
代码如下:
[Fortran] 纯文本查看 复制代码
program makedata
    implicit none
    integer::I,J,K,N,m,kkk
    real(kind=8)::dkk,ddd,miny
    
    type dmn
      character(len=10)::dN       
      integer::pN      
      integer::k1,k2
      integer::k11,k22
      integer::k3,k4
      integer::mp
      real(kind=8)::mx,my
      real(kind=8)::skd,kkd     
      real(kind=8),allocatable::x(:),y(:)
    end type
    type(dmn)::dm

    N=41
    dkk=5.0
    ddd=10.0
    open(11,file="BH.txt",status="old")
    open(12,file="BH_new.dmn")
    do I=1,N
      write(*,*)I

      read(11,'(a10,2f10.2,7i5)')dm%dN,dm%skd,dm%kkd,dm%pN,dm%k1,dm%k2,dm%k11,dm%k22,dm%k3,dm%k4
      allocate(dm%x(dm%pN),dm%y(dm%pN))
      read(11,'(10f8.2)')((dm%x(m),dm%y(m)),m=1,dm%pN)
      miny=999999.0
      do J=1,dm%pN
        if(miny.gt.dm%y(J))then
          dm%mx=dm%x(j)
          dm%my=dm%y(j)
          dm%mp=J
          miny=dm%y(J)
        endif
      enddo
      dm%y(dm%mp)=dm%my-ddd
      j=0
      do
        j=j+1
        dm%y(dm%mp-j)=dm%my-ddd
        if(abs(dm%x(dm%mp-j-1)-dm%x(dm%mp)).gt.dkk)exit
      enddo
      dm%k3=dm%mp-j
      j=0
      do
        j=j+1
        dm%y(dm%mp+j)=dm%my-ddd
        if(abs(dm%x(dm%mp+j+1)-dm%x(dm%mp)).gt.dkk)exit
      enddo
      dm%k4=dm%mp+j
      write(12,'(a10,f10.2,f10.2,7i5)')dm%dN,dm%skd,dm%kkd,dm%pN,dm%k1,dm%k2,dm%k11,dm%k22,dm%k3,dm%k4
      write(12,'(10f8.2)')((dm%x(m),dm%y(m)),m=1,dm%pN)
      write(*,*)size(dm%x,dim=1),size(dm%y,dim=1)
      deallocate(dm%x,dm%y,stat=kkk)
      write(*,*)kkk
      if(kkk.ne.0) then
        write(*,*)kkk
        stop
      endif

    enddo

    en


读入文件见附件。

报错是致命错误(157): access violation

而且错误不是在一开始就出现,而是循环到第39块的时候。前面1到38一点错误都没有。
难道是内存的原因?
求指点。。。


BH.txt

233.8 KB, 下载次数: 1

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

板凳
发表于 2015-9-18 19:25:25 | 只看该作者
有open为啥没有close呢?

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2015-9-18 18:01:19 | 只看该作者
我没有做任何改动,正确运行,这是生成的输出文件。

BH_new.zip

57.49 KB, 下载次数: 0

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 23:40

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表