CMAQ移植安装
CMAQ介绍:
美国环保署的一个活跃的开源开发项目,由一套用于进行空气质量模型模拟的程序组成。CMAQ 结合了当前在大气科学和空气质量建模、多处理器计算技术和开源框架方面的知识,以提供对臭氧、颗粒物、有毒物质和酸沉降的快速、技术上合理的估计。
前序准备
此软件需要用到的依赖如下
软件名称 | 版本 | 下载地址 | 参考 |
---|---|---|---|
CMAQ | 5.3.1 | https://codeload.github.com/USEPA/CMAQ/tar.gz/CMAQv5.3.1_19Dec2019 | / |
HDF5 | 1.10.1 | https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.1/src/ | HDF5安装手册 |
PnetCDF | 1.9.0 | https://parallel-netcdf.github.io/wiki/Download.html | / |
NetCDF-C | 4.7.0 | https://github.com/Unidata/netcdf-c/releases/tag/v4.7.0 | netcdf-c安装手册 |
NetCDF-fortran | 4.4.5 | https://github.com/Unidata/netcdf-fortran/releases/tag/v4.4.5 | netcdf-fortran安装手册 |
OPTIMIZED-ROUTINES | V20.02 | https://codeload.github.com/ARM-software/optimized-routines/tar.gz/v20.02 | / |
ioapi | 3.2 | https://codeload.github.com/cjcoats/ioapi-3.2/tar.gz/2020111 | / |
测试算例 | 2016_12SE1 | https://dataverse.unc.edu/dataset.xhtml?persistentId=doi:10.15139/S3/IQVABD | / |
ioapi安装
先来看一下目录结构
1 | CMAQ/ |
先创建一个CMAQ
工作目录,在此目录下解压CMAQ以及ioapi,并将解压好的ioapi重新命名为ioapi-3.2
1 | tar -xvf ioapi-3.2-2020111.tar.gz |
ioapi配置
复制配置文件
1 | cd ioapi-3.2 |
修改ioapi/Makeinclude.Linux4_aarch64
文件部分内容
1 | CC = mpicc |
复制ioapi
的Makefile
文件
1 | cp ioapi/Makefile.nocpl ioapi/Makefile |
m3tools配置
复制m3tools
的Makefile
文件
1 | cp m3tools/Makefile.nocpl m3tools/Makefile |
修改m3tools/Makefile
内容
1 | LIBS = -L${OBJDIR} -lioapi -L/path/to/NETCDF/lib -lnetcdff –lnetcdf -L/path/to /HDF5/lib -lhdf5_hl -lhdf5 -lz $(OMPLIBS) $(ARCHLIB) $(ARCHLIBS) |
CMAQ配置
复制CMAQ
的Makefile
文件
1 | cp Makefile.template Makefile |
修改如下内容
1 | BIN = Linux4_aarch64 |
编译ioapi
执行以下命令编译ioapi
1 | make BIN=Linux4_aarch64 |
修改STATE3.EXT
文件,将行尾&
去掉
1 |
|
编译CMAQ
修改bldit_project.csh
1 | cd CMAQ-CMAQv5.3.1_19Dec2019 |
运行以下命令来初始化所需文件
1 | ./bldit_project.csh |
进入工作目录并在case gcc
处改配置文件
1 | cd ../CMAQ_Project/ |
1 | setenv IOAPI_MOD_DIR /path/to/CMAQ/ioapi-3.2/Linux4_aarch64/ |
执行以下命令链接各种依赖库
1 | ./config_cmaq.csh gcc 9.3.0 |
依次执行以下命令,进入编译目录,并编译主程序
1 | cd CCTM/scripts/ |
编译完成后,会在“BLD_CCTM_v531_gcc9.3.0”目录下生成CMAQ的可执行程序CCTM_v531.exe
spack安装代码
1 | from spack import * |