You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran 95程序出现SIGSEGV段错误求助(附代码)

Fortran 95程序段错误(SIGSEGV)排查指南
  • 数组越界检查:Fortran默认不做数组边界校验,这是段错误的头号元凶。编译时加-fcheck=all参数让gfortran帮你定位问题:

    gfortran -fcheck=all your_code.f95 -o FILE.out
    

    运行后会直接报错指出越界的具体位置,不用自己瞎猜。

  • 未初始化的内存:Python会自动初始化变量,但Fortran不会。检查所有数组、变量在使用前是否完成赋值;如果是动态数组,确认ALLOCATE语句里的维度参数正确,没有写错数字或者用了未初始化的变量当维度。

  • Mac ARM架构适配:gfortran在ARM平台可能存在内存对齐问题,编译时试试加-fno-align-commons参数关闭强制对齐:

    gfortran -fno-align-commons your_code.f95 -o FILE.out
    

    或者用-march=native让编译器针对ARM架构优化。

  • 文件IO错误:如果是写入文件时崩溃,检查文件单位号是否重复使用、打开模式是否正确,以及写入的数组维度和格式是否匹配(比如用WRITE语句时,格式符和数组维度不对应导致越界)。

  • 栈溢出问题:如果声明了超大的静态数组,栈空间不够会触发段错误。把大数组改成动态分配(用ALLOCATE/DEALLOCATE),或者执行程序前先增大栈限制:

    ulimit -s unlimited
    

内容的提问来源于stack exchange,提问作者Milka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:45:05