本文由杨亚钦提供,敝人略作修改。希望对新手有帮助。另一篇较旧但仍有参考意义的中文入门指南参见http://zhang20031320025.blog.163.com/blog/static/59805856200891233858965/

本篇文章包括以下内容
---------------------------------------------------------------------
1.安装Fedora 9
2.安装INTEL Fortran Complier
3.安装NCAR Graphics
4.测试INTEL Fortran complier 和 NCAR Graphics
5.运行TERRAIN
6.运行REGRID
7.运行INTERPF
8.运行MM5
9.后处理
---------------------------------------------------------------------

1.安装Fedora 9
下载Fedora 9 (http://mirrors.fedoraproject.org/publiclist/Fedora/9/i386/),用grldr硬盘安装Fedora 9,安装方法可以在网上搜索找到。记得安装软件开发库包括X窗口的开发库(若非命令行形式运行),以及开发工具。

2.安装INTEL Fortran Complier
到INTEL网站下载INTEL Fortran Complier
按照里面的介绍安装,默认安装目录为:
/opt/intel/fc/10.1.022
/opt/intel/idb/10.1.022
安装过程中可能提示:需要libstdc++so.5,这时可以运行
# yum install libstdc++.so.5
然后重装安装INTEL Fortran Complier。安装完成后,进入安装目录下/bin,
# source ifortvars.sh

3.安装NCAR Graphics (可选)
下载NCARG,不同的版本安装方法不尽相同,以ncarg-4.4.0.REDHAT9_GNU3_PC.tar.gz为例,下载并解压后进入INSTALL目录,输入命令
# ./INSTALL
然后按照提示安装即可,默认安装目录:/usr/local/ncarg ,安装完成后还需要设置环境变量。

4.测试INTEL Fortran complier 和 NCAR Graphics
测试INTEL Complier:
输入which ifort,如果能看到/opt/intel/fce/10.0.015/bin/ifort ,那么就安装设置成功了
测试NCAR Graphics:
# ncargex cpex08
# ctrans -d X11 cpex08.ncgm
能看到图形表示安装成功,如果提示“g77: command not found.”,则运行
# yum install compat-gcc-34-g77.i386
或许自己下载安装compat-gcc-34-g77.i386,然后重新再试一次

5.编译运行TERRAIN
下载MM5的所有模块: ftp://ftp.ucar.edu/mesouser/MM5V3
下载TERRAIN DATA:  ftp://ftp.ucar.edu/mesouser/MM5V3/TERRAIN_DATA

5.1 下载libg2c.a 放到 /usr/lib/ , 如果 /usr/lib/gcc-lib/i386-redhat-linux/*.*.*/ 中有该文件则不用下载

5.2 编辑 Makefile
# gedit Makefile
找到以下段,修改为libg2c.a的目录,如/usr/lib/
intel:
echo "Compiling for Linux using INTEL complier"
....
"LOCAL_LIBRARIES = -L$(NCARG_ROOT)/lib -L/usr/X11R6/lib –lncarg -lncarg_gks -lncarg_c -lX11 -L/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/ -lg2c " ) ;
.....

