littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于 C++ 编程语言的气候预测网模型控制程序

项目简介

本项目是气候预测网(CPDN)中用于控制气候模型运行的应用程序。它可以对 ECMWF OpenIFS(43r3)和 WRF 这两个气候模型进行控制,借助 BOINC 平台实现任务管理与结果上传,为气候变化研究提供大规模计算支持。

项目的主要特性和功能

  1. 集成 BOINC 客户端库,能进行任务管理、状态上报和文件上传。
  2. 可控制 OpenIFS 和 WRF 两个气候模型的运行。
  3. 支持在 Linux 和 Mac 操作系统上编译与运行。
  4. 可通过命令行参数配置模型运行的各项参数。
  5. 能自动处理模型的输入文件和辅助文件,包括解压、复制及设置环境变量。
  6. 可监控模型运行状态并定期更新进度信息。
  7. 能将模型结果文件上传至 BOINC 服务器。

安装使用步骤

前提条件

假设用户已经下载了本项目的源码文件。

编译 BOINC 库

bash mkdir build mkdir boinc cd boinc ._autosetup ./configure --disable-server --disable-fcgi --disable-manager --disable-client \ --enable-libraries --enable-boinczip \ --prefix=/PATH_TO_BOINC_INSTALL/boinc-install \ CXXFLAGS='-O3' make install cd .. 此操作会将 BOINC 库和头文件安装到 Git 源码的父目录(可更改 --prefix 参数指定其他安装目录)。

编译控制器代码

Linux 系统

  1. 确保安装了 libzip 库(在 Ubuntu 系统上使用 sudo apt-get install libzip-dev)。
  2. 从 http://rapidxml.sourceforge.net/ 下载 rapidxml.hpp 文件,并将其放在代码所在的同一文件夹中。
  3. 编译 WRF 模型: bash cd build g++ wrf.cpp CPDN_control_code.cpp -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -static -pthread -std=c++17 -o wrf_1.00_x86_64-pc-linux-gnu
  4. 编译 OpenIFS 模型: bash cd build g++ openifs.cpp CPDN_control_code.cpp -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -static -pthread -std=c++17 -o oifs_43r3_1.00_x86_64-pc-linux-gnu 若在 ARM 架构机器上编译 OpenIFS 模型: bash cd build g++ openifs.cpp CPDN_control_code.cpp -D_ARM -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -static -pthread -lstdc++ -lm -std=c++11 -o oifs_43r3_1.00_aarch64-poky-linux

Mac 系统

  1. 确保安装了 libzip 库(使用 brew install libzip)。
  2. 下载 rapidxml.hpp 文件并放置在代码所在文件夹。
  3. 使用 Xcode 构建 BOINC 库。
  4. 编译 OpenIFS 控制代码: bash cd build clang++ openifs.cpp CPDN_control_code.cpp -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -pthread -std=c++11 -o oifs_43r3_1.00_x86_64-apple-darwin

运行程序

以 OpenIFS 为例,在 Linux 系统上的独立运行命令为: bash ./oifs_43r3_1.00_x86_64-pc-linux-gnu 2000010100 gw3a 0001 1 00001 1 oifs_43r3 1.00 在 macOS 系统上的独立运行命令为: bash ./oifs_43r3_1.00_x86_64-apple-darwin 2000010100 gw3a 0001 1 00001 1 oifs_43r3 1.00 命令行参数说明:[0] 为编译后的可执行文件,[1] 为起始日期(格式为 YYYYMMDDHH),[2] 为实验 ID,[3] 为唯一成员 ID,[4] 为批次 ID,[5] 为工作单元 ID,[6] 为 FCLEN,[7] 为应用名称,[8] 为线程数,[9] 为应用版本 ID(仅在独立运行模式下使用)。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】