回 帖 发 新 帖 刷新版面

主题:程序运行时发生未知错误

这是程序的一段
open(unit=fileid1,file='0.dat',status="old")
open(unit=fileid2,file='everage.dat',status="replace")
open(unit=fileid3,file='1.dat',status="replace")
do d=1,165      
      read(fileid1,"(A79)")buffer1
      write(*,*)buffer1
      call sub(buffer1,a,d)
      write(fileid3,"(A79)")buffer1
 end do
去掉call sub(buffer1,a,d)这行时,程序可以顺畅的读取全部165行文字,但是加上之后读取57行时,就发生错误终止了程序。求高手解答

附:dat文件的内容 共165行,即文件‘0.dat'的内容


Run 224426(45_165).2e2isjm5.000000.dat
Run 224426(45_165).2e2isjm5.000001.dat
Run 224426(45_165).2e2isjm5.000002.dat
Run 224426(45_165).2e2isjm5.000003.dat
Run 224426(45_165).2e2isjm5.000004.dat
Run 224426(45_165).2e2isjm5.000005.dat
Run 224426(45_165).2e2isjm5.000006.dat
Run 224426(45_165).2e2isjm5.000007.dat
Run 224426(45_165).2e2isjm5.000008.dat
Run 224426(45_165).2e2isjm5.000009.dat
Run 224426(45_165).2e2isjm5.000010.dat
Run 224426(45_165).2e2isjm5.000011.dat
Run 224426(45_165).2e2isjm5.000012.dat
Run 224426(45_165).2e2isjm5.000013.dat
Run 224426(45_165).2e2isjm5.000014.dat
Run 224426(45_165).2e2isjm5.000015.dat
Run 224426(45_165).2e2isjm5.000016.dat
Run 224426(45_165).2e2isjm5.000017.dat
Run 224426(45_165).2e2isjm5.000018.dat
Run 224426(45_165).2e2isjm5.000019.dat
Run 224426(45_165).2e2isjm5.000020.dat
Run 224426(45_165).2e2isjm5.000021.dat
Run 224426(45_165).2e2isjm5.000022.dat
Run 224426(45_165).2e2isjm5.000023.dat
Run 224426(45_165).2e2isjm5.000024.dat
Run 224426(45_165).2e2isjm5.000025.dat
Run 224426(45_165).2e2isjm5.000026.dat
Run 224426(45_165).2e2isjm5.000027.dat
Run 224426(45_165).2e2isjm5.000028.dat
Run 224426(45_165).2e2isjm5.000029.dat
Run 224426(45_165).2e2isjm5.000030.dat
Run 224426(45_165).2e2isjm5.000031.dat
Run 224426(45_165).2e2isjm5.000032.dat
Run 224426(45_165).2e2isjm5.000033.dat
Run 224426(45_165).2e2isjm5.000034.dat
Run 224426(45_165).2e2isjm5.000035.dat
Run 224426(45_165).2e2isjm5.000036.dat
Run 224426(45_165).2e2isjm5.000037.dat
Run 224426(45_165).2e2isjm5.000038.dat
Run 224426(45_165).2e2isjm5.000039.dat
Run 224426(45_165).2e2isjm5.000040.dat
Run 224426(45_165).2e2isjm5.000041.dat
Run 224426(45_165).2e2isjm5.000042.dat
Run 224426(45_165).2e2isjm5.000043.dat
Run 224426(45_165).2e2isjm5.000044.dat
Run 224426(45_165).2e2isjm5.000045.dat
Run 224426(45_165).2e2isjm5.000046.dat
Run 224426(45_165).2e2isjm5.000047.dat
Run 224426(45_165).2e2isjm5.000048.dat
Run 224426(45_165).2e2isjm5.000049.dat
Run 224426(45_165).2e2isjm5.000050.dat
Run 224426(45_165).2e2isjm5.000051.dat
Run 224426(45_165).2e2isjm5.000052.dat
Run 224426(45_165).2e2isjm5.000053.dat
Run 224426(45_165).2e2isjm5.000054.dat
Run 224426(45_165).2e2isjm5.000055.dat
Run 224426(45_165).2e2isjm5.000056.dat
Run 224426(45_165).2e2isjm5.000057.dat
Run 224426(45_165).2e2isjm5.000058.dat
Run 224426(45_165).2e2isjm5.000059.dat
Run 224426(45_165).2e2isjm5.000060.dat
Run 224426(45_165).2e2isjm5.000061.dat
Run 224426(45_165).2e2isjm5.000062.dat
Run 224426(45_165).2e2isjm5.000063.dat
Run 224426(45_165).2e2isjm5.000064.dat
Run 224426(45_165).2e2isjm5.000065.dat
Run 224426(45_165).2e2isjm5.000066.dat
Run 224426(45_165).2e2isjm5.000067.dat
Run 224426(45_165).2e2isjm5.000068.dat
Run 224426(45_165).2e2isjm5.000069.dat
Run 224426(45_165).2e2isjm5.000070.dat
Run 224426(45_165).2e2isjm5.000071.dat
Run 224426(45_165).2e2isjm5.000072.dat
Run 224426(45_165).2e2isjm5.000073.dat
Run 224426(45_165).2e2isjm5.000074.dat
Run 224426(45_165).2e2isjm5.000075.dat
Run 224426(45_165).2e2isjm5.000076.dat
Run 224426(45_165).2e2isjm5.000077.dat
Run 224426(45_165).2e2isjm5.000078.dat
Run 224426(45_165).2e2isjm5.000079.dat
Run 224426(45_165).2e2isjm5.000080.dat
Run 224426(45_165).2e2isjm5.000081.dat
Run 224426(45_165).2e2isjm5.000082.dat
Run 224426(45_165).2e2isjm5.000083.dat
Run 224426(45_165).2e2isjm5.000084.dat
Run 224426(45_165).2e2isjm5.000085.dat
Run 224426(45_165).2e2isjm5.000086.dat
Run 224426(45_165).2e2isjm5.000087.dat
Run 224426(45_165).2e2isjm5.000088.dat
Run 224426(45_165).2e2isjm5.000089.dat
Run 224426(45_165).2e2isjm5.000090.dat
Run 224426(45_165).2e2isjm5.000091.dat
Run 224426(45_165).2e2isjm5.000092.dat
Run 224426(45_165).2e2isjm5.000093.dat
Run 224426(45_165).2e2isjm5.000094.dat
Run 224426(45_165).2e2isjm5.000095.dat
Run 224426(45_165).2e2isjm5.000096.dat
Run 224426(45_165).2e2isjm5.000097.dat
Run 224426(45_165).2e2isjm5.000098.dat
Run 224426(45_165).2e2isjm5.000099.dat
Run 224426(45_165).2e2isjm5.000100.dat
Run 224426(45_165).2e2isjm5.000101.dat
Run 224426(45_165).2e2isjm5.000102.dat
Run 224426(45_165).2e2isjm5.000103.dat
Run 224426(45_165).2e2isjm5.000104.dat
Run 224426(45_165).2e2isjm5.000105.dat
Run 224426(45_165).2e2isjm5.000106.dat
Run 224426(45_165).2e2isjm5.000107.dat
Run 224426(45_165).2e2isjm5.000108.dat
Run 224426(45_165).2e2isjm5.000109.dat
Run 224426(45_165).2e2isjm5.000110.dat
Run 224426(45_165).2e2isjm5.000111.dat
Run 224426(45_165).2e2isjm5.000112.dat
Run 224426(45_165).2e2isjm5.000113.dat
Run 224426(45_165).2e2isjm5.000114.dat
Run 224426(45_165).2e2isjm5.000115.dat
Run 224426(45_165).2e2isjm5.000116.dat
Run 224426(45_165).2e2isjm5.000117.dat
Run 224426(45_165).2e2isjm5.000118.dat
Run 224426(45_165).2e2isjm5.000119.dat
Run 224426(45_165).2e2isjm5.000120.dat
Run 224426(45_165).2e2isjm5.000121.dat
Run 224426(45_165).2e2isjm5.000122.dat
Run 224426(45_165).2e2isjm5.000123.dat
Run 224426(45_165).2e2isjm5.000124.dat
Run 224426(45_165).2e2isjm5.000125.dat
Run 224426(45_165).2e2isjm5.000126.dat
Run 224426(45_165).2e2isjm5.000127.dat
Run 224426(45_165).2e2isjm5.000128.dat
Run 224426(45_165).2e2isjm5.000129.dat
Run 224426(45_165).2e2isjm5.000130.dat
Run 224426(45_165).2e2isjm5.000131.dat
Run 224426(45_165).2e2isjm5.000132.dat
Run 224426(45_165).2e2isjm5.000133.dat
Run 224426(45_165).2e2isjm5.000134.dat
Run 224426(45_165).2e2isjm5.000135.dat
Run 224426(45_165).2e2isjm5.000136.dat
Run 224426(45_165).2e2isjm5.000137.dat
Run 224426(45_165).2e2isjm5.000138.dat
Run 224426(45_165).2e2isjm5.000139.dat
Run 224426(45_165).2e2isjm5.000140.dat
Run 224426(45_165).2e2isjm5.000141.dat
Run 224426(45_165).2e2isjm5.000142.dat
Run 224426(45_165).2e2isjm5.000143.dat
Run 224426(45_165).2e2isjm5.000144.dat
Run 224426(45_165).2e2isjm5.000145.dat
Run 224426(45_165).2e2isjm5.000146.dat
Run 224426(45_165).2e2isjm5.000147.dat
Run 224426(45_165).2e2isjm5.000148.dat
Run 224426(45_165).2e2isjm5.000149.dat
Run 224426(45_165).2e2isjm5.000150.dat
Run 224426(45_165).2e2isjm5.000151.dat
Run 224426(45_165).2e2isjm5.000152.dat
Run 224426(45_165).2e2isjm5.000153.dat
Run 224426(45_165).2e2isjm5.000154.dat
Run 224426(45_165).2e2isjm5.000155.dat
Run 224426(45_165).2e2isjm5.000156.dat
Run 224426(45_165).2e2isjm5.000157.dat
Run 224426(45_165).2e2isjm5.000158.dat
Run 224426(45_165).2e2isjm5.000159.dat
Run 224426(45_165).2e2isjm5.000160.dat
Run 224426(45_165).2e2isjm5.000161.dat
Run 224426(45_165).2e2isjm5.000162.dat
Run 224426(45_165).2e2isjm5.000163.dat
Run 224426(45_165).2e2isjm5.000164.dat