5.3 编译
# make intel
# make terrain.deck
若成功,会出现:
90 Lines Compiled
/bin/rm -f rdnml.f
ifc rdnml.o -i_dynamic -o rdnml
make[1]: Exiting directory `$home/mm5v3/TERRAIN/src'

5.4 编辑 terrain.deck.intel
# gedit terrain.deck.intel
根据需要修改里面的参数,然后输入命令
# mv terrain.deck.intel terrain.deck

5.5 运行
# ./terrain.deck
若成功,会出现:
mon dec 29 14:18:43 CET 2003
./terrain.exe
rm fort.15 fort.16 fort.18
若成功,输出日志文件最后会出现:
== NORMAL TERMINATION OF TERRAIN PROGRAM ==
FORTRAN STOP 9999
并产生TERRAIN_DOMAIN1、TERRAIN.DOMAIN2..等文件

5.6 画图
# idt TER.PLT
如果对输出结果不满意则回到5.4再编辑terrain.deck,然后重新运行

6.运行REGRID
进入REGRID的目录,输入
# make intel
# cd pregrid
# gedit pregrid.csh
根据输入的数据编辑 pregrid.csh ,具体见MM5说明书
# ./pregrid.csh
如果成功,最后会显示
Normal termination of program PREGRID_****
# cd ../regridder
根据输入数据编辑 namelist.input
# ./regridder
如果成功,regridder目录下会出现
-rw-r--r--   1 mesouser users   2177888 Mar 17 18:26 REGRID_DOMAIN1

7.运行INTERPF
进入INTERPF的目录,输入命令
 # ./make intel
根据REGRID的输出结果,修改namelist.input ,然后执行
 # ./interpf
若成功,最后讲话显示
-------------------------------------------------
FINISHED INTERPF FOR DOMAIN ID #1
-------------------------------------------------
STOP 99999
在INTERPF目录下也会产生三个文件
-rw-r--r-- 1 mesouser users   1825164 Jan 7 08:13 BDYOUT_DOMAIN1
-rw-r--r-- 1 mesouser users    170936 Jan 7 08:13 LOWBDY_DOMAIN1
-rw-r--r-- 1 mesouser users   2889044 Jan 7 08:13 MMINPUT_DOMAIN1

8.运行MM5

8.1 MM5 输入数据
要运行MM5你需要以下数据,并要把数据复制或者链接到 MM5/Run/中:
INTERPF的输出数据MMINPUT_DOMAIN1、BDYOUT_DOMAIN1、LOWBDY_DOMAIN1
TERRAIN的输出数据TERRAIN_DOMAIN*
注:其中“*”为 2、3、4……

8.2 编辑 configure.user
# gedit configure.user
找到下面这段,把"#"去掉
#--------------------------------------------------------------------------
#    3i2. PC_INTEL (LINUX/INTEL)
#--------------------------------------------------------------------------
#RUNTIME_SYSTEM = "linux"
#FC = ifort
#FCFLAGS = -I$(LIBINCLUDE) -O2 -tp p6 -pc 32 -convert big_endian
#CPP = /lib/cpp
#CFLAGS = -O
#CPPFLAGS = -I$(LIBINCLUDE)
#LDOPTIONS = -O2 -tp p6 -pc 32 -convert big_endian
#LOCAL_LIBRARIES =
#MAKE = make -i -r
找到以下段,一般需要根据TERRAIN的设置修改。MAXNES 为区域的数量,MIX和MJX 为最大网格数
#--------------------------------------------------------------------------
# 5. Options for making ./include/parame.incl
#-----------------------------------------------------------------------------
#
# FDDAGD (integer)                  - "1" -> FDDA gridded run
FDDAGD = 0
#
# FDDAOBS (integer)                 - "1" -> FDDA obs run
FDDAOBS = 0
#
# MAXNES (integer)                  - Max Number of Domains in simulation
MAXNES = 2
#
# MIX,MJX (integer)                 - Maximum Dimensions of any Domain
MIX = 49
MJX = 52
# MKX (integer)                     - Number of half sigma levels in model
MKX = 23
8.3 编译
# make
若成功,将出现:
# make mm5.deck
若成功,将出现:
Including file ./Templates/oparam
Including file ./Templates/lparam
Including file ./Templates/nparam
Including file ./Templates/pparam
Including file ./Templates/fparam

8.4 运行
根据需要编辑 mm5.deck ,然后运行
# ./mm5.deck
# cd Run
# ./mm5.exe
如果成功则会出现:
--- MODEL OUTPUT IS WRITTEN AT TIME = 720.00 MINUTES FOR DOMAIN 1
--- MODEL OUTPUT IS WRITTEN AT TIME = 720.00 MINUTES FOR DOMAIN 2
+++ REWINDING SAVE FILE FOR DOMAIN 1
+++ RESTART FILE IS WRITTEN AT TIME = 720.00 MINUTES FOR DOMAIN1. IXTIMR = 720
+++ REWINDING SAVE FILE FOR DOMAIN 2
+++ RESTART FILE IS WRITTEN AT TIME = 720.00 MINUTES FOR DOMAIN2. IXTIMR = 720
FORTRAN STOP 99999
并且可以在 MM5/Run下面看到 MMOUT_DOMAIN*文件 ,其中“*”为1,2,3……

9.后处理
完成MM5以后还需要将MM5的输出文件转化为GrADS 等画图软件可以使用的格式。在这里只介绍MM5toGrADS。进入MM5toGrADS目录,用make进行编译
# make
编辑 mm5_to_grads.csh
# gedit mm5_to_grads.csh
找到一下字段,根据自己需要修改,输入输出文件
set infilename = "/home/MM5_v35/MM5/Run/MMOUT_DOMAIN1"
set outfilename = "test"
编辑 namelist.input
# gedit namelist.input
根据自己需要修改一些输出的参数,然后运行mm5_to_grads.csh
# ./mm5_to_grads.csh
如果你设置outfilename = "test",则你将得到以下连个文件
 test.ctl
 test.dat
如果你已经安装GrADS,你将可以看到MM5的预报结果。