对CESM有了大致的了解之后,就可以开始上手尝试了。首先需要进行的是将源代码移植(porting)到自己的服务器上。
一、环境搭建
正如其他模式,CESM的运行也需要安装一系列的库函数。对于所安装的CESM版本需要的依赖库函数种类与版本可以在其官方网站或者github上的userguide中查找(CESM Quickstart Guide (CESM2.1) — CESM CESM2.1 documentation (escomp.github.io)),对于CESM2.1.3,需要安装:
(1)python(可以使用anaconda虚拟环境)
(2)perl5
(3)Subversion client(一般服务器都有,不用管)
(4)Git (1.8版本以上,用于拉取代码,一般服务器也都有)
(5)Fortran compiler(intel或gnu编译器,注意gnu编译器不要版本太低,可以直接用intel)
(6)MPI(对应于编译器选择mpi,一般服务器应该也有,找到路径就行)
(7)NetCDF(4.3版本以上),各类模式必备,可以用过nc-config --version查看服务器是否安装,没有的话随手搜一下就有编译流程。注意的是编译过程中使用的fortran与c编译器要与CESM使用的编译器相同,如果使用intel,就用icc和ifortran;如果是gnu就用gcc和gfortran。
(8)ESMF(optional,5.2版本以上)地球系统建模框架,最好安装7.1版本的,(8.0可能会出问题)
(9)Pnetcdf
(10)LAPACK(最好与netcdf编译到一个路径中,方便环境变量的设置)
(11)BLAS(同上)
……
检查或者安装完上述软件,记得在环境变量中添加路径哦~全部check完成之后就可以进行代码移植了。
二、代码移植
CESM的源代码存在Github,因此使用git工具拉取下载,这个过程中可能会因为网路出现一些问题,多试几次~
git clone -b release-cesm2.1.3 https://github.com/ESCOMP/CESM.git my_cesm_sandbox
成功之后就会出现文件夹 my_cesm_sandbox,cd进去之后会看到
此时我们已经获得了CESM的源代码,但是我们知道CESM是由几个子模式耦合的,因此我们还需要拉取各个子模式的代码。
./manage_externals/checkout_externals
这一步由于网络更容易出现问题,收集了一些解决方法可供参考:
git clone出现 fatal: unable to access 'https://github.com/...'的解决办法(亲测有效)_明天也要加油鸭的博客-CSDN博客
RPC failed; result=35, HTTP code = 0_点云XMU的博客-CSDN博客
(不知道这样直接引用行不行,如果侵权请一定告知我,先抱歉呜呜呜!)
解决git clone报错error: RPC failed; result=35, HTTP code = 0_阿蔡BLOG的博客-CSDN博客
不知道你们使用这些方法能不能解决,反正我没有。
因为这些源代码事实上是在外网,可以通过科学上网试一下哈。
实在不行的话只有最后一条路:求安装包!
我最后是在气象家园蹲到了人美心善的姐姐,如果有缘人看到这篇刚好无法下载的话可以留言邮箱我看到了可以分享一下哈(传递善意)
总而言之,不管是git成功还是直接get 安装包,最后用这句命令来检验:
./manage_externals/checkout_externals -S
每个components前面都不出现字母就是成功了!可以研究下一步啦!