比如位于CAM的源码根目录下,统计CAM的源码总行数(去掉空格)
$find ./ -name "*.F90" |xargs cat|grep -v ^$|wc -l
答案是——————————499742
居然不到50万行,比我想象要少诶……
参考资料中还有记录空行等命令格式
http://www.cnblogs.com/fullhouse/archive/2011/07/17/2108786.html
学校四期平台,程序能够成功编译和运行,但是提交任务后不输出。del掉后log文件出现
Could not chdir to home directory /users/XXXX: No such file or directory
后来或者索性没有输出。应该是节点通信错误,无法找到文件系统?多次尝试重新提交有时可以解决该问题。
做何老师在FGOALS上的试验,需要把加热率的输出,但是不在Master list里,要hard-coded进去。官方文档(CAM3 ug)和tutorial上都有介绍方法,不过写的都很简单,甚至连在哪一个文件里改都没有介绍。几经周折,发现大部分输出都在cam的physics包下的cam_diagnostics.F90下。预计是就把三条语句直接加在了这里,结果运行后长时间没有输出,看起来不对。
之后的思路是仿照已经在master list里的变量加入history output的方法,去查找这些非默认加入的变量,在cam_diagnostics.F90这些变量的响应位置加入对加热率的输出,结果出现了编译不通过的情况。具体错误为大致数组没有声明。
查看physpkg.F90,发现加热率在每一个物理包运行后都会被physics_update归零,所以变量应该只能在调用deep_convect后而update前进行输出,于是吧addfld和add_defalult加载cam_diagnostics文件下,而outfld加在刚刚所说的位置。目前可以输出,还没有检查输出是否有问题。
#Up to 201408071349#
回到住宿处用ncl查看,将26层全部输出,确实中高空都是有数值的,看起来问题不大。但是量级上达到0.1K/kg/s,1分钟加热6摄氏度?考虑到对流的时间尺度,或许是这样吧……等回来真正开始做试验的时候具体看看。
#Up to 201408072319#