信息技术改变生活

Xiaobo Wu'shared space

Noah LSM 编译

今天晚上,总算完成Noah LSM 3.4.1编译工作,编译环境是VS2012+IVF2013+Win7+netcdf fortran 4.4.1 。可能用命令(gfortran和gcc等)去编译估计更快,但是我希望在熟悉的windows vs 下面去编译,这样可以debug LSM的代码,以及更容易修改代码。

长话短说,先看效果,Noah LSM编译成功后VS截图如下:

整个详细编译过程如下:

  • (1) ZIB + SLIB + HDF5 + CURL编译,过程比较简单,用Cmake生成VS2012直接编译即可。

  • (2) NETCDF编译,编译比较复杂,首先编译完成netcdf c 4.3.2(依赖于步骤1中的lib和include), netcdf c也可以下载最新编译好的版本安装,然后编译netcdf fortran4.4.1,编译netcdf fortran4.4.1一定注意要将netcdf.f90和netcdf4.f90分开编译成2个lib,我在这里卡了好一阵,网上有别人编译好的(http://www.whigg.cn/yanhm/fortran.htm),但不是我想要的,并且在VS2012下测试有问题(可能原因是vs2010下编译依赖dll是msvcr100.dll,而vs2012是msvcr110.dll),真是服了微软了,所以我硬着头皮自己编译。vs编译过程2个重要环境设置如下:

  • (3)编译Noah LSM,只要将NetCDF编译好,相信很简单,需要将网上下载的3.4.1版本中所有的.F文件,手动修改成.F90,因为Noah LSM 3.4.1 代码内容是Fortran90格式书写的,其他小错误修改没啥难的。

综上所述,Netcdf Fortran编译是整个过程编译的关键。

附件下载:

编译好的netcdf fortran4.4.1相关文件

netcdf4.4.1-IVF-VS2012(win32).

netcdf4.4.1-IVF-VS2012(x64).

编译好的Noah LSM 运行文件

Offline 1D Noah LSM v3.4.1 driver(win32).

Offline 1D Noah LSM v3.4.1 driver(x64).

Update on JAN. 16, 2015

Release on JAN. 15, 2015

Update on Sep. 18, 2015(add 64 bit)

如果需要源码工程文件,请与我联系。