CentOS中Fortran依赖处理指南
Fortran依赖处理的第一步是安装合适的编译器,CentOS下最常用的是gfortran(GNU Fortran编译器)。通过系统包管理器yum(或CentOS 8+的dnf)安装,命令如下:
# CentOS 7及更早版本
sudo yum update -y && sudo yum install gcc-gfortran -y
# CentOS 8及以上版本(使用AppStream源)
sudo yum install -y gcc-c++-8 gcc-gfortran-8
安装完成后,通过gfortran --version验证是否成功,若输出版本信息则说明编译器已就绪。
Fortran程序常依赖线性代数、并行计算等库,以下是常用库的安装方法:
sudo yum install blas blas-devel lapack lapack-devel -y
sudo yum install openblas openblas-devel -y
sudo yum install openmpi-devel -y
sudo yum install hdf5 hdf5-devel -y
为确保编译器及库能被系统正确识别,需配置环境变量:
~/.bashrc文件(用户级配置)或/etc/profile(系统级配置),添加以下内容:export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin # 添加编译器路径
export LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib:$LD_LIBRARY_PATH # 添加库文件路径
source ~/.bashrc(或source /etc/profile)使修改立即生效。通过编写简单的Fortran程序,验证编译器及依赖库是否能正常工作。例如,测试LAPACK库的线性方程组求解功能:
test_lapack.f90文件,内容如下:program test_lapack
implicit none
integer, parameter :: n = 5
double precision :: a(n, n), b(n), x(n)
integer :: ipiv(n), info
! 初始化矩阵a(对角占优)和向量b
a = reshape([1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, &
6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, &
11.0d0, 12.0d0, 13.0d0, 14.0d0, 15.0d0, &
16.0d0, 17.0d0, 18.0d0, 19.0d0, 20.0d0, &
21.0d0, 22.0d0, 23.0d0, 24.0d0, 25.0d0], [n, n])
b = [1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0]
! 调用LAPACK的dgesv函数求解Ax=b
call dgesv(n, 1, a, n, ipiv, b, n, info)
! 输出结果
if (info == 0) then
print *, 'Solution:', b
else
print *, 'Error: ', info
end if
end program test_lapack
gfortran -o test_lapack test_lapack.f90 -llapack -lblas
./test_lapack
若输出解向量(如Solution: [0.05, 0.1, 0.15, 0.2, 0.25]),则说明依赖库安装正确。若依赖库未包含在系统仓库中,需通过源码编译安装:
linalg.tar.gz)。tar -xzf linalg.tar.gz
cd linalg
./configure --prefix=/usr/local/linalg # 指定安装路径
make # 编译源码
sudo make install # 安装到指定路径
LD_LIBRARY_PATH中(如export LD_LIBRARY_PATH=/usr/local/linalg/lib:$LD_LIBRARY_PATH)。若需要隔离不同项目的依赖,可使用conda(Anaconda/Miniconda)管理Fortran环境:
conda create -n fortran_env python=3.9 -y
conda activate fortran_env
conda install gfortran -y