LICOM编译可能遇到的问题

##1. mpi和netcdf的路径检索
可以通过mpirun和ncdump确定大概位置
在根目录下的opt,usr,public这三个可能性较大的目录下查找,mpi和netcdf一般对应在intel、netcdf文件夹。注意:netcdf比较难找,需要仔细一些麻烦一些。
####如我的netcdf在/opt/netcdf,目录下有:

检查bin和lib目录,尤其是lib目录下大致涵盖libnetcdf等
/opt/netcdf/bin

/opt/netcdf/lib

####如我的mpi在/public/mpi/openmpi/1.8.5/intel
检查目录,如:
/public/mpi/openmpi/1.8.5/intel/bin

&注意:不同服务器下,可能由于版本和安装过程不同,导致目录下的文件内容不一定完全相同。如mpi路径下,有的可能是mpiifort,有的是mpifort,但是一定要保证mpirun的存在。
&注意:可以将找到的mpi和netcdf,增加环境变量~/.bashrc (后面编译过程中可能会出现一个错误和环境变量设置有关)

##2. 在Makefile里面可以修改编译器、库的路径(INCLDIR,NLIB,FC)

NCLDIR  = -I. -I/usr/include -I/usr/local/include -I /public/mpi/openmpi/1.8.5/intel/include -I/opt/netcdf/include

NLIB =   -L/public/mpi/openmpi/1.8.5/intel/lib -L/opt/netcdf/lib -lnetcdf

FC = /public/mpi/openmpi/1.8.5/intel/bin/mpifort \$(FFLAGS)

可能遇到的错误:
###>> 1. 读取 NETCDF, undefined reference to
错误提示如:
Id: warning: libsz.so.2,needed by /opt/nc4/lib/libnetcdf.so, not found (try using -rpath or -roath-link’)
/opt/nc4/lib/libnetcdf.so: undefined reference to ‘H5T STD U16LE g’

解决方法: (参考自https://blog.sciencenet.cn/blog-714229-620905.html)
在Makefile NLIB尝试将-L/opt/netcdf/lib -lnetcdf替换成-L/opt/netcdf/lib -lnetcdf -lnetcdff或者-L/opt/nc4/lib -Inetcdf -Inetcdff -Ihdf5_hl -Ihdf5 -lsz,具体如何替换可以依次尝试或根据错误提示,或者直接将netcdf/lib下的内容添加进去。比如netcdf/lib下有netcdf,netcdff,hdf5_hl,hdf5和lsz,选用后者替换方案可以编译成功。
原因:在安装netcdf的时候没有将hdf5等和netcdf关联起来

###>> 2. netcdf找错了
错误提示如:diag_mod.F90:209: 错误:netcdf.inc:没有那个文件或目录
解决方法:重新找包含bin,lib,include的netcdf目录,并检查netcdf完整与否

##3. 运行
编译成功后,在新生成的文件夹中包含exe和src,检查exe的完整性:

可以在run文档中找到mpirun的具体运行命令。
可能遇到的错误:
###>> 1. 没找到mpirun**
如遇到-bash: mpirun: command not found

解决方法: 设置环境变量,在~/.bashrc中添加mpi的路径

export PATH=/public/mpi/openmpi/1.8.5/intel/bin:$PATH

###>> 2. 没找到lnetcdf
如遇到./licom2: error while loading shared libraries: libnetcdf.so.7: cannot open shared object file: No such file or directory

解决方法: 设置环境变量,添加netcdf的路径(参考自:https://blog.csdn.net/wallwind/article/details/7580659)

export PATH=/opt/netcdf/bin:$PATH

export LD_LIBRARY_PATH=/opt/netcdf/lib:$LD_LIBRARY_PATH

source ~/.bashrc后重新运行即可

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值