其实安装并不复杂,由于我在安装时被网上的参数误导,导致我一直卡在一个地方,我一度怀疑 ESMF 的源码有问题,故写篇文章记录一下,也为后面的朋友们踩坑!
下载
在 GitHub 上下载源码即可!
环境变量设置
ESMF_HOME=/path/to/ESMF-8.0.1
export ESMF_DIR=$ESMF_HOME
export ESMF_COMM=intelmpi
export ESMF_COMPILER=intel
export ESMF_ABI=64
export ESMF_INSTALL_PREFIX=$ESMF_HOME/install
export ESMF_NETCDF_INCLUDE=/path/to/netcdf/include
export ESMF_NETCDF_LIBPATH=/path/to/netcdf/lib
export ESMF_NETCDF_LIBS="-lnetcdf -lnetcdff"
export ESMF_CXXCOMPILER=mpiicpc
export ESMF_CXXLINKER=mpiicpc
export ESMF_F90COMPILER=mpiifort
export ESMF_F90LINKER=mpiifort
export ESMF_CPP=gcc 这个环境变量一定不要手动修改,否则会导致后续报错(xxxx.mod 文件找不到)
如果想用 icc 可以改成添加一句在上述文件中 ESMF_CPP =“icc -E -P -x c -C -nostdinc” (实测用 gcc 或 icc 影响不大)
你在安装时上面的配置还需要修改为你需要的编译器
这些参数你可以写在一个文件中之后安装前 source 这个文件即可
FAQs:
ESMF 8.0 网上有人反应生成的文件在 CESM 中不可用,需要切换成 7.0 ,两个版本安装方法大体相同,直接修改下路径即可