新安江模型程序C++代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

新安江模型程序C++代码以下是类的声明:

class XinanjiangModel

{

private:

// FORCING

double *m_pP; // 降水数据

double *m_pEm; // 水面蒸发数据

//

long m_nSteps; // 模型要运行的步长(一共m_nSteps步) long steps;

// OUTPUT

double *m_pR; // 流域内每一步长的产流量(径流深度) double *m_pRs; // 每一步长的地表径流深(毫米)

double *m_pRi; // 每一步长的壤中流深(毫米)

double *m_pRg; // 每一步长的地下径流深(毫米)

double *m_pE; // 每一步长的蒸发(毫米)

double *m_pQrs; // 流域出口地表径流量

double *m_pQri; // 流域出口壤中流径流流量

double *m_pQrg; // 流域出口地下径流量

double *m_pQ; // 流域出口的总流量

double m_U; // for 24h. U=A(km^2)/3.6/delta_t

// SOIL

double *m_pW; // 流域内土壤湿度

double *m_pWu; // 流域内上层土壤湿度

double *m_pWl; // 流域内下层土壤适度

double *m_pWd; // 流域内深层土壤湿度

double m_Wum; // 流域内上层土壤蓄水容量

double m_Wlm; // 流域内下层土壤蓄水容量

double m_Wdm; // 流域内深层土壤蓄水容量,WDM=WM-WUM-WLM // EVAPORATION

double *m_pEu; // 上层土壤蒸发量(毫米)

double *m_pEl; // 下层土壤蒸发量(毫米)

double *m_pEd; // 深层土壤蒸发量(毫米)

//runoff

double *RF;

// PARAMETER

double m_Kc; // 流域蒸散发能力与实测蒸散发值的比

double m_IM; // 不透水面积占全流域面积之比

double m_B; // 蓄水容量曲线的方次,小流域(几平方公里)B0.1左右

// 中等面积(平方公里以内).2~0.3,较大面积.3~0.4 double m_WM; // 流域平均蓄水容量(毫米)(WM=WUM+WLM+WDM) double m_C; // 流域内深层土壤蒸发系数,江南湿润地区:0.15-0.2,

//华北半湿润地区:.09-0.12

double m_SM; //自由水蓄水容量

double m_EX; //自由水蓄水容量~面积分布曲线指数

double m_KG; //地下水日出流系数

double m_KI; //壤中流日出流系数

double m_CG; //地下水消退系数

double m_CI; //壤中流消退系数

double *m_UH; // 单元流域上地面径流的单位线

double m_WMM; // 流域内最大蓄水容量

double m_Area; // 流域面积

int m_DeltaT; // 每一步长的小时数

int m_PD; // 给定数据,用以判断是否时行河道汇流计算

public:

XinanjiangModel(void);

~XinanjiangModel(void);

// 初始化模型

void InitModel(long nSteps, double Area,int DeltaT, int PD, char *ForcingFile);

// 设置模型参数

void SetParameters(double *Params);

// 运行新安江模型

void RunModel(void);

// 保存模拟结果到文件

void SaveResults(char *FileName);

// 记录出流数据,用以作图分析

void Runoff(char *runoff);

private:

// 进行汇流计算,将径流深度转换为流域出口的流量

void Routing(void);

};

以下是类的定义

#include"stdafx.h"

#include"xinanjiangmodel.h"

#include

#include

#include

using namespace std;

#include"math.h"

#include"stdio.h"

#include"conio.h"

XinanjiangModel::XinanjiangModel(void)

{

this->m_pP = NULL;

this->m_pEm = NULL;

this->m_pE = NULL;

this->m_pEd = NULL;

this->m_pEl = NULL;

this->m_pEu = NULL;

this->m_pW = NULL;

this->m_pWd = NULL;

this->m_pWl = NULL;

this->m_pWu = NULL;

this->m_pR = NULL;

this->m_pRg = NULL;

this->m_pRi = NULL;

this->m_pRs = NULL;

this->m_pQ = NULL;

this->m_pQrg = NULL;

this->m_pQri = NULL;

this->m_pQrs = NULL;

}

XinanjiangModel::~XinanjiangModel(void) {

delete[] this->m_pP;

delete[] this->m_pEm;

delete[] this->m_pE;

delete[] this->m_pEd;

delete[] this->m_pEl;

delete[] this->m_pEu;

delete[] this->m_pW;

delete[] this->m_pWd;

delete[] this->m_pWl;

delete[] this->m_pWu;

delete[] this->m_pR;

delete[] this->m_pRg;

delete[] this->m_pRi;

相关文档
最新文档