首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让模式源代码动起来

让模式源代码动起来

作者头像
bugsuse
发布2020-04-21 17:49:31
5410
发布2020-04-21 17:49:31
举报

每个转数值模式的都逃不了查看源代码的命运。每当看源代码时,总是理不清那复杂的亲属关系。为了在查阅源代码时更好的理清思路,我们可以使用 f90tohtml 构建模式代码调用流程图。

f90tohtml 是转化 FORTRAN 源代码为 html 的 perl 脚本。所有子程序的调用关系都会被串起来,从而构建一个调用流程树。除此之外,还支持使用 正则表达式 对源代码进行检索,可以边查边搜索,多开(苦)心(逼)啊。

f90tohtml 的目的就是为了浏览数值预报模式的庞大程序库(作者估计也是一个搞模式的啊)。可以查看ARPS,MM5,PSU/UCAR,COAPMS等模式的源代码,当然少不了WRF模式了。

安装

  • 下载 源码安装包,然后解压
tar -zxvf f90tohtml.tar.gz
  • 进入 f90tohtml 目录下,编辑 f90tohtml 文件
cd f90tohtml
vi f90tohtml

更改 perl 的路径,文件中默认的为 #!/usr/bin/perl

将其更改为你的系统中的 perl 的路径,可能是 /usr/local/bin/perl 或 /usr/bin/perl

然后更改 f90tohtml 路径为解压后 f90tohtml 所在路径

$path_f90tohtml="/home/bfiedler/f90tohtml/"

  • 更改权限(根据你所使用的环境,可能需要使用 root 权限执行)
chmod u+x f90tohtml
  • 添加 f90tohtml 路径到 .bashrc 或 .cshrc 中
cd ~
vi .bashrc
export PATH=$PATH:/f90tohtmlpath/
  • 进入 f90tohtml 目录下的 examples 目录,然后编辑 d2ps_prepare.pl 和 crm_prepare.pl ,改变其中的 $the_path 为f90tohtml/examples/d2ps 所在路径。改变 d2ps.f2h 中的 $dir_html,这是用来指定要创建的 d2psbrowser 路径。注意:不要自行创建此目录。
  • 键入 perl d2ps_prepare.pl ,然后执行此脚本,最终会创建 d2ps_ls 目录和此目录下的 src.ls 文件
  • 然后键入 f90tohtml d2ps.f2h ,如果成功了的话,就可以使用任意浏览器查看源代码了

以上只是安装及测试,下面主要说一下WRF模式代码调用树的构建

  • 在 f90tohtml 目录下执行 ll 即可查看目录内容,可以看到 nwp_codes 目录,进入到此目录下
cd nwp_codes
vi wrf_prepare.pl
  • 然后更改 $the_path 为WRF源码路径 : /path/of/wrf/../WRFV3/
  • 键入 perl wrf_prepare.pl 生成 .ls 等文件(一般生成后就不用管了)
  • 改变 wrf.f2h 中的 $dir_html 为转换后的输出目录
  • 然后键入 f90tohtml wrf.f2h 即可得到你想要的结果了

:浏览代码时,程序旁的绿色圆表示打开流程树,青色的圆表示调用状态

后面就可以方便的看源代码了

以下是完成后的效果图

打开 index.html

以上就是构建后的所有代码,每一个模块和子程序的开始行都有两个数字,这就是代码的 被调用次数 调用其它子程序的次数。一般要查看的调用代码是在右下角的窗口显示。

左上角为目录窗口,底部提供了正则表达式引擎,用于进行代码检索

构建好流程树后也可以搭建个 ftp 服务器,供大家查看,如下图:

:不要好奇那个 IP 地址了,这仅是在本地搭建的 ftp,并没有放到外网,所以和我不在一个内网下的你是无法查看的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气象杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档