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

#### 操作步骤

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

```
mkdir -p
/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. 执行以下命令修改“Makeinclude.Linux4_aarch64”配置文件。

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

```
vi ioapi/Makeinclude.Linux4_aarch64
```


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

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


    注释掉一些关键字对应的参数，如下图所示。

  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. 执行以下命令修改“Makefile”配置文件。

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

```
vi 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. 执行以下命令修改“Makefile”配置文件。

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

```
vi Makefile
```


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

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


    分别在第146和193行修改NCFLIBS参数项。

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


    执行10.a之后，按“Esc”键，输入“:set nu”，按“Enter”即可显示出行号。

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

```
make BIN=Linux4_aarch64
```


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

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

```
vi ioapi/STATE3.EXT
```


  b. 按“i”进入编辑模式，删除STATE3.EXT文件中末尾若干行的行尾“&”符号，如下图所示。
  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
13. 执行以下命令进入cshell环境及配置HOME。

```
csh
setenv HOME
/path/to/CMAQ
```


14. 执行以下命令在csh环境加入环境变量。

```
setenv PATH
/path/to/Bisheng131
/bin:$PATH
setenv INCLUDE
/path/to/Bisheng131
/include
setenv LD_LIBRARY_PATH
/path/to/Bisheng131
/lib
setenv PATH
/path/to/HMPI_1.0.2_aarch64
/source/hmpi/bin:$PATH
setenv INCLUDE
/path/to/HMPI_1.0.2_aarch64
/source/hmpi/include:$INCLUDE
setenv LD_LIBRARY_PATH
/path/to/HMPI_1.0.2_aarch64
/source/hmpi/lib:$LD_LIBRARY_PATH
```


15. 执行以下命令解压CMAQ安装包并进入解压后目录。

```
cd
/path/to/CMAQ
tar -xzvf CMAQ-CMAQv5.3.1_19Dec2019.tar.gz
cd CMAQ-CMAQv5.3.1_19Dec2019
```


16. 执行以下命令修改“bldit_project.csh”配置文件。

  a. 打开“bldit_project.csh”配置文件。

```
vi bldit_project.csh
```


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

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


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

```
./bldit_project.csh
```


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

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


19. 执行以下命令修改“config_cmaq.csh”配置文件。

  a. 打开“config_cmaq.csh”配置文件。

```
vi config_cmaq.csh
```


  b. 按“i”进入编辑模式。
    在“case gcc”段落区域修改相关信息，并将“case gcc”修改为“case bisheng”。

```
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/HMPI
/
setenv NETCDFF_LIB_DIR
/path/to/NETCDF
/lib/
setenv NETCDFF_INCL_DIR
/path/to/NETCDF
/include/
```


    修改编译器相关参数，如下图所示（编译过程可能出现“warning”，但不影响最后编译，也可根据“warning”去掉对应的参数）。

    注释如下内容。

```
#if ( ! -e $NETCDFF_DIR/lib/libnetcdff.a ) then
#    echo "ERROR: $NETCDFF_DIR/lib/libnetcdff.a does not exist in your CMAQ_LIB directory!!! Check your installation before proceeding with CMAQ build."
#    exit
# endif
```


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

```
./config_cmaq.csh bisheng 1.3.1
```


21. 执行以下命令进入编译目录并编译主程序。

```
cd CCTM/scripts/
cp
/path/to/HMPI
/include/mpif.h
/path/to/CMAQ
/CMAQ_Project/CCTM/scripts/BLD_CCTM_v531_bisheng1.3.1
./bldit_cctm.csh bisheng 1.3.1
```


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