在基于Fortran的代码(GNU Fortran编译器)中读取数据文件时,不确定分段错误所在

在基于Fortran的代码(GNU Fortran编译器)中读取数据文件时,不确定分段错误所在,fortran,codeblocks,Fortran,Codeblocks,输出: program main implicit none double precision,dimension(101):: p,q integer:: i,j write(*,*) "Hello World!" open(10,file='C:\Users\ACER\Desktop\test\results_analytical.dat',status='old',action='read') do i=1,101 read(10,1) p(i),q(i

输出:

  program main
  implicit none
  double precision,dimension(101):: p,q
  integer:: i,j
  write(*,*) "Hello World!"
  open(10,file='C:\Users\ACER\Desktop\test\results_analytical.dat',status='old',action='read')
  do i=1,101
    read(10,1) p(i),q(i)
  end do
  1 format(1f14.10,1f14.10,1f14.10)
  close(10)
  do j=1,10
    write(*,*) p(j),q(j)
  end do
  end program main
输入数据文件的格式如下:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  ffffffff

在gfortran中,调试选项是
-g-fcheck=all
。也可以从Code::Blocks菜单访问它们。然而,回溯中的地址非常奇怪。你能编译并运行一个简单的Hello world代码吗?将
read(10,1)
更改为
read(10,1,err=2)
,并在
结束程序主程序
所有文件I/O操作之前,添加3行
goto 3
2 stop'whoops'
,和
3 continue
打开
读取
写入
,以及
关闭
)给您两个可选参数:
iostat
iomsg
iostat
是一个整数,如果没有发生错误,则为0;
iomsg
是一个字符串,它返回一条人类可读的错误消息。除此之外,我建议您使用@VladimirF的
-g-fcheck=all
,还可以使用
-fbacktrace>@albert……这是数据文件创建的第一步0.0000000000 0.0000000000 0.0050000000 0.0000000000 0.0100000000.0000000000 0.0150000000 0.0000000000 0.02000000000.0000000000用于在问题中输入重要信息。不要使用注释。请使用格式按钮。在gfortran中调试选项是
-g-fcheck=all
。它们也应该可以从code::Blocks菜单中访问。但是,回溯中的地址非常奇怪。您能够编译并运行简单的Hello world代码吗?将
读取(10,1)
更改为
读取(10,1,err=2)
并在
结束程序主操作之前添加3行
转到3
2停止“呜呜”和
3继续
打开
读取
写入
,和
关闭
)给您两个可选参数:
iostat
iomsg
iostat
是一个整数,如果没有发生错误,则为0;
iomsg
是一个字符串,它返回一条人类可读的错误消息。除此之外,我建议您使用@VladimirF的
-g-fcheck=all
,还可以使用
-fbacktrace>@albert……这是数据文件的创建方式0.0000000000 0.0000000000 0.0050000000 0.0000000000 0.0100000000.0000000000 0.0150000000 0.0000000000 0.02000000000.0000000000用于在问题中输入重要信息。不要使用注释。请使用格式按钮。
  0.0000000000  0.0000000000
  0.0050000000  0.0000000000
  0.0100000000  0.0000000000
  0.0150000000  0.0000000000
  0.0200000000  0.0000000000
  0.0250000000  0.0000000000
  0.0300000000  0.0000000000
  0.0350000000  0.0000000000
  0.0400000000  0.0000000000
  0.0450000000  0.0000000000
  0.0500000000  0.0000000000
  0.0550000000  0.0000000000
  0.0600000000  0.0000000000
  0.0650000000  0.0000000000
  0.0700000000  0.0000000000
  0.0750000000  0.0000000000
  0.0800000000  0.0000000000
  0.0850000000  0.0000000000
  0.0900000000  0.0000000000
  0.0950000000  0.0000000000
  0.1000000000  0.0000000000
  0.1050000000  0.0000000000
  0.1100000000  0.0000000000
  0.1150000000  0.0000000000
  0.1200000000  0.0000000000
  0.1250000000  0.0000000000
  0.1300000000  0.0000000000
  0.1350000000  0.0000000000
  0.1400000000  0.0000000000
  0.1450000000  0.0000000000
  0.1500000000  0.0000000000
  0.1550000000  0.0000000000
  0.1600000000  0.0000000000
  0.1650000000  0.0000000000
  0.1700000000  0.0000000000
  0.1750000000  0.0000000000
  0.1800000000  0.0000000000
  0.1850000000  0.0000000000
  0.1900000000  0.0000000000
  0.1950000000  0.0000000000
  0.2000000000  0.0000000000
  0.2050000000  0.0000000000
  0.2100000000  0.0000000000
  0.2150000000  0.0000000000
  0.2200000000  0.0000000000
  0.2250000000  0.0000000000
  0.2300000000  0.0000000000
  0.2350000000  0.0000000000
  0.2400000000  0.0000000000
  0.2450000000  0.0000000000
  0.2500000000  0.0000000000
  0.2550000000  0.0000000000
  0.2600000000  0.0000000000
  0.2650000000  0.0000000000
  0.2700000000  0.0000000000
  0.2750000000  0.0000014003
  0.2800000000  0.0000266683
  0.2850000000  0.0000507647
  0.2900000000  0.0000740585
  0.2950000000  0.0000970128
  0.3000000000  0.0001201538
  0.3050000000  0.0001440525
  0.3100000000  0.0001693017
  0.3150000000  0.0001964696
  0.3200000000  0.0002260195
  0.3250000000  0.0002582002
  0.3300000000  0.0002929297
  0.3350000000  0.0003297011
  0.3400000000  0.0003675440
  0.3450000000  0.0004050610
  0.3500000000  0.0004405502
  0.3550000000  0.0004722162
  0.3600000000  0.0004985024
  0.3650000000  0.0005186747
  0.3700000000  0.0005340630
  0.3750000000  0.0005510280
  0.3800000000  0.0005882177
  0.3850000000  0.0006938665
  0.3900000000  0.0009852838
  0.3950000000  0.0017346217
  0.4000000000  0.0035456488
  0.4050000000  0.0076987516
  0.4100000000  0.0167869702
  0.4150000000  0.0358201663
  0.4200000000  0.0740223065
  0.4250000000  0.1475576152
  0.4300000000  0.2833478844
  0.4350000000  0.5239305456
  0.4400000000  0.9329151358
  0.4450000000  1.6000355928
  0.4500000000  2.6441689288
  0.4550000000  4.2122092484
  0.4600000000  6.4716450046
  0.4650000000  9.5953727968
  0.4700000000 13.7388232959
  0.4750000000 19.0117014841
  0.4800000000 25.4490137475
  0.4850000000 32.9877526571
  0.4900000000 41.4558123539
  0.4950000000 50.5779426954
  0.5000000000 59.9999992531