2/27/2012

SMOKE 初窥

SMOKE比我想象的要复杂很多,它并不像WRF或CMAQ一样有一个核心的程序,而是有很多子程序 (processors)。

SMOKE由MCNC-North Carolina Supercomputing开发,旨在为CMAQ等空气质量模拟软件提供污染源,其实质是对国家公布的排放清单作一个数据转换,对年排放量内插出日排放量,将特定区域划分网格 (gridding)。SMOKE可以处理面源、点源、线源、生物排放等污染源,每个源由不同的程序执行。下图显示了主要程序:


Smkinven将排放清单读入,最后Smkmerge和Mrggrid输出model-ready的排放源文件。

可是,SMOKE是为美国设计的,其排放源的分类、区域代码、空间地理信息、时间谱等都使用美国标准,需要开展很多的本地化工作,华南理工大学的张礼俊的硕士论文就是做这方面的工作,可以借鉴。目前,我还是很糊涂,也在犹豫是否要深入研究,毕竟这个工作量都足够人家硕士毕业了。

2/21/2012

做一个完整的人

一直在想是不是要把这个博客写成一个纯技术型的,把对她的感情分离到另一个博客中。但今天看完周国平写的<在世纪的转折点上:尼采>后,我改变了这个想法。正如尼采所说的,我们过分地崇尚科学,甚至被科学所奴役,我们忘了一个根本性的问题:究竟是科学为人服务,还是人为科学服务?就像我之前,我觉得将科学和情感放在一个博客中展现很奇怪;事实上,我这种想法才是很奇怪的,理性和感性本就是人的两面,我为什么要刻意地分开,甚至觉得让别人看到一个技术男在谈感情是令人别扭的一件事呢?因此,我决定把我所有的想法全写在这一个博客上,只做标签上的区别,在这里,展现一个完整的我。

写到这里,顺便摘一些书上看到的比较发人深省的话。

你要站在你自己的生命之上,高屋建瓴地俯视你自己的生命,不把它看得太重要,这样你反而能真正地体验它,享受它,尽你所能地把它过得有意义。

人只以勇敢和毅力所许可的限度接近真理。强者必须认识并肯定现实,正如弱者必须害怕和逃避现实一样。只有强者才有认识的自由,弱者却需要生活在欺骗之中。精神的强者出于内在的丰满和强盛,与一切相嬉戏,玩弄至今被视为神圣不可侵犯的事物,藐视至高无上者。只有这样的强者才能真切体验到人生的意义,从人生的痛苦中发现人生的欢乐。他的精神足够充实,在沙漠中不会沮丧,反而感觉到孤独的乐趣。他的精神足够热烈,在冰窟中不会冻僵,反而感觉到凛冽的快意。这也就是尼采所提倡的酒神精神。

无聊是一颗空虚的心灵寻求消遣而不可得,它是喜剧性的。寂寞是寻求普通的人间温暖而不可得,它是中性的。然而,人们往往将它们混淆,甚至以无聊冒充孤独……“我孤独了。”啊,你配吗?

最后,总结下尼采的各种重要的观点:酒神精神,强力意志,评价,创造,“自我”,非理性,以及“一切价值的重估”。

不得不说,理科的思维让我们局囿在微观的世界中,我们更多地关注了一个技术性或科学性问题,却忘了以鸟瞰人生长河的豁达来思考人生,以俯视大千世界的广阔来理解世界。有时候,跳出一些框架,整个世界都会发生变化。


2/17/2012

CMAQ深入理解

这周仔细看了CMAQ手册 CMAQv4.7.1 Operational Guidance Document 的1-5章,弄清了各子程序的compilation options, execution options, 输入还有输出。CMAQ给用户极大的灵活性,同时也带来了配置安装的极大的复杂性,每个子程序在编译和执行时都有很多的选项,目前我了解的更多的是 technical options,而 scientific options则无法理解。

