MM5调试详细步骤记录

今天,我开始进行MM5的调试学习,虽然现在整个Models-3还没有装好,原因是版本的问题,所以我准备换Linux系统了,现在先来进行已经可以做的MM5调试。--具体内容要看MM5用户手册。

------------------------------------------偶是调试之TERRAIN的分割线------------------------------------------

       TERRAIN是MM5模式系统中的第一个程序,每个完整的模拟都始于此程序。此程序把按经纬度规则分布的地形高度和植被组成水平插值(或分析)到所选择的中尺度区域内。
--------------------------------------------------
TERRAIN主要执行两个任务:
a.建立中尺度区域:粗细网格(除了移动嵌套外);
b.为所有的中尺度区域产生地形文件,这些文件首先被REGRID使用,而后被MM5和NESTDOWN使用。该程序也计算几个模式系统需要的常值场:纬度和经度,地图比例因子,以及科氏参数。
--------------------------------------------------
*若系统中无NCAR图形包,则必须修改Makefile文件,设置NCARGRAPHICS=NONCARG,并删除LOCAL_LIBRARIES行上的链接库。(试验结果是,不删除比较好,删除后运行中会有错误)
*下载地形资料,网址:http://ccar.ust.hk/~mesouser/ftp.ucar.edr/mesouser/MM5V3/TERRAIN_DATA/(我比较震惊的是,下载下来的未解压资料还不到150M,可是解压后足足有8G,可怜我的小本本一共才20+G),将所需地形、地表资料解压后拷入~/mm5v3.7/TERRAIN/Data文件夹中。
--------------------------------------------------
1.修改Makefile文件的两个参数;
2.# make terrain.deck--建立脚本文件terrain.deck(在其中设置参数)
   a.将选定的模式中心点的纬度和经度赋值给变量“PHIC”和“XLONC”;
   b.将模式范围东西向的总格点数、南北向的总格点数和网格距(km)分别赋值给变量"NESTJX"、“NESTIX”和“DIS”;
   c.选好地形分辨率参数。
2.# ./terrain.deck--生成文件:
   make.terrain.out(编绎信息的记录文件,检查该文件,看编绎是否成功);
   terrain.exe; 
   terrain.namelist;
   TERRAIN_DOMAIN1; TERRAIN_DOMAIN2(这两个是我设置的两重嵌套从而生成的两层地形文件);
   make2.print.out(我不清楚这个是什么东西,不过运行后有这个东西生成);
   terrain.print.out(这个是执行terrain.exe后得到的)
3.当在terrain.print.out中最后的一行看到“==NORMAL TERMINATION OF TERRAIN PROGRAM==”时,意味着TERRAIN程序执行成功。
*如果模式预报范围的中心点位置、格点数和格距不变的话,作预报时不必再次运行TERRAIN。

------------------------------------------偶是调试之REGRID的分割线------------------------------------------

       REGRID的目的是读取气压层上的气象分析资料,并把分析数据从原有的格点和地图投影上插值到由MM5的预处理程序TERRAIN定义的格点和地图投影上。
       REGRID处理等压面和地面分析资料,并在这些层上进行两维插值。
       REGRID是MM5系统流程图中的第二步。它需要来自TERRAIN程序的输出作为其输入,并为RAWINS, LITTLE_R(这两项我好像是用不到),或INTERPF准备输入文件。这些文件通常作为客观分析的第一猜值场(RAWINS或LITTLE_R),或作为分析场被直接插值到MM5的模式层上为MM5提供初始条件和边界条件(INTERPF)。
--------------------------------------------------
此套程序包含两个任务:
a.数据输入(比如读入原始的气象分析数据)由pregrid程序集处理;
b.插值到MM5的格点上--由regridder程序集处理。
--------------------------------------------------
将所需NCEP资料或T213预报场资料下载后放入~/mm5v3.7/REGRID文件夹中,文件名如:grib2002011500。它将这些资料内插到MM5模式网格点上,形成模式第一猜值场。
--------------------------------------------------
1.# make--产生可执行程序;
2.在Pregrid目录中有一个名为"pregrid.csh"的脚本程序,在此设置参数,包括处理日期等;
   # chmod u+x pregrid.csh--确保此脚本可执行;
   # ./pregrid.csh--生成“中间文件”;
3.在regridder中,修改文件“namelist.input”的参数。
   a.将模式起报时间的年、月、日、时(世界时)赋值给变量“START_YEAR”、“START_MONTH”、“START_DAY”和“START_HOUR”;
   b.将模式终止时间的年、月、日、时(世界时)赋值给变量“END_YEAR”、“END_MONTH”、“END_DAY”和“END_HOUR”;
   c.修改“中间文件”所在文件夹的信道号。
4.# ./regridder--创建文件:REGRID_DOMAIN1
*只算第一层,仅用地形资料
*regridder完全通过namelist文件来运行。

------------------------------------------偶是调试之INTERPF的分割线------------------------------------------

       INTERPF程序处理分析场和中尺度模式之间的数据转换。它包括垂直插值,诊断分析并重新指定数据的格式。INTERPF获取REGRID,RAWINS或LITTLE_R的输出数据作为其输入来产生模式的初始和侧边界条件以及下边界条件。
