计划利用上海天文台提供给晴天钟使用的服务器运行WRF,以研究WRF模式在观测天文学上的应用。本来以为装个WRF应该不在话下,没想到竟然陆陆续续又折腾了三天才弄好,以下简单介绍一下流程以及遇到的问题。

  平台:Intel Xeon八核处理器,64位CentOS 5.5。

  简单的安装流程(详细的就不多说了,网上教程多得是):

  • 安装PGI,我用的是64位的7.07版;
  • 用pgf90+gcc编译器安装netCDF,我用的是4.0.1版(4.1.3版不知道为什么,启用不了对HDF5的支持),注意安装完一定要make check一下;
  • 安装NCARG,我用的是yyq提供的编译好的5.0.1版,但之后其实用不了,自行编译的6版本也无法通过;
  • 用pgf90+gcc编译器安装MPICH2,我用的是1.4版;
  • 用pgf90安装jasper,我用的是1.9版,注意源代码不要着急着删除;
  • 编译WRF,我用的是3.3版,以及smpar参数(我不知道服务器的内存是共用的还是分布式的);
  • 编译WPS和ARWpost,但NCARG的两个插件编译不出。

  再简单说说遇到的问题:

1. 为何用PGI而不用Intel的编译器

  我开始图省事用了Intel的编译器,结果metgrid运行通不过(确定前面的编译没有错误),显示如下错误:

forrtl: severe (173): A pointer passed to DEALLOCATE points to an array that cannot be deallocated

  在WRF用户论坛上也有人遇到过类似的问题,但他用的是64位的Ubuntu,诡异的是他切换到CentOS之后问题解决。那个帖子下面也有人给出解决方案,但我用了没效果。

  最后用PGI重新编译一次(注意所有的程序都得用PGI+gcc编译),问题解决。

2. NCARG

  换了4、5、6三个版本,均无法让WPS通过编译,总是显示

ld: skipping incompatible libncarg.a when searching for -lncarg

  因为NCARG不是必需品,所以就不在这上面花费时间了。

  特别感谢大学同学yyq的巨大帮助!