本打算这周把WRF和CMAQ连起来跑一个case,但没有实现。一来团队人员不小心误删了wrf生成的文件,另外在ARWPost上又花了一点时间;二来自己这周也没什么工作热情。

顺利的话,下周串上WRF, CMAQ, SMOKE

2/12/2012

WRF和CMAQ安装配置

这周主要完成了WRF和CMAQ的安装。

记不清这是第几次安装WRF了。之前一直在自己的笔记本上装,环境是Ubuntu 32位和Intel Compiler。但笔记本上的Ubuntu经常崩溃,经常不能开机,所以就更换了机器。现在在台式机上,搭的CentOS 5 32位。原来也用的Intel 编译器,但后来跑WRF的metgrid.exe时,总是出现这么一个错误:


         forrtl: severe (173): A pointer passed to DEALLOCATE points to an array that cannot be deallocated


 随即程序就停止了。


尝试了好久,才发现网上也有人曾遇到这个问题,说是Intel编译器的问题,换成PGI就可以了。我尝试了一下,还真是。看来不同的编译器,对程序的影响还是很大的。


于是这周的工作就是安装CentOS, PGI, MPICH2, NetCDF, I/OAPI, WRF, WPS, ARWPOST, CMAQ, SMOKE。


CMAQ的安装略微复杂,要装好多库和子程序,如M3BLD, STENEX, PARIO, CVS, JPROC, BCON, ICON, CCTM, MCIP。安装过程在官方的文档中都给出了详细的说明,无非就是更改一下安装脚本中变量的路径、编译器的路径等信息。


WRF是新一代模拟气象条件的中尺度模型。CMAQ以WRF的输出为驱动,模拟污染物的传播和扩散。CMAQ综合考虑了气象条件、化学变化、污染源情况、物理过程,通过将有限空间划分成格网(不规则的?),以质量守恒为原则,用欧拉模型,计算网格间污染物的传播和网格内污染物的化学变化。CMAQ作为第三代空气质量模型,其最大的特点在于可同时考虑多种污染物,以及多尺度的无缝结合,所谓“ One atmosphere"。 

I/O API的作用是读入和输出数据,以及程序内部数据的传输。数据以netCDF形式存储。如果要做数据转换的话,这部分应该着重研究。

M3BLD的作用是将源代码编译成二进制可执行文件,因此要第一个编译。

JPROC的作用是计算在无云情况下,光分解的速率。因为很多化学物质是在光照情况下才发生的,所以入射光的能量对污染物的传播和扩散有重要影响。它通过查找一个静态表 CSQY 来确定这个值,具体原理不太清楚。

ICON为模型提供初始条件,BCON为模型提供边界条件,前者是 temporal boundary condition, 后者是 spatial lateral boundary condition。

MCIP读入大气模型( WRF )的输出结果,根据CMAQ的grid配置做适当内插和外延,为SMOKE和CMAQ提供气象条件。

CCTM是核心的CMAQ程序,将 JPROC, ICON, BCON, MCIP生成的文件整合,计算污染物的扩散情况。

CMAQ还有一些可选的库,如PROCAN用于跟踪某种污染物的传播情况,所谓过程分析 (Process analysis);CHEMMECH可供高级用户建立自己的化学变化过程。

SMOKE为CMAQ提供了污染源的情况,目前还不知道具体有哪些参数。

下周的工作目标是把WRF和CMAQ整合起来,运行一个case。


2/04/2012

重新开始

虽然这周什么也没干,但作为写博客的开始,还是记录一点。从这周开始,每周写工作总结,不定期写学习笔记。

这周从周二开始工作。笔记本装的Ubuntu还是打开不了图形界面,放弃了。打算重装系统,但怎么都装不上Fedora和CentOS。结果放台式机上一装就成了,没想到忙活了半天竟然是硬件问题。这下好了,一不做二不休,把台式机给重装了,以后也不受管理员管辖了。

以后台式机正式成为工作机器,所有之前的工作要重新开始。重新安装WRF和CMAQ。同时,对CentOS这个系统不熟悉,还要再学习一阵子。