--------------------------------------------------
1.# make--创建可执行文件;
2.编辑namelist.input文件,在此文件中设置初始值(包括模式起报时间和终止时间),并在其中指定REGRID_DOMAIN1的路径;
3.# ./interpf--生成文件:
   BDYOUT_DOMAIN1,LOWBDY_DOMAIN1,MMINPUT_DOMAIN1;
  *BDYOUT_DOMAIN1:包含三维场的侧边界,通常是4行(列);
   LOWBDY_DOMAIN1:包含表面温度场的日平均或随时间改变的表面温度场(地面层上的空气温度和海平面的温度),也可以选择海冰或雪盖场。下边界条件;
   MMINPUT_DOMAIN1:包含与时间有关的三维和二维场,比如风、温度、温度和气压。气象数据。
4.成功结束,有“STOP 99999”语句。

------------------------------------------偶是调试之MM5的分割线------------------------------------------

       这是MM5模式的数值天气预报部分(主程序),采用包含水汽变量的非静力平衡的方程组,还有一系列的积云参数化、边界层参数化等物理过程。
--------------------------------------------------
MM5的目的:
a.MM5是模式系统的数值天气预报部分;
b.MM5能够用于理论和实时研究,这些应用包括对季风,飓风以及龙卷风所作的预报模拟和四维数据同化;
c.在更小的中贝塔和中伽马尺度上(2-200km),MM5能够被用于研究中尺度的对流系统,锋面,海陆风,山谷环流以及城市的热岛效应。
--------------------------------------------------
编译并运行MM5系统需要2步操作:
a.选择编译选项并编译代码;
b.修改运行时(run-time)选项并执行该程序。
--------------------------------------------------
*将上述生成文件拷入mm5v3.7/MM5/Run目录中。
1.编译MM5:
a.编辑“configure.user.linux”文件(注意要与TERRAIN链接库中关于DOMAIN设置的最大区域网格点数一致,初学者设成一个DOMAIN)。再用命令“cp configure.user.linux configure.user”(即将linux下的文件保留即可)。
b.# make
*用户通过编辑“configure.user”文件选择适用于其系统的编译选项。用户需要关注以下两个方面:
 1)找到适用于你的机器的编译选项部分,把对RUNTIME_SYSTEM变量和编译选项的注释去掉;
 2)在configure.user文件的第5、6部分设置模式选项,用来为编译建立区域大小,4DDA和物理选项;
2.运行MM5:
a.# make mm5.deck--建立“mm5.deck”的脚本程序,要获取所需的deck,必须正确设置RUNTIME_SYSTEM;
b.编辑mm5.deck,设置合适的namelist值; 
   预报总时间长度“TIMAX”和“XENNES”;
   积分时间步长“TISTEP”;
   结果输出时间间隔“TAPFRQ”;
   模式范围东西向的总格点数“NESTJI”;
   南北向的总格点数“NESTIX”。
c.# ./mm5.deck>&log.txt&--后台执行(可关掉终端)。显示:top;退出显示:q;停止:kill 行号(PID)。
3.打开“mm5.print.out”文件可查看模式运行情况。
--------------------------------------------------
*基本运行:至少需要设置这些namelist变量:TIMAX, TISTEP, TAPFRQ, NESTIX, NESTJX, NESTI, NESTJ;
 重启运行:除了上述变量外,设置IFREST=.TRUE.和IXTIMR=重启时间(可以在前次运行末找到)。
 单向运行:同基本运行。
--------------------------------------------------
MM5的输入:
1)用于基本运行的由INTERPF产生的文件:
      a.模式初始条件文件:MMINPUT_DOMAINx;
      b.用于粗网格区域的侧边界和低层边界文件:BDYOUT_DOMAIN1,LOWBDY_DOMAIN1;
      c.如果使用了IOVERW=2选项,则需要由TERRAIN程序产生的嵌套地形高度文件:TERRAIN_DOMAIN2,3……
2)如果是重启运行,文件来自于MM5程序:
     来自于前次运行的模式保存文件:把SAVE_DOMAINx改为RESTART_DOMAINx。
3)如果使用地面分析数据来运行4DDA,则文件来自于RAWINS:
     FDDA的地面分析:SFCFDDA_DOMAINx
4)如果运行测站同化,则文件由用户提供:
      FDDA 4D测站文件:MM5OBS_DOMAINx;
5)mmlif:含有用户指定选项的mamelist文件;
6)LANDUSE.TBL:用户可修改的陆地类型特征(ASCII)文件;
7)RRTM_DATA:RRTM辐射方案文件;
8)BUCKET.TBL:用户可以修改bucket土壤模式中所使用的常数。
*注意工作站的mm5.deck要求上述的所有文件都在Run目录下。
--------------------------------------------------
MM5的输出:
在MM5的积分过程中,一些文件将被产生。它们是:
a.如果IFTAPE=1,则产生历史记录文件(MMOUT_DOMAINx),输出频率是由TAPFRQ变量设定的;
b.如果IFSAVE=.TRUE.,则产生重启文件(SAVE_DOMAINx),输出频率由SAVFRQ变量设定的。

[完结]

------------------------------------------偶是调试之末的分割线------------------------------------------
路漫漫其修远兮 吾将上下求索
原文地址:https://www.cnblogs.com/hbmlml/p/4231598.html