自《大气污染防治行动计划》颁布以来,我国城市地区环境空气质量明显改善。与此同时,我国城市地区环境空气臭氧(O3) 污染问题凸显,O3污染问题已成为我国继灰霾污染后又一亟待解决的大气环境问题。根据《2021中国生态环境状况公报》,2021年我国339个地级及以上城市,以臭氧为首要污染物的超标天数占总超标天数的34.7%,仅次于细颗粒物(PM2.5)的39.7%。因此,臭氧污染已经成为我国第二大大气污染问题,对于臭氧污染的防治,已经成为了我们大气环境治理的重点。
为了高效、精准地治理区域大气臭氧污染,需要了解臭氧生成的主要途径及其前体物。OBM 箱模型可用于模拟光化学污染的发生、演变过程,研究臭氧 的生成机制和进行敏感性分析,探讨前体物的排放对光化学污染的影响。 其中主要大气化学机理(Master Chemical Mechanism,MCM)是由 Jenkin 等人在 1997 年提出的详细化学机理的代表,其描述了一系列 VOC 物种(甲烷和 142种非甲烷 VOCs)在大气中详细的化学反应过程,被广泛应用于 OBM 大气化学模型,从而用于分析、预测环境中臭氧生成的主要途径及其前体物的关系。
Atchem2中所具备的MCM可用于上述研究,但是其安装过程较为复杂,且最新版USER GUIDE于2019年发表,与现在网络环境存在较大差异。依据说明书上的过程安装,仍会存在一些问题。且对于Linux系统不熟悉的用户安装过程会有较大难度。所以本人将安装过程重新记录和复刻进本文中。
QQ:465052269
希望有大气污染扩散模型和臭氧潜势研究的朋友可以一起相互交流、讨论~
At Chem2 Manual (usermanual.wiki)
一、环境描述
1.系统:Ubuntu Server 22.04 LTS 64bit
2.登录用户:lighthouse
二、Requirements Install
1.检测Ubuntu系统信息
① 查看操作系统是32位的还是64位的
在控制台输入:sudo uname --m
回车后:
如果显示i686,则表示安装了32位操作系统
如果显示 x86_64,则表示安装了64位操作系统
② 查看操作系统的版本号:
cat /etc/issue
比如输出:Ubuntu 14.04.4 LTS \n \l
③ 查看系统类型,其中lsb表示(Linux Standard Base):
lsb_release -cs
比如输出:trusty
④ 如果想知道更多信息可以试试如下命令
sudo uname --s 显示内核名字
sudo uname --r 显示内核版本
sudo uname --n 显示网络主机名
sudo uname --p 显示cpu
2. Ubuntu 安装cmake
① 命令行安装
(这种直接安装cmake,其实安装的版本都太老了,这种方式不推荐 )
sudo apt install cmake
② Cmake源码编译安装
1. 更新/安装一下g++
sudo apt-get install g++
2. 先检查是否有cmake
which cmake
whereis cmake
3. 如果没有,下载安装包
$ wget https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz
4. 解压CMake源码包
$ tar -zxvf cmake-3.15.5.tar.gz
步骤五、进入目录
$ cd cmake-3.15.5
步骤六 编译安装
$ ./bootstrap && make -j4 && sudo make install
到此 CMake 命令安装完成。
3. Ubuntu 安装gfortran
在命令行输入:
$ sudo apt-get install gfortran
Ubuntu检查gfortran
$ which gfortran
4. Ubuntu 安装python
① 检查python信息
$ whereis python3 **本人已经安装python3,但是本软件安装需要python2.7
② 安装python2
sudo apt install python2
③ 检查python版本
$ python2 --version ## python2
Python 2.7.18
$ python3 --version ## python3
Python 3.10.6
5.编译安装BLAS和LAPACK
USER GUIDE的安装步骤如下
但是基本上没有办法和说明书中那样,一步到位,还是自己慢慢编译吧!T T
①先在用户主目录下面创建src目录,然后切换到src目录下操作。
mkdir ~/src
cd ~/src
②安装BLAS
2.5.2.1 准备源码
wget http://www.netlib.org/blas/blas.tgz
tar zxf blas.tgz
cd BLAS-3.11.0/
2.5.2.2 编译
如果是32位系统,使用GNU的g77或gfortran编译器来编译:
g77 -O2 -fno-second-underscore -c *.f
gfortran -O2 -std=legacy -fno-second-underscore -c *.f
如果是64位系统,使用GNU的g77或gfortran编译器来编译:
g77 -O3 -m64 -fno-second-underscore -fPIC -c *.f
gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f
如果使用的是Intel的Fortran编译器,则:
ifort -FI -w90 -w95 -cm -O3 -unroll -c *.f
注意:
请根据情况选择上述5个命令中的一个执行
在编译BLAS、LAPACK、NumPy和SciPy的时候,所选择的Fortran编译器必须要保持一致
在下述LAPACK的编译安装中和后续数据库CDOVE等的安装中,需要使用Fortran 90编译器,因此不应该使用g77/intel来编译BLAS
2.5.2.3 后续工作
ar r libfblas.a *.o
ranlib libfblas.a
rm -rf *.o # 清理文件
export BLAS=~/src/BLAS-3.5.0/libfblas.a # 导出BLAS环境变量
③ 安装LAPACK
2.5.3.1 准备源码
wget http://www.netlib.org/lapack/lapack.tgz
tar zxf lapack.tgz
cd lapack-3.6.0/
5.2.3.2 编译
cp INSTALL/make.inc.gfortran make.inc # On Linux with lapack-3.2.1 or newer
make lapacklib
2.5.3.3 后续工作
make clean # 清理文件
export LAPACK=~/src/lapack-3.6.0/ # 导出LAPACK环境变量
三、Required dependencies Install
安装前先mkdir一下~/atchem-libraries/
1.安装CVODE
USER GUIDE的安装步骤如下
① 去官网下载https://computing.llnl.gov/projects/sundials/sundials-software
(1)文件较大,wget下载很慢
(2)说明书中install的sh脚本提供的下载地址过期
② 上传至服务器,并通过pwd找到压缩包地址
③ 修改install的sh脚本
!!这里Atchem压缩包里面的CVODE安装脚本里面,wget网址有问题,所以需要自己修改
vi install_cvode.sh **将wget部分删除
变成
# Move to provided directory
cd $cvode_dir
tar -zxf /home/lighthouse/AtChem2-1.1/tools/install/sundials-2.7.0.tar.gz
rm sundials-2.7.0.tar.gz
cd sundials-2.7.0/
mkdir build
cd build
④ 安装
./install_cvode.sh ~/atchem-libraries/
(1)注意官方安装文档中文件名的不同,不然会安装失败
2.安装Openlibm
USER GUIDE的安装步骤如下
1. 因为文件较小,直接用sh脚本可以很快下载好安装包并安装
2. 说明书中的安装口令./tools/install/install openlibm.sh ˜/atchem-libraries/中存在①“˜”的上下标格式问题;②install openlibm.sh的文件名和安装包对不上等问题。需要修正
3. 输入
$ ./install_openlibm.sh ~/atchem-libraries/
4. 安装好后打开~/atchem-libraries/会这样
四、安装Atchem
$ cd AtChem2-1.1/tools/
检查下install和Makefile在不在tools里面
$ cp tools/Makefile ./
$ cd ..
$ vi Makefile **将数据库的位置定位一下
$ ./tools/build.sh ./tools/mcm_example.fac
最后看一下案例运行结果
参考网页
编译安装BLAS和LAPACK - 简书
怎么查看ubuntu是32位还是64位以及版本信息
Does Python SciPy need BLAS?
Does Python SciPy need BLAS? - Stack Overflow