气象数值模式中涉及到的源代码非常庞大,而且各种模块非常的多,虽然体系非常清晰,并对不同类别的模块进行了分类,但是仍然无法清晰的知道每一个模块之间的调用流程。为了熟悉模式的调用流程,方便向模式中添加内容或者出现问题的时候更容易检查问题,可以创建模式的调用流程图,从而熟悉模式模块之间的调用。

以WRF模式为例,用 f90tohtml 创建模式调用流程图。

安装 f90tohtml

先下载 f90tohtml 然后解压到指定文件夹:

1
tar -zxvf f90tohtml.tar.gz

然后进入 f90tohtml 文件夹中,更改 f90tohtml 中的 perl 的路径,如果路径和系统中的perl所在路径一致则无需更改(用 which perl 查看系统中 perl 的路径)。

1
2
cd f90tohtml
vi f90tohtml

然后更改 f90tohtmll 中的 $path_f90tohtml 为解压后的 f90tohtml 所在的路径。

执行以下命令更改 f90tohtml 的权限

1
chmod u+x f90tohtml

添加 f90tohtml 路径到 .bashrc 中

1
2
vi ~/.bashrc
export PATH=$PATH:/f90tohtmlpath/

进入 f90tohtml 目录下的 examples 目录,然后编辑 d2ps_prepare.pl 和 crm_prepare.pl ,改变其中的 $the_path 为f90tohtml/examples/d2ps 所在路径。修改 d2ps.f2h 中的 $dir_html,这是用来指定要创建的 d2psbrowser 路径。注意:不要自行创建此目录。

执行以下命令,然后生成一些测试文件

1
 perl d2ps_prepare.pl

然后执行以下命令

1
 f90tohtml d2ps.f2h

以上都是安装以及测试操作,下面开始生成WRF模式的源码调用流程图。

创建WRF调用流程图

执行以下命令进入 nwp_codes 目录,然后修改 wrf_prepare.pl 中 $the_path 为WRF源码路径 : /path/of/wrf/../WRFV3/

执行以下命令生成 .ls文件

1
perl wrf_prepare.pl

修改 wrf.f2h 中的 $dir_html 为转换后的输出目录

注意:修改 $dir_html 时,文件夹应该是不存在的,否则生成文件时会出错。

然后执行以下命令生成WRF模式调用流程图

1
f90tohtml wrf.f2h

文中以 WRFV3.9.1 为示例,创建了WRF模式的调用流程图,在主页 model 标签下可查看生成后的效果。

生成后的页面提供了正则表达式的搜索,可以更方便的进行检索操作。