CMAQ(Community Multiscale Air Quality)モデルは、米国環境保護庁によって開発された第3世代の大気質予測および評価システム(モデル3)のコアコンポーネントの1つです。これは、対流圏全体のオゾン、酸性雨、可視性、および微粒子状物質をシミュレートできる、3次元のオイラーグリッドベースの大気化学および輸送シミュレーションシステムです。モデル全体は「1つの大気」の概念に従っており、ローカルから半球までのさまざまな空間スケールで複数の複雑な大気質の問題に同時に対処できます。効果的な第3世代の大気質モデルおよび評価ツールとして、戦略的なサポートが可能です。分析大気科学研究へのさまざまな大気質シミュレーションアプリケーション。
CMAQ-5.3ソースファイルhttps://github.com/USEPA/CMAQ
ソフトウェアはradhatマシンにインストールされます
依存ライブラリをインストールする
今回必要な依存関係は、Zlib、HDF5、NetCDF-C、NetCDF-Fortran、ioapiです。
# 这里只介绍一下HDF5、NetCDF以及ioapi的安装
# 依次下载
$ wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.5/$ src/hdf5-1.10.5.tar.gz
$ wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-c-4.7.0.tar.gz
$ wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-4.4.5.tar.gz
# 安装HDF5
$ ./configure --prefix=你的安装路径/hdf5 --enable-fortran --enable-fortran2003
$ make -j 48
$ make install
# 添加环境变量
$ vim ~/.bashrc
export HDF5=你的安装路径/hdf5
export PATH=$HDF5/bin:$PATH
export LD_LIBRARY_PATH=$HDF5/lib:$LD_LIBRARY_PATH
export INCLUDE=$HDF5/include:$INCLUDE
# 保存退出后
$ source ~/.bashrc
# 安装NetCDF-C
$ ./configure --prefix=你的安装路径/netcdf LDFLAGS="-L$HDF5/lib" CPPFLAGS="-I$HDF5/include" CC=mpiicc --disable-dap
$ make -j 48
$ make install
# 添加环境变量
export NETCDF=/usr/local/netcdf
export PATH=$NETCDF/bin:$PATH
export LD_LIBRARY_PATH=$NETCDF/lib:$LD_LIBRARY_PATH
export INCLUDE=$NETCDF/include:$INCLUDE
# 保存后退出
$ source ~/.bashrc
# 安装NetCDF-Fortran
$ ./configure --prefix=你的安装路径/netcdf CPPFLAGS="-I$HDF5/include -I$NETCDF/include" LDFLAGS="-L$HDF5/lib -L$NETCDF/lib" CC=mpiicc FC=mpiif90 F77=mpiif90 # 与NetCDF-C安装在同一目录下
$ make -j 48
$ make install
ioapi-3.2のインストールプロセスはより複雑であり、個別に説明します
# 进入ioapi-3.2的安装目录
$ cp ioapi/Makeinclude.Linux2_x86_64ifort ioapi/Makeinclude.Linux2
$ cp Makefile.nocpl Makefile
$ vim ioapi/Makefile
# 修改 BASEDIR、INSTALL 的路径为当前目录
BASEDIR = /你的安装路径/ioapi-3.2
INSTALL = /你的安装路径/ioapi-3.2
# 保存并退出 vim
$ cp m3tools/Makefile.nocpl m3tools/Makefile
$ vim m3tools/Makefile
# 为 LIBS 变量完善 NetCDF 路径,如:
LIBS = -L${OBJDIR} -lioapi -L/你的安装路径/netcdf/lib -lnetcdff -lnetcdf $(OMPLIBS) $(ARCHLIB) $(ARCHLIBS)
# 修改 BASEDIR 的路径为当前目录
BASEDIR = /你的安装路径/ioapi-3.2
# 保存并退出 vim。
$ cp Makefile.template Makefile
$ vim Makefile
# 修改BIN=Linux2
# 修改 NCFLIBS 环境变量,完善 HDF5 和 NetCDF 路径,如:
NCFLIBS = -L/你的安装路径/netcdf/lib -lnetcdff -lnetcdf -L/你的安装路径/hdf5/lib -lhdf5_hl -lhdf5 -L/你的安装路径/zlib/lib -lz
# 去除 IOAPIDEFS 的注释,并确认其值,如:
IOAPIDEFS = "-DIOAPI_NCF4"
# 修改 BASEDIR、INSTALL 的路径为当前目录
BASEDIR = /你的安装路径/ioapi-3.2
INSTALL = /你的安装路径/ioapi-3.2
# 保存并退出 vim
$ make BIN=Linux2
合計3つのステップを要約します
1.ioapiディレクトリのMakefileファイルとMakeincludeファイルを変更します
2.m3toolsの下のMakefileを変更します
3.現在のディレクトリ(ioapi-3.2)のMakefileを変更します
ps:インストールが成功すると、現在のディレクトリ(ioapi-3.2)のLinux2ディレクトリに多くの実行可能ファイルがあります。
CMAQ-5.3をインストールします
$ cd /你的安装路径/CMAQ-5.3
$ vim bldit_project.csh
# 变更 CMAQ_HOME 的值,明确工作目录,如:
set CMAQ_HOME = /你的安装路径/CMAQ_install
# 保存并退出vim
# 初始化文件
$ ./bldit_project.csh
$ cd /你的安装路径/CMAQ_Project
$ vim config_cmaq.csh
# 在 case intel 区域修改依赖库的路径:
setenv IOAPI_INCL_DIR /你的安装路径/ioapi-3.2/ioapi #> I/O API include header files
setenv IOAPI_LIB_DIR /你的安装路径/ioapi-3.2/Linux2 #> I/O API libraries
setenv NETCDF_LIB_DIR /你的安装路径/netcdf/lib #> netCDF C directory path
setenv NETCDF_INCL_DIR /你的安装路径/netcdf/include #> netCDF C directory path
setenv NETCDFF_LIB_DIR /你的安装路径/netcdf/lib #> netCDF Fortran directory path
setenv NETCDFF_INCL_DIR /你的安装路径/netcdf/include #> netCDF Fortran directory path
setenv MPI_LIB_DIR /你的 mpi 编译器路径/ #> MPI directory path
setenv myLINK_FLAG "-openmp" #"-qopenmp-simd" openMP not supported w/ CMAQ
# 保存并退出 vim
$ ./config_cmaq.csh intel
$ cd CCTM/scripts/
$ ./bldit_cctm.csh intel
# 编译完成会在 BLD_CCTM_v53_intel 文件夹下生成 CCTM_v53.exe 可执行文件
# 依次在 CMAQ_Project 文件夹的 POST、PREP 文件夹中的各个文件夹内执行
$ ./bldit_cctm.csh intel
# 即可完成各个可执行程序的编
メインプログラムのコンパイル時に次のエラーが発生します。
問題の原因:
データ形式が間違っています
問題は解決しました。
次の図に示すように、「/ yourinstallation path / ioapi-3.2 / ioapi / STATE3.EXT」ファイルの数行の終わりにある「&」記号を削除し、「&」記号を削除します。赤いボックス内:これ
までのところ、CMAQ-5.3コンパイルは完了しています