回复列表 (共3个回复)

沙发

可能是子程序的问题,把子程序发上来看看?

板凳

有点乱,呵呵
module dangewenjian
contains
 subroutine sub(x,y,d) !x代表文件名,y代表三维数组,d代表时间轴
   implicit none
   character(len=79)::x
   character(len=79)::buffer
   integer,parameter::fileid=10
   real(kind=8)::y(1:166,1:7326,1:8)
   integer::j,d
   logical::alive
   inquire(file=x,exist=alive)
   if(alive)then
     write(*,*)x,"exist"
   else
     write(*,*)x,"doesn't exist"
   end if
   open(unit=fileid,file=x,status="old")
   read(fileid,"(A79)")buffer
   read(fileid,"(A79)")buffer
   read(fileid,"(A79)")buffer
   do j=1,7326
    read(fileid,*)y(d,j,1),y(d,j,2),y(d,j,3),y(d,j,4),y(d,j,5),y(d,j,6),y(d,j,7),y(d,j,8)
    end do
   do j=1,7326
    if(abs(y(d,j,7))>4)then
      y(d,j,5)=(y(d,j-74,5)+y(d,j-148,5))/2
      y(d,j,6)=(y(d,j-74,6)+y(d,j-148,6))/2
      y(d,j,7)=sqrt(y(d,j,5)**2+y(d,j,6)**2)
     end if
  end do
 end subroutine sub
end module dangewenjian

3 楼

提示很清楚:
在temporay.f90文件中的:
dangewenjian模塊下的:
S子程序(或函數)
中的第27行發生了數組越界訪問錯!

我来回复

您尚未登录,请登录后再回复。点此登录或注册