netcdf-fortran的安装 (Inter编译器、GNU编译器)
由于netcdf-fortran安装流程较为复杂,并且在不同的编译环境下,安装的netcdf并不能通用,所以在此记录一下两种编译器下netcdf-fortran的安装步骤及细节;如有问题,欢迎大家留言评论,或者私信~~
- 安装gfortran、gcc、cpp和curl
sudo yum install gfortran
sudo yum install gcc
sudo yum install gcc-c++
sudo yum install cpp
如果使用ifort,则需要安装Inter编译组件,包括Inter基础工具和Intel® HPC Toolkit ,详细信息及使用手册可以参考:Inter 官方下载地址
tee > /tmp/oneAPI.repo << EOF
[oneAPI]
name=Intel® oneAPI repository
baseurl=https://yum.repos.intel.com/oneapi
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
EOF
sudo mv /tmp/oneAPI.repo /etc/yum.repos.d
yum install intel-basekit
yum install intel-hpckit
如果遇到 ifort: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by ifort) 的问题可以参考:https://blog.csdn.net/u010257584/article/details/113102286
- 配置编译器环境
# 设置编译器环境
export NETCDF=/usr/local/netcdf-gcc #这里我们将相关包和库都安装到这个文件夹下
export CC=gcc
export CXX=cpp
export FC=gfortran
export F90=gfortran
export F77=gfortran
# 如果是icx编译
export NETCDF=/usr/local/netcdf-icx #这里我们将相关包和库都安装到这个文件夹下
export CC=icx # 旧版是 icc
export CXX=icpx # 旧版是 icpx
export FC=ifort
export F90=ifort
export F77=ifort
# 非常重要
export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}
- 安装zlib
# 下载安装包
wget http://www.zlib.net/zlib-1.2.13.tar.gz
# 解压并安装
tar -zxvf zlib-1.2.13.tar.gz
cd zlib-x.x.x/
./configure --prefix=${NETCDF}
make
make check
sudo make install
可以在make
后面加入-j5
参数来进行并行化编译,加速编译和安装
- 安装slib
#下载地址:ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/
#解压 tar -zxvf slib-2.1.tar.gz
cd slib-x.x.x
#配置安装信息:
./configure --prefix=${NETCDF}
#编译:
make
#检查:
make check
#安装:
make install
- 安装curl
地址: https://curl.se/download/
#解压
tar -zxvf curl-7.85.0.tar.gz
cd curl-x.x.x
#配置安装信息:(选一个)
./configure --with-zlib=${NETCDF} --prefix=${NETCDF}
CPPFLAGS=-I${NETCDF}/include LDFLAGS=-L${NETCDF}/lib ./configure --prefix=${NETCDF}
#编译:
make
#检查:
make check
#安装:
sudo make install
补充:安装后如果yum运行报错执行:
export LD_LIBRARY_PATH="/usr/lib64:/usr/lib:${LD_LIBRARY_PATH}"
- 安装HDF5
tar -zxvf hdf5-1.10.8.tar.gz
cd hdf5-x.x.x/
./configure --prefix=${NETCDF} --with-zlib=${NETCDF}
make
make check
sudo make install
- 安装netcdf-c(4.8.0)
tar -zxvf netcdf-c-x.x.x.tar.gz
cd netcdf-c-x.x.x/
export CPPFLAGS=-I${NETCDF}/include
export LDFLAGS=-L${NETCDF}/lib
./configure --prefix=${NETCDF} --enable-netcdf-4 --enable-largefile --disable-dap --disable-libxml2
make
make check
sudo make install
- 安装netcdf-fortran(4.8.1)
tar -zxvf netcdf-fortran-x.x.x.tar.gz
cd netcdf-fortran-x.x.x/
export CPPFLAGS=-I${NETCDF}/include
export LDFLAGS=-L${NETCDF}/lib
./configure --prefix=${NETCDF} --disable-fortran-type-check
./configure --prefix=${NETCDF} CC=${CC} FC=${FC} # 上面的不行的话可以试试这个
make
make check
sudo make install
- 在
~/.bashrc
中配置环境变量
export NETCDF=/usr/local/netcdf-icx # nercdf-icx 按照所需修改
export PATH=${NETCDF}/bin:${PATH}
export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}
export CPPFLAGS=-I${NETCDF}/include
export LDFLAGS=-L${NETCDF}/lib
-
在终端里输入
source ~/.bashrc
或重新进入终端即可正常使用netcdf-fortran库 -
调用netcdf-fortran库的使用范例如下。主要是在命令后面加入
-I${NETCDF}/include -L${NETCDF}/lib -lnetcdff -lnetcdf
以gfortran使用为例:
gfortran -o a xxx.F90 -I${NETCDF}/include -L${NETCDF}/lib -lnetcdff -lnetcdf
以上所有安装包的版本仅供参考,按需选择自己所需版本;
以上内容参考了众多大佬的文章,对大家表达感谢。