1. 安装Fortran编译器
在CentOS上部署Fortran应用的第一步是安装Fortran编译器,最常用的是GNU Fortran编译器(gfortran)。对于CentOS 7及更早版本,可通过yum包管理器直接安装:sudo yum install gcc-gfortran;对于CentOS 8及以上版本,由于默认仓库可能不包含最新版本,建议通过AppStream仓库安装:sudo yum install -y gcc-gfortran。安装完成后,通过gfortran --version命令验证安装是否成功。
2. 安装必要的依赖库
若Fortran程序依赖第三方库(如NetCDF、HDF5、BLAS等),需提前安装这些库及其开发文件。以NetCDF为例,安装步骤如下:
hdf5-1.10.4.tar.gz、netcdf-c-4.8.1.tar.gz);tar -zxvf hdf5-1.10.4.tar.gz && cd hdf5-1.10.4
./configure --prefix=/usr/local/hdf5 && make && sudo make install
cd .. && tar -zxvf netcdf-c-4.8.1.tar.gz && cd netcdf-c-4.8.1
./configure --prefix=/usr/local/netcdf --enable-netcdf-4 --enable-shared --with-hdf5=/usr/local/hdf5
make && sudo make install
~/.bashrc:echo 'export LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CPPFLAGS=-I/usr/local/netcdf/include' >> ~/.bashrc
echo 'export LDFLAGS=-L/usr/local/netcdf/lib' >> ~/.bashrc
source ~/.bashrc
其他库(如HDF5、BLAS)的安装流程类似,需根据官方文档调整配置参数。
3. 编译Fortran程序
编写Fortran源代码(如hello.f90)后,使用gfortran编译。基本编译命令为:
gfortran -o hello hello.f90
其中,-o hello指定输出可执行文件名,hello.f90为源文件。若程序依赖外部库(如NetCDF、数学库m),需添加链接选项:
gfortran -o my_program my_program.f90 -L/usr/local/netcdf/lib -lnetcdf -lhdf5 -lz -lm
常用编译选项:-O2(二级优化,提升运行速度)、-g(生成调试信息,配合gdb使用)、-Wall(开启所有警告)。
4. 运行Fortran程序
编译成功后,在终端中运行生成的可执行文件:
./hello
若程序需要访问网络、文件系统或其他资源,确保当前用户具有相应权限。若遇到“Permission denied”错误,可使用chmod +x hello添加执行权限。
5. 配置环境变量(可选但推荐)
若程序依赖的库不在系统默认路径中,需将库路径和头文件路径添加到环境变量中。编辑~/.bashrc文件,添加以下内容:
export PATH=/usr/local/gfortran/bin:$PATH # 若使用自定义安装路径的gfortran
export LD_LIBRARY_PATH=/usr/local/netcdf/lib:/usr/local/hdf5/lib:$LD_LIBRARY_PATH
export CPPFLAGS="-I/usr/local/netcdf/include -I/usr/local/hdf5/include"
export LDFLAGS="-L/usr/local/netcdf/lib -L/usr/local/hdf5/lib"
保存后运行source ~/.bashrc使配置生效,后续编译和运行时无需重复指定路径。
6. 可选:使用Docker部署(简化环境管理)
若需要隔离的运行环境或方便迁移,可使用Docker部署。创建Dockerfile:
FROM centos:latest
RUN yum update -y && yum groupinstall "Development Tools" -y && yum install gfortran -y
COPY . /app
WORKDIR /app
RUN gfortran -o my_program my_program.f90
CMD ["./my_program"]
构建镜像并运行容器:
docker build -t my-fortran-app .
docker run -it my-fortran-app
Docker容器会自动包含所有依赖,避免本地环境配置问题。