温馨提示×

ubuntu运行fortran出错咋办

小樊
46
2026-09-28 09:47:54
栏目: 智能运维

在 Ubuntu 上运行 Fortran 程序出错,通常可以从环境、编译、代码、运行时几个方面排查。下面给你一个比较系统的“排错指南”。


一、先确认有没有装 Fortran 编译器

Ubuntu 默认通常没有装 gfortran。

gfortran --version

如果提示 command not found,就安装:

sudo apt update
sudo apt install gfortran

二、编译阶段常见错误

1️⃣ 编译命令不对

一般写法:

gfortran hello.f90 -o hello

常见错误:

  • 文件后缀写错(.f / .f90 / .f95)
  • 多个文件没一起编译

多文件示例:

gfortran main.f90 sub.f90 -o main

2️⃣ 语法错误

编译器会给出行号,例如:

Error: Syntax error in WRITE statement at (1)

✅ 做法:

  • 看错误行号
  • 检查是否:
    • 少了 end / end program
    • do 没 end do
    • 变量未声明(尤其 implicit none 时)

3️⃣ 未声明变量

如果用了:

implicit none

那所有变量都必须声明,否则:

Error: 'x' has not been declared

三、链接 / 库相关错误

1️⃣ 找不到库

例如用 BLAS / LAPACK:

gfortran main.f90 -llapack -lblas -o main

如果报错:

cannot find -llapack

安装:

sudo apt install liblapack-dev libblas-dev

2️⃣ 数学库

gfortran main.f90 -lm

四、运行时错误(能编译但不能跑)

1️⃣ 段错误(Segmentation fault)

常见原因:

  • 数组越界
  • 未分配数组就使用
  • 递归没声明 recursive

示例:

real :: a(10)
a(20) = 1.0   ! 越界

✅ 建议编译时加调试选项:

gfortran -g -fcheck=all -Wall hello.f90 -o hello

运行时会直接告诉你哪里越界。


2️⃣ 浮点异常

gfortran -ffpe-trap=zero,overflow,invalid

3️⃣ 找不到可执行文件

./hello

如果提示:

Permission denied
chmod +x hello

五、快速自查清单 ✅

  • [ ] 是否安装 gfortran
  • [ ] 编译命令是否正确
  • [ ] 是否使用 implicit none
  • [ ] 是否数组越界
  • [ ] 是否缺少库(lapack/blas)
  • [ ] 是否加 -g -fcheck=all 调试

六、你可以把错误信息发我

如果你愿意,可以直接把:

  • 完整错误信息
  • Fortran 文件名
  • 编译命令
  • 一小段代码(出错部分)

贴出来,我可以精确帮你定位问题。

0 踩