LZN's Blog CodePlayer

【已解决】CESM源码查阅技巧(Linux下文本文件处理技巧)

2014-07-31
LZN

在经历两天完全没有头绪的痛苦过程后,终于想起来去年十一月刚刚开始试着移植CESM的时候在工作站上下载的CAM Tutorial。抓过来一看,果然有physics和接口的介绍,虽然Tutorial已经是09年的了,但当时居然已经是CAM5的版本……NCAR五年前就已经转的起来CAM5的物理包了么……天河二号上转起来都这么慢,反正Tianhe-2性能指标基本都是靠Phi顶起来的,也不奇怪。扯远了。

这套tutorial的interface模块介绍写得正合我胃口,基本都是介绍CAM源码结构,运行流程的。看过Neale的Physics in CAM的Tutorial,对大致的物理过程运行流程清楚后,这个interface模块介绍的tutorial看起来还是很顺的。而且值得窃喜的三点是:

1.我居然下载了它,因为目前CESM官网上已经删除了10年以前的培训材料。当然这会有一个比较大的问题,10年之后基本都是针对CESM的,每个模块都讲,但是都讲不细致。所以已经找不到针对CAM Interface的培训资料了。我很幸运。

2.它里面举的例子居然是针对convect_deep.F90诶~就是要改你丫的嘛啊哈哈哈

3.2009年NCAR就已经用起来CAM5了诶!啊哈哈哈!

不扯了,说正题。其实就是为了记录一下vi已经linux的一些使用技巧,尤其是处理文本的时候(比如源代码)。

vi下查找

:/the_content_you_search

查找下一个用n键

#Up to 20140729#

在physics的主调用程序下查找所有的物理包,这个命令很好用。

grep call tphys*c.F90

tphys*c.F90通配了before和after coupling的两个物理包调用文件,grep这两个文件中的call语句(亮点!),因此抓出来的都是参数化过程。

#Up to 20140731#

上述语句配合管道符可以改写为

cat tpys*c.F90 | grep call

#Up to 20140802#

统计源码行数:比如位于CAM的源码根目录下,统计CAM的源码总行数(去掉空格)
$find ./ -name “*.F90″ |xargs cat|grep -v ^$|wc -l
答案是——————————499742 居然不到50万行,比我想象要少诶…… 参考资料中还有记录空行等命令格式 http://www.cnblogs.com/fullhouse/archive/2011/07/17/2108786.html #Up to 20140815#

Similar Posts

Comments