2022年新安江模型程序C++代码.docx
《2022年新安江模型程序C++代码.docx》由会员分享,可在线阅读,更多相关《2022年新安江模型程序C++代码.docx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 新安江模型程序 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; /
2、每一步长的地下径流深 毫米 double *m_pE; / 每一步长的蒸发 毫米 double *m_pQrs; / 流域出口地表径流量double *m_pQri; / 流域出口壤中流径流流量double *m_pQrg; / 流域出口地下径流量double *m_pQ; / 流域出口的总流量double m_U; / SOIL double *m_pW; / 流域内土壤湿度double *m_pWu; / 流域内上层土壤湿度double *m_pWl; / 流域内下层土壤适度double *m_pWd; / 流域内深层土壤湿度double m_Wum; / 流域内上层土壤蓄水容量名师归纳总
3、结 double m_Wlm; / 流域内下层土壤蓄水容量第 1 页,共 17 页- - - - - - -精选学习资料 - - - - - - - - - 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; / 不透水面积占全流
4、域面积之比double m_B; / 蓄水容量曲线的方次,小流域几平方公里B0.1左右/ 中等面积平方公里以内,较大面积 .30.4 double m_WM; / 流域平均蓄水容量毫米WM=WUM+WLM+WDM double m_C; / 流域内深层土壤蒸发系数,江南潮湿地区:0,/华北半潮湿地区:double m_SM; /自由水蓄水容量double m_EX; /自由水蓄水容量面积分布曲线指数double m_KG; /地下水日出流系数double m_KI; /壤中流日出流系数double m_CG; /地下水消退系数double m_CI; /壤中流消退系数double *m_UH;
5、 / 单元流域上地面径流的单位线double m_WMM; / 流域内最大蓄水容量double m_Area; / 流域面积int m_DeltaT; / 每一步长的小时数int m_PD; / 给定数据,用以判定是否时行河道汇流运算public: XinanjiangModel void; XinanjiangModel void; 名师归纳总结 - - - - - - -第 2 页,共 17 页精选学习资料 - - - - - - - - - / 初始化模型 void InitModel long nSteps, double Area,int DeltaT, int PD, char *
6、ForcingFile; / 设置模型参数 void SetParametersdouble *Params; / 运行新安江模型 void RunModelvoid; / 储存模拟结果到文件 void SaveResultschar *FileName; / 记录出流数据,用以作图分析 void Runoffchar *runoff; private: / 进行汇流运算,将径流深度转换为流域出口的流量 void Routingvoid; ; 以下是类的定义 #include stdafx.h #include xinanjiangmodel.h #include #include #incl
7、ude 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; 名师归纳总结 - - - - - - -第 3 页,共 17 页精选学习资料 - - - - - - - - - this-m_pEl = NULL; this-m_pEu = NULL; this-m_pW = NULL; t
8、his-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;
9、 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; 名师归纳总结 - - - - - - -第 4 页,共 17 页精选学习资料 - - - - - - - - - delete this-m_pRs; delete this-m_pQ; delete this-m_pQr
10、g; delete this-m_pQrs; delete this-m_pQri; / 初始化模型 void XinanjiangModel:InitModel long nSteps, double Area, int DeltaT,int PD, char * ForcingFile FILE * fp; int i; this-m_nSteps = nSteps; this-steps = this-m_nSteps + 18; / 驱动数据 this-m_pP = new doublethis-steps; this-m_pEm = new doublethis-steps; / 模
11、型输出,蒸散发项 this-m_pE = new doublethis-steps; this-m_pEd = new doublethis-steps; this-m_pEl = new doublethis-steps; this-m_pEu = new doublethis-steps; / 模型输出,出流项,经过汇流的产流 this-m_pQrg = new doublethis-steps; this-m_pQrs = new doublethis-steps; this-m_pQri = new doublethis-steps; this-m_pQ = new doublethi
12、s-steps; / 模型输出,产流项 this-m_pR = new doublethis-steps; this-m_pRg= new doublethis-steps; 名师归纳总结 - - - - - - -第 5 页,共 17 页精选学习资料 - - - - - - - - - this-m_pRi= new doublethis-steps; this-m_pRs = new doublethis-steps; / 模型状态量,土壤湿度 this-m_pW = new doublethis-steps; this-m_pWd = new doublethis-steps; this
13、-m_pWl = new doublethis-steps; this-m_pWu = new doublethis-steps; /runoff 值 this-RF = new doublethis-steps; fori = 0;isteps;i+ / 驱动数据 this-m_pP i = 0.00; this-m_pEm i = 0.00; / 模型输出,蒸散发项 this-m_pE i = 0.00; this-m_pEd i = 0.00; this-m_pEl i = 0.00; this-m_pEu i = 0.00; / 模型输出,出流项,经过汇流的产流 this-m_pQrg
14、i = 0.00; this-m_pQrsi = 0.00; this-m_pQrii = 0.00; this-m_pQi = 0.00; / 模型输出,产流项 this-m_pR i = 0.00; this-m_pRg i = 0.00; this-m_pRi i = 0.00; this-m_pRs i = 0.00; 名师归纳总结 - - - - - - -第 6 页,共 17 页精选学习资料 - - - - - - - - - / 模型状态量,土壤湿度 this-m_pW i = 0.00; this-m_pWdi = 0.00; this-m_pWli = 0.00; this-
15、m_pWui = 0.00; this-m_Area = Area; this-m_DeltaT = DeltaT; this-m_PD = PD; this-m_U = this-m_Area/3.6 * this-m_DeltaT; / Forcing文件格式: 第一列:降水单位毫米 空格其次列水面蒸发 毫米iffp = fopenForcingFile, r = NULL printf Can not open forcing file.n;return; fori = 0;im_nSteps;i+ fscanffp,%lf%lf ,& this-m_pPi,& this-m_pEmi;
16、 fclosefp; / 设置模型参数 void XinanjiangModel:SetParametersdouble* Params this-m_Kc = Params0; this-m_IM = Params1; this-m_B = Params2; / 1 流域蒸散发才能与实测水面蒸发之比 / 2 流域不透水面积占全流域面积之比 / 3 蓄水容量曲线的方次this-m_Wum = Params3; / 4 上层蓄水容量this-m_Wlm = Params4; / 5 下层蓄水容量this-m_Wdm = Params5; / 6 深层蓄水容量this-m_C = Params6;
17、 / 7 深层蒸散发系数this-m_SM = Params7; / 8自由水蓄水容量this-m_EX = Params8; / 9自由水蓄水容量面积分布曲线指数名师归纳总结 - - - - - - -第 7 页,共 17 页精选学习资料 - - - - - - - - - this-m_KG = Params9; this-m_KI = Params10; this-m_CG = Params11; / 10地下水日出流系数 / 11壤中流日出流系数 / 12地下水消退系数this-m_CI = Params12; / 13壤中流消退系数 this-m_WM = this-m_Wum +
18、this-m_Wlm + this-m_Wdm; this-m_WMM = this-m_WM * 1.0 + this-m_B/1.0 - this-m_IM; / 运行新安江模型 void XinanjiangModel:RunModel void long i; / 模型的状态变量double PE; / 0 时为净雨量 ; 0 为蒸发不足量 mmdouble Ep; /m_Kc * m_pEmi double P; double R; / 产流深度,包括地表径流、壤中流和地下径流mmdouble RB; / 不透水面上产生的径流深度mmdouble RG; / 地下径流深度 mmdou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 新安江 模型 程序 C+ 代码
限制150内