模型简介
# 简介
EFDC (环境流体动力学代码) 是一种数值模拟模型,用于研究水和环境系统。它使用数学算法模拟复杂环境中的流体流动、热和质量传递以及化学反应。EFDC 通常用于预测河流、湖泊和河口中的水质和污染物运输,以及评估各种人类活动(如废物排放和水资源管理)的环境影响。
# 适用场景
EFDC 模型在各种环境应用中广泛使用,包括:
水质建模:EFDC 可以预测河流、湖泊和河口中的水质参数,如 pH、温度和溶解氧水平。
污染物运输建模:EFDC 可用于研究营养物和有毒化学物质等污染物在水生系统中的运输和命运。
水动力学建模:EFDC 可以用于建模复杂水系统中的流动模式和速度。
海岸带管理:EFDC 可以用于评估人类活动对沿岸环境的影响,如近海排放对水质和环流的影响。
气候变化研究:EFDC 可以用于模拟气候变化对水资源和水质的影响。
库区管理:EFDC 可以用于模拟库区中的水流和温度模式,并优化其用于发电、灌溉和供水等。
# 软件下载
# 运行程序
# 开发指南
# EFDC-MPI
# IBM版EFDC-MPI开发库
git clone https://github.com/fearghalodonncha/EFDC-MPI.git
1
# 编译
- 安装脚本Quickstart
#!/bin/bash
# This script is the run-able quickstart guide for building this project. It
# assumes you are running on a recent version of Ubuntu or Debian. See the
# README file if you are using a different distribution.
# install openmpi from ubuntu package manager
sudo apt-get install -y libopenmpi-dev openmpi-bin libhdf5-openmpi-dev openmpi-common libxml2-dev
# Add NetCDF
# 1) We need HDF
#Required for NetCDF integration; source is supported at http://www.hdfgroup.org/ftp/HDF5/current/src
HDF_VERSION="1.10.1"
HDF_VERSION="1_10_10"
# Download build and install HDF5
# wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-${HDF_VERSION}.tar.bz2; \
wget https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_10_10.tar.gz
# tar -xjvf hdf5-${HDF_VERSION}.tar.bz2; \
tar -xzvf hdf5-${HDF_VERSION}.tar.gz; \
cd hdf5-hdf5-${HDF_VERSION}; \
./configure --enable-shared --prefix=/usr/local/hdf5; \
make; \
sudo make install; \
# cd ..; \
# rm -rf /hdf5-${HDF_VERSION} /hdf5-${HDF_VERSION}.tar.bz2;
rm -rf /hdf5-hdf5-${HDF_VERSION} /hdf5-${HDF_VERSION}.tar.gz;
# 2) Build netcdf
# First we need to build NetCDF C version
# (http://www.unidata.ucar.edu/software/netcdf/docs/getting_and_building_netcdf.html)
# Download and install netcdf C
NCD_VERSION="4.3.3.1"
NCD_VERSION="4.9.2"
# wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-${NCD_VERSION}.tar.gz;
wget https://downloads.unidata.ucar.edu/netcdf-c/4.9.2/netcdf-c-4.9.2.tar.gz
# tar -xzvf netcdf-${NCD_VERSION}.tar.gz;
tar -xzvf netcdf-c-${NCD_VERSION}.tar.gz;
# cd netcdf-${NCD_VERSION};
cd netcdf-c-${NCD_VERSION};
./configure --prefix=/usr/local/netcdf CC=gcc LDFLAGS=-L/usr/local/hdf5/lib CFLAGS=-I/usr/local/hdf5/include;
make ;
sudo make install;
cd .. ;
# rm -rf netcdf-${NCD_VERSION} netcdf-${NCD_VERSION}.tar.gz
rm -rf netcdf-c-${NCD_VERSION} netcdf-c-${NCD_VERSION}.tar.gz
# 3) Build NetCDF fortran version
# (http://www.unidata.ucar.edu/software/netcdf/docs/building_netcdf_fortran.html)
# Download and install NetCDF fortran
NCF_VERSION="4.4.2"
NCF_VERSION="4.6.0"
# wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-${NCF_VERSION}.tar.gz;
wget https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.0/netcdf-fortran-4.6.0.tar.gz
tar -xzvf netcdf-fortran-${NCF_VERSION}.tar.gz;
cd netcdf-fortran-${NCF_VERSION};
./configure --prefix=/usr/local/netcdf --disable-fortran-type-check CC=gcc FC=gfortran LDFLAGS=-L/usr/local/netcdf/lib CFLAGS=-I/usr/local/netcdf/include;
make ;
sudo make install;
cd ..
rm -rf netcdf-fortran-${NCF_VERSION} netcdf-fortran-${NCF_VERSION}.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
- 运行Quickstart脚本时,注意依赖库的下载路径是否还有效
- 编译出现的缺失依赖包的情况,安装之
- 编译EFDC时,查看makefile,查看netcdf库的路径是否正确
# 运行
- 运行出现缺失共享库时,执行ldd EFDC查看缺失的库及路径,将相应的库拷贝过去即可
上次更新: 2023/05/25, 21:22:19