VIC模型编译

Posted by CryoECNU on October 6, 2021

VIC Classic

VIC Classic的编译比较简单,只要到VIC源码目录下面,找到vic/drivers/classic,进去之后

export CC=gcc-6

然后直接make就完了

所谓classic,大概意思就是一个一个网格的数据都是以常用文本格式或者二进制格式给出,运行的时候呢,时间优先于空间。似乎不支持并行计算。

VIC Image

这个使用的是NETCDF作为输入输出,并且使用MPI做并行计算。这个编译就需要多一个NETCDF库的设置。

在Linux下(比如Ubuntu)其实比较容易,只要把gcc、libnetcdf、mpich装上,简单把MPICC, NC_LIBS, NC_CFLAGS三个环境变量设置一下就直接make就完了。

但是在MAC OS下面,不管是MACPORTS还是HOMEBREW安装的gcc、netcdf、mpich包,安装的时候都没问题,但是编译VIC的时候总报莫名其妙的错误。没办法,只好自己编译NETCDF和MPICH库了。

这里以homebrew安装的GCC7为例,写了一个bash脚本来简化编译过程。有时间再试试看windows下面如何编译VIC模型。

【编译NETCDF和MPICH】