---
title: 编译和安装
description: "1. 使用PuTTY工具，以root用户登录服务器。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengcmaq_02_0010.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengcmaq_02_0010.html
indexId: 8cabfbb6b64ffbfdbda8b857d42a550bf71d92a703945a30a4588c54df28108766
---
# 编译和安装

#### 操作步骤

1. 使用PuTTY工具，以root用户登录服务器。
2. 执行以下命令进入“CMAQ”目录。

```
cd
/path/to/CMAQ
```


3. 执行以下命令解压并重命名ioapi。

```
tar -xvf ioapi-3.2-2020111.tar.gz
mv ioapi-3.2-2020111 ioapi-3.2
```


4. 执行以下命令复制配置文件。

```
cd ioapi-3.2
cp ioapi/Makeinclude.Linux2_ia64gfort ioapi/Makeinclude.Linux4_aarch64
```


5. 执行以下命令编辑配置文件。

  a. 打开“Makeinclude.Linux4_aarch64”配置文件。

```
vim ioapi/Makeinclude.Linux4_aarch64
```


  b. 按“i”进入编辑模式。
    修改编译器选项：

```
CC   = mpicc
CXX  = mpicxx
FC   = mpifort
```


    注释FSFLAGS关键字对应的行，如：

```
#FSFLAGS = -save
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
6. 执行以下命令配置复制“Makefile”及配置“HOME”。

```
cp
ioapi/
Makefile.nocpl
ioapi/
Makefile
export HOME=
/path/to/CMAQ
```


7. 执行以下命令复制配置文件。

```
cp m3tools/Makefile.nocpl m3tools/Makefile
```


8. 执行以下命令编辑配置文件。

  a. 打开“Makefile”配置文件。

```
vim m3tools/Makefile
```


  b. 按“i”进入编辑模式，修改如下内容。

```
LIBS = -L${OBJDIR} -lioapi -L
/path/to/NETCDF
/lib -lnetcdff –lnetcdf -L/path/to /HDF5/lib -lhdf5_hl -lhdf5 -lz $(OMPLIBS) $(ARCHLIB) $(ARCHLIBS)
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
9. 执行以下命令复制配置文件。

```
cp Makefile.template Makefile
```


10. 执行以下命令编辑配置文件。

  a. 打开配置文件。

```
vim Makefile
```


  b. 按“i”进入编辑模式。
    修改如下内容并取消注释：

```
BIN        = Linux4_aarch64
BASEDIR    = ${PWD}
INSTALL    = ${HOME}
LIBINST    = $(INSTALL)/$(BIN)
BININST    = $(INSTALL)/$(BIN)
CPLMODE    = nocpl
IOAPIDEFS  = "-DIOAPI_NCF4"
```


    修改NCFLIBS项：

```
NCFLIBS    = -L
/path/to/NETCDF
/lib -lnetcdff -lnetcdf -L
/path/to/HDF5
/lib -lhdf5_hl -lhdf5 -lz
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
11. 执行以下命令编译ioapi。

```
make BIN=Linux4_aarch64
```


12. 执行以下命令修改“STATE3.EXT”文件。

  a. 打开“STATE3.EXT”文件。

```
vim ioapi/STATE3.EXT
```


  b. 按“i”进入编辑模式，删除STATE3.EXT文件中末尾若干行的行尾“&”符号，如下图红框内部分。
  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
13. 执行以下命令解压并进入该目录。

```
tar -xvf CMAQ-CMAQv5.3.1_19Dec2019.tar.gz
cd CMAQ-CMAQv5.3.1_19Dec2019
```


14. 执行以下命令编辑配置文件。

  a. 打开配置文件。

```
vim bldit_project.csh
```


  b. 按“i”进入编辑模式，修改如下内容。

```
set CMAQ_HOME =
/path/to/CMAQ
/CMAQ_Project
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
15. 执行以下命令创建初始化所需文件。

```
./bldit_project.csh
```


16. 执行以下命令进入工作目录。

```
cd ../CMAQ_Project/
```


17. 执行以下命令编辑配置文件。

  a. 打开配置文件。

```
vim config_cmaq.csh
```


  b. 按“i”进入编辑模式。
    在“case gcc”段落区域修改依赖库等的路径信息，如：

```
setenv IOAPI_MOD_DIR
/path/to/CMAQ
/ioapi-3.2/Linux4_aarch64/
setenv IOAPI_INCL_DIR
/path/to/CMAQ
/ioapi-3.2/ioapi/
setenv IOAPI_LIB_DIR
/path/to/CMAQ
/ioapi-3.2/Linux4_aarch64/
setenv NETCDF_LIB_DIR
/path/to/NETCDF
/lib/
setenv NETCDF_INCL_DIR
/path/to/NETCDF
/include/
setenv MPI_LIB_DIR
/path/to/OPENMPI
/
```


    修改编译器相关参数，如：

```
setenv myCC mpicc
setenv myLINK_FLAG  "-fopenmp"
setenv mpi_lib "-lmpi"
```


    为“netcdf_lib”
    变量添加openmp属性，如：

```
setenv netcdf_lib "-lnetcdf -lnetcdff -lgomp"  #> -lnetcdff -lnetcdf for netCDF v4.2.0 and later
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
18. 执行以下命令链接各种依赖库。

```
./config_cmaq.csh gcc 9.3.0
```


19. 依次执行以下命令，进入编译目录，并编译主程序。

```
cd CCTM/scripts/
./bldit_cctm.csh gcc 9.3.0
```


  编译完成后，会在“BLD_CCTM_v531_gcc9.3.0”目录下生成CMAQ的可执行程序“CCTM_v531.exe”。
