CESM优化——Intel编译器编译安装NetCDF库(C+Fortran)

易阳云
2023-12-01

  在ASC19的地球气候系统(CESM)环境配置中,安装时间和安装步骤最复杂的数学库必须是Netcdf库。楼主足足研究了五天。下面都是使用源码安装,因为优化CESM要比较不同版本的库。
  NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,对程序员来说,它和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。netcdf文件开始的目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件的生成文件的格式。
  注意:
  1.netcdf4.2以上的版本c库和fortran库分开,要先安装netcdf-c,然后再安装netcdf-fortran。
  2.要注意编译安装库时候的编译器要和你以后编译你的Fortran代码使用的编译器一致,否则以后在编译Fortran源代码其中用到netcdf库时会出错。
  3.需要先安装szip zlib hdf5,解决软件依赖性问题

安装包链接(也是我当前使用的版本):

netcdf-c-4.4.1.tar.gz
https://github.com/Unidata/netcdf-c/releases/tag/v4.4.1

netcdf-fortran-4.4.4.tar.gz
https://github.com/Unidata/netcdf-fortran/releases/tag/v4.4.4

openmpi4.0(本节不介绍,详细信息在以下链接)
https://blog.csdn.net/weixin_41890971/article/details/86766492

szip-2.1.1.tar.gz
https://support.hdfgroup.org/doc_resource/SZIP/

zlib-1.2.11.tar.gz
http://www.zlib.net/

hdf5-1.10.4.tar.gz
https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.4/src/

一、安装zlib

1.解压 tar -zxvf zlib-1.2.11.tar.gz
2.配置安装信息

env \
CC="gcc -fPIC" \
CFLAGS="-O2" \
CXX="g++ -fPIC" \
CXXFLAGS="-O2" \
./configure \
–prefix=/home/CESM_Share/netcdf_intel \
--sharedlibdir=/home/liangziquan/intel/lib/intel64

可以使用 ./configure --help来查看选项。后面要用Intel编译器安装Netcdf,所以链接了Intel库。
3.编译. make
4.检查. make check
5.安装. make install
安装完成之后会在$netcdf_intel这个目录下生成三个文件lib include share

二、安装szip

1.解压 tar -zxvf szip-2.1.1.tar.gz
2.配置安装信息.

env \
CC="gcc -fPIC" \
CFLAGS="-O2" \
CXX="g++ -fPIC" \
CXXFLAGS="-O2" \
./configure \
–prefix=/home/CESM_Share/netcdf_intel \
--sharedlibdir=/home/liangziquan/intel/lib/intel64

可以使用 ./configure --help来查看选项。
3.编译. make
4.检查. make check
5.安装. make install

三、安装hdf5

使用netcdf-4特性需要hdf5来支持,这个特性支持2G以上的文件。
1.解压 tar -zxvf hdf5-1.10.4.tar.gz
2.配置安装信息.

env \
CFLAGS="-O3 -fPIC" \
CXXFLAGS="-O3 -fPIC" \
./configure \
–prefix=/home/CESM_Share/netcdf_intel \
--with-zlib=/home/CESM_Share/netcdf_intel \
--with-szlib=/home/CESM_Share/netcdf_intel

(–with-parallel,如果需要并行io支持,加上这参数)
3.编译 make
4.检查编译信息 make check
5.安装 make install

四、安装netcdf-c

1.解压 tar -zxvf netcdf-4.4.1.tar.gz
2.配置安装信息

./configure \
CC=icc \
CXX=icpc \
FC=ifort \
F90=ifort \
F77=ifort \
CFLAGS="-g -O3 -fPIC" \
CXXFLAGS="-g -O3 -fPIC" \
CPPFLAGS=-I/home/CESM_Share/netcdf_intel/include \
LDFLAGS=-L/home/CESM_Share/netcdf_intel/lib \
--disable-dap \
–prefix=/home/CESM_Share/netcdf_intel 

3.编译 make
4.编译信息检查 make check
5.安装 make install

五、安装netcdf-fortran

1.告知库文件位置.终端中输入

export LD_LIBRARY_PATH=/home/CESM_Share/netcdf_intel/lib:$LD_LIBRARY_PATH

2.解压tar -zxvf netcdf-fortran-4.4.4.tar.gz
3.配置安装信息.

./configure \
CC=icc \
CXX=icpc \
FC=ifort \
F90=ifort \
F77=ifort \
CFLAGS="-g -O3 -fPIC" \
CXXFLAGS="-g -O3 -fPIC" \
CPPFLAGS=-I/home/CESM_Share/netcdf_intel/include \
LDFLAGS=-L/home/CESM_Share/netcdf_intel/lib \
--disable-dap \
–prefix=/home/CESM_Share/netcdf_intel 

如果没有输入 --disable-dap的话,要预先安装curl。dap应该是用于远程数据处理相关的,这里不安装也行。
4.编译 make
5.检查 make check
6.安装 make install

六、配置环境变量

1.终端中输入 vim ~/.bashrc 按i进入插入模式,输入如下信息

###############netcdf4.4_intel#########################
export NETCDF=/home/CESM_Share/netcdf_intel
export PATH=\$NETCDF/bin:$PATH
export LD_LIBRARY_PATH=\$NETCDF/lib:$LD_LIBRARY_PATH
export CPPFLAGS='-I/home/CESM_Share/netcdf_intel/include'
export LDFLAGS='-L/home/CESM_Share/netcdf_intel/lib'

输入完成保存退出(先按esc键,然后输入:wq保存退出)

2.重新登录,使环境变量生效;使用source也可以,但我选择exit。

 类似资料: