小编Mat*_*lla的帖子

Fortran gfortran linux 中的“分段错误(核心转储)”错误

我正在创建一个程序,它将分析一个目录中的文件 .fits,然后它将在另一个目录中创建另一个文件 .txt。它只是一个转换器。

当我尝试执行程序(编译正常)时,它给了我一条错误消息:

程序收到信号 SIGSEGV:分段错误 - 无效的内存引用。

此错误的回溯:0 0x7FC5ADB1C117 1 0x7FC5ADB1C6F4 2 0x7FC5AD46C0AF 3 0x44E704 in ffthdu at fitscore.c:6893 4 0x405101 in MAIN__ at Codigo: 分段错误(核心转储)

还有另一个信息:当我删除一段执行“写入新的 .txt 转换器文件”部分的程序时,程序运行正常并读取整个 .fits 文件!这是这个延伸:

arq='spec-1.txt'
open (29,file=arq,status='unknown')
write(29,*) '  l(n)                      fa(n)'
do n=1,naxes
   write(29,*) l(n), fa(n)
end do
Run Code Online (Sandbox Code Playgroud)

我已将变量“arq”声明为一个字符,一切正常。当我删除此拉伸时,分段错误不再出现,但我现在不知道该怎么做,因为我需要将信息传递给这个 .txt!并且“arq”字符串不完整,因为我现在只是在测试,稍后我会添加整个目录。

这是完整的程序,我使用“gfortran Codigo.f90 -o TESTE -Lcfitsio -lcfitsio”来编译它:

implicit none

integer largo,status,hdnum,n,keysexist,keysadd,bitpix,naxis
integer naxes,readwrite,blocksize
integer i,j,k
integer iF(3),iT(3),iw(3),iwe,il,ib,jb,iFold,iFoldmin(3)
integer iFoldmax(3),iFoldopt(3)
integer iMiMy,iMo,Tymin,Tymax,Timin,Timax,Tyoung(3),Tint(3),Told
integer i912,i45000,Tyin,Tiin,nrows,ncols,datacode,repeat,width
integer nlam_ext
integer fKD,fKK,fKKD
parameter (nlam_ext = 1145)
CHARACTER NAMECH*256,name2*256,alibi*1000,card*80,code*14 …
Run Code Online (Sandbox Code Playgroud)

linux fortran

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

fortran ×1

linux ×1