当前位置:首页 » 编程语言 » 三层蒸发模型c语言代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

三层蒸发模型c语言代码

发布时间: 2022-09-11 08:42:01

⑴  源汇项数据整理

一、计算网格的剖分

根据模块化三维有限差分地下水流动模型计算软件的特点,为了更好描述在表高程、水头边界、汇源项,在平面上将计算区按每个单元均是边长为800m的正方形进行剖分,共剖分成154 048个单元(图4-6),其中有效计算单元61 588个,总面积为39 416.32km2。其中,一类边界(河流)单元格数2 581个,所占1 651.84km2;三类边界(沼泽湿地)单元格数5 145个,所占面积3 292.80km2(见表4-1)。

表4-1 工作区行政分区计算面积统计表

续表

图4-2 三江平原第一层含水层参数分区图

图4-3 三江平原第二层含水层参数分区图

图4-4 三江平原第三层含水层参数分区图

图4-5 三江平原第四层含水层参数分区图

图4-6 三江平源计算区剖分图

二、垂向补排量

在模型中,垂向补排量由下式确定:

三江平原地下水资源潜力与生态环境地质调查评价

式中:P为地下水垂向补排强度,m3/d;q边为二类边界补给强度,m3/d;q降水为降水入渗补给强度,m3/d;q回归为渠灌水田回归入渗补给强度,m3/d;q开采为地下水开采强度,m3/d。

(一)二类边界补给强度

二类边界系指平原与山地接壤地段地下水自山地地区向平原区径流的侧向补给量。因此类边界上地下水动态监测资料较少,将其概化为垂向补给强度,即山地周边计算单元格的垂向补给强度中含二类边界补给强度。同时,根据二类边界含水层特征,将二类边界概化为河谷与山地两类,其补给强度为常量,并取区域径流补给强度,山区河流出山口地段河谷区地下水径流补给强度为0.03m/d;山地区地下水径流补给强度为0.006m/d。计算时,根据山地周边计算单元格的类型确定其二类边界补给强度,加入至该计算单元格中。

(二)降水入渗补给强度

因工作区内存在季节性冻土,每年的11月初至翌年的4月末地表冻结,此时的降水不能补给地下水,从而确定每年的5~8月降水量为入渗补给地下的有效降水量。选择与地下水动态观测资料同步的工作区及相邻地区气象站和雨量站有效降水资料,绘制逐月的降水量等值线图,进而确定各单元格的有效降水量。

降水入渗补给强度按下式计算:

三江平原地下水资源潜力与生态环境地质调查评价

式中:P为月平均降水量,m/d;α为降水入渗系数。

降水入渗系数的大小,主要取决于表层土岩性特征,根据表层土岩性的不同,将降水入渗系数划分为好、较好、较差、差4个区(见图4-7)。具体由计算模型识别确定。

(三)渠灌水田回归入渗补给强度

渠灌水田回归入渗补给强度按下式确定:

三江平原地下水资源潜力与生态环境地质调查评价

式中:q渠灌为渠灌用水量强度,m3/d;α回归为灌溉水回归系数。

1.渠灌用水强度

根据《黑龙江省行业用水定额(试行)》中水稻节水灌溉定额(P=75%),结合工作区表层土岩性,确定不同地段灌溉水回归系数与渠灌用水强度如表4-2。回归系数分区见图4-8。图中的水田分布系根据“卫片解释”成果及地面调查、收集水利资料等确定。

表4-2 渠灌用水强度表

按公式(4-9)及计算区渠灌水田面积确定的2001年全区渠灌水田回归量为60 373.74×104 m3/a。各行政区计算成果见表4-3 。

图4-7 三江平原表层土岩分区图

图4-8 三江平原水田回归系数分区图

表4-3 渠灌水田回归量计算统计表

续表

续表

2.用水分配

根据《农业技术经济手册》,结合工作区气象条件,确定不同时间水田灌溉用水强度如表4-4,以此确定计算期内各时段(5~8月)灌溉水回归补给强度。

表4-4 渠灌水田灌溉用水强度逐月分配表 单位:m·a-1

(四)地下水开采强度

计算区内地下水开采强度依据本次调查资料(表4-5)。其中井灌水田开采量根据实际调查面积和表4-2中净灌定额确定,渠系水利用系数取0.95,而井灌水田回归量与地下水开采量间为重复利用关系,故井灌水田开采强度按净灌定额除以渠系水利用系数确定。

表4-5 年均地下水开采现状调查统计表

续表

井灌水田开采地下水强度的逐月分配见表4-6。而工业及生活用水开采地下水平均分配至计算期各时段上。

表4-6 井灌水田灌溉用水强度逐月分配表 单位:m3·a-1

2001年5月~2002年4月计各行政区地下水开采强度见表4-7。

表4-7 2001年5月至2002年4月开采强度分区统计表

续表

续表

三、地下水蒸发

模型中地下水蒸发量按下式确定:

三江平原地下水资源潜力与生态环境地质调查评价

式中:QE为地下水蒸发强度,m/d;Q0为地下水最大蒸发强度,m/d,即地下水位临界地表时的蒸发强度,取气象观测资料中的水面蒸发强度;h为地下水位高程,m;hE为地下水蒸发达到最大时的地下水位高程,m,即地面高程;dE为地下水蒸发极限深度,m,与表层土岩性有关,其分区与表层土岩性分区相同(参见图4-7),具体大小由模型识别确定。

因区内气象站较少,选取地下水最大蒸发强度时,取计算时段各表层土岩性分区各月的平均值。同时,根据计算区存在季节性冻土的特征,每年的1~4月份及11~12月份地下水蒸发强度为零。此外,水田种植区灌水季节(5~8月)地下水无蒸发。模型识别时段内各月地下水最大蒸发强度见表4-8。

表4-8 2001年5~10月地下水最大蒸发强度表单位:m/d

⑵ 两种水文模型在窟野河的应用与比较

6.2.4.1 水量平衡模型的应用

水量平衡模型选月为计算时段,主要输入月降雨量、月蒸发量,输出月径流量,因此称为月模型。该模型以质量守恒原理为理论基础,结合流域土壤含水量,将各个水文过程或变量之间的关系通过表达式来模拟的流域水文过程。月水量平衡模型有2参数月水量平衡模型、3参数水量平衡模型和5参数月水量平衡模型。2参数水量平衡模型是针对中国南方湿润或半湿润地区,提出和建立的2参数模型模拟径流和土壤湿度过程。窟野河流域属于干旱半干旱地区,冬季干旱少雨,部分月份降雨为零,因此,选用改进的两参数的水量平衡模型进行编程计算。当降雨为零时,月径流量与土壤含水量的关系;降雨不为零时,月径流量与土壤含水量的关系。

(1)基于VB下月水量平衡模型参数率定和计算程序的编写

Visual Basic(简称VB)是美国微软(Microsoft)公司沿用Basic语言在Windows环境下开发的一种可视化程序设计语言,适合于面向对象的软件开发。Visual Basic语言却不同,它是非过程式的设计语言,具有以下优点:

a.是目前最容易学习的一种面向对象的、可视化的程序设计语言。

b.将程序和数据封装在一起视为一个对象,提高程序设计的效率,代码设计针对对象,没有复杂的程序流程。

c.开发出了功能强大的Active控件和对象,实现图像、声音、动画等多媒体功能。

d.可方便的与AutoCAD, Microsoft Access等实现无缝集成。

e.在计算速度、代码效率上,最新版本的Visual Basic语言并不比其他开发语言逊色很多。

根据月水量平衡模型的基本理论,在参数率定时,需对数据迭代运算。为避免采用人工试错法层层迭代计算的烦琐、费时及计算精度又低,基于VisualBasic程序设计语言,编写了月水量平衡模型的参数率定程序和计算程序,既提高了效率也提高了计算精度。

1)VisualBasic语言程序编写的流程图。本节在进行月水量平衡模型模拟计算时,借助VisualBasic程序设计语言进行编程,然后将率定期年份的降水量、蒸发量、径流实测值输入EXCEL表格中,在率定程序界面中直接调用EXCEL表格,进入程序运算,选取最优参数,将最优参数代入计算程序,计算模拟径流值(图6.23)。

图6.23 程序流程图

2)程序的界面(图6.24、图6.25)。

图6.24 参数率定程序界面

图6.25 计算程序界面

(2)径流模拟

用月水量平衡模型对窟野河流域进行模拟,降水量选取王道恒塔站以上流域内8个雨量站和新庙站以上流域内7个雨量站及温家川以上流域内11个雨量站序列资料,径流选取王道恒塔、新庙和温家川3个站的月流量资料,蒸发站选取王道恒塔、新庙、温家川的月蒸发皿观测资料。模拟结果见表6.16,包括率定期和检验期Nash和Sutcliffe模型效率系数RNS、多年平均相对误差Re及极值模拟相对误差Remax。从表6.16中可以看出,该模型模拟精度较高,率定期和检验期的RNS分别为77.0%、75.5%。Re和Remax较小,图6.26~图6.28绘出王道恒塔站、新庙站和温家川站模拟与实测月径流过程线。

表6.16 模型参数及模拟结果

图6.26 王道恒塔站(1969-01~1983-12)径流量过程线

图6.27 新庙站(1969-01~1983-12)实测径流量与模拟径流量过程

图6.28 温家川站(1969-01~1983-12)实测径流量与模拟径流量过程

从表6.16中可以看出,率定期和验证期的月径流模拟Nash和sutcliffe效率系数RNS值均在65%以上,平均相对误差为4.9%、6.03%,也均控制在10%以内,极值误差为6.9%,控制在20%以内。从图6.26~图6.28可见,该模型模拟月径流过程与实测径流过程吻合较好。对于春汛3月份,由于气温回升,受冰川径流的影响,结果显示实测值与模拟值相差比较大,一般为实测值较大,模拟值较少。

6.2.4.2 VIC模型的应用

(1)VIC模型程序运行

VIC模型的运算程序是由美国华盛顿大学开发的一个用C语言编写的庞大而复杂的程序,它由200多个子程序组成。目前,VIC模型将土壤定义为三层。但在程序运算中,将土壤设计为N层,可以进行多层模拟,这有利于模型的拓展。程序的核心部分是能量和水量平衡的计算。主要包括蒸散发计算,直接径流和基流计算(图6.29)。

图6.29 VIC模型程序计算过程图

程序是按网格进行计算,在水量平衡模拟之前,先要对降水的分配进行处理,确定有降水的面积比例系数A,来计算土壤湿度。如果第一个时段没有降水,A取1;如果第一个时段有降水,A由降水强度来确定。当有新的降水发生或者降水强度改变时,A改变,基于此,在计算降水分配之前要均化土壤湿度成分,重新分配土壤湿度、植被截留和干湿比例参数。同时,程序对于每个网格的初始数据也要进行写入,主要包括每个网格的信息、站点信息、土壤热量节点深度、土壤热量节点温度、植被类型、网格定义信息、土壤湿度等。

在模型中,蒸散发计算主要包括冠层湿部蒸发、植被蒸腾和土壤蒸发。运用PenmanMonteith联合方程计算日蒸发,其中需要计算的有阻抗因子、植被阻抗、基于平均温度的基准高度。各种植被类型的蒸发、蒸腾和透雨量的计算模块中,主要包括以下几个子程序:

1)计算植被截留的蒸发。其中若时段为日,蒸发包括当前降水;若时段小于日,蒸发不能超过当前蓄水。

2)计算植被的蒸发蒸腾水分损失总量。

3)计算上下层土壤湿度,主要是用来判断土壤的湿度和根系比的相互影响。当每层土壤湿度都大于W0(不被土壤湿度影响的蒸腾临界值),或湿度和过半的根系超过W0时,潜在蒸发不受土壤干燥程度的影响;若土层中有不到一半的根系小于W0,额外的蒸发则由较湿润的土层提供。对于由深层土壤湿度引起的蒸发蒸腾水分损失总量,独立于各土层之外进行计算。

4)检查蒸发蒸腾水分损失总量是否导致土壤湿度降至凋萎含水量以下。土壤蒸发计算模块中,在饱和地区按照潜在蒸发能力进行计算;在部分饱和地区按照潜在蒸发能力的百分比进行计算;裸土蒸发只计算最上层。土壤临时渗透率根据土壤湿度计算。

模型程序中对于产流的计算主要包括地表径流及基流。首先需要设置残留含水量,计算基于上层土壤含水量的径流;对于地表径流只计算上层,以小时为步长计算各层之间的渗流。在计算当前土壤含水量时,要对照最大、最小含水量,确定计算值应在二者之间。基流通过Arno模型计算。

VIC模型的运行环境为UNIX工作站,所以本研究采用在 Windows下虚拟UNIX环境的方法,在虚拟的环境下运行VIC模型,编写输入输出控制程序,并调用VIC模型。VIC模型的程序来源于University of Washington网站上共享的程序源代码。

(2)VIC模型文件的输入、输出

VIC模型通过网格化来考虑每个网格单元的植被覆盖类型、降水的空间分布不均以及土壤特性对径流的影响。本研究采用10km×10km网格对研究流域进行划分。模型在每个网格上独立运行,因此参数文件、数据文件以及输入、输出文件需按网格来准备。其中,输入文件主要包括植被数据文件、土壤数据文件、气候背景数据文件以及运行控制文件和汇流文件。

本研究只针对VIC模型进行水量平衡的模拟,不计算除蒸散发外地表的能量通量,忽略了地面热通量过程,在耦合了汇流模型之后,就可以输出控制站的年、月、日径流量以及其平均值。在准备了以上的VIC模型输入文件以及控制文件后,就可以运行VIC模型并耦合汇流模型对研究流域进行径流模拟。

(3)模拟结果

根据地理位置、下垫面条件和气候特点,对窟野河流域王道恒塔站和新庙站及温家川站采用VIC模型进行模拟,以Nash和Sutcliffe效率系数和相对误差作为目标函数进行率定。通过试验模拟,在得到模拟结果的同时,也率定得到了模拟流域的最优参数(表6.17)。图6.30~图6.32则描述了研究流域模拟结果的月径流过程。表6.18给出了流域基本信息及径流模拟结果。

表6.17 模型率定的最优参数值

表6.18 流域基本信息和径流模拟结果

注:Er为模拟相对误差,Ce为月流量的模拟效率系数。

从模拟结果可以看出:VIC模型在窟野河流域适用性较差,评价标准多年径流相对误差Er基本控制在6%以下,其中温家川站最小,Er为1.11%;对于反映流量过程吻合程度的Nash-Sutcliffe系数Ce,其日流量过程模拟结果都较差,月流量过程模拟结果在60%~65%之间。从图6.30~图6.32可见,VIC模型在窟野河流域的降雨径流模拟较差,少数峰值误差较大。

图6.30 王道恒塔站月径流过程模拟结果

图6.31 新庙站月径流过程模拟结果

图6.32 温家川站月径流过程模拟结果

在现阶段水文模型发展趋势下,很多水文模型在干旱半干旱地区的使用一直是水文学者面临的挑战,VIC模型虽可以在干旱半干旱地区应用,但适用性比较差,特别是月径流模拟。据分析可能有以下几方面的原因:

1)窟野河流域站点日降水量资料欠缺,且已有的站点日降水量资料质量也不高是该模型在窟野河流域模拟效果较差的主要原因。

2)VIC模型复杂的结构和庞大的参数系统,使模型在模拟水文过程时,各相关物理过程存在很多不确定性,这也是原因之一,并且这是目前分布式水文模型在干旱半干旱地区应用普遍面临的难点。

3)参数不确定性带来的误差。尽管在VIC模型中各种参数已赋予了明确的物理意义,并充分反映各种物理过程,但由于技术水平有限,以及对参数物理意义认识存在缺陷。因此,在确定参数时,虽运用了一些概化、均化公式计算的方法,但还是对模型的模拟结果造成了影响。

4)由于本模型模拟的时间尺度和空间尺度比较大,缺乏更详细的实测资料,必然会对模拟结果的精度产生一定的影响。如果有条件采用更小尺度的实测资料,会提高模拟的精度,这也需要今后做更深入的研究。VIC模型没有考虑人类活动对径流的影响,这样造成的误差也是不可避免的。

(4)流域水文模型的应用情况分析

基于物理机制的分布式水文模型可变下渗容量(简称VIC)模型和概念性集总式月水量平衡模型都在窟野河流域分别做了应用,其效果表明:月水量平衡模型和VIC模型在窟野河流域都有较好的应用,相比月水量平衡模型,VIC模型月径流模拟过程效果达60%以上,模拟结果相对较差。据分析认为:流域水文过程是一种复杂的自然现象,在一定程度上受一些不确定因素的影响,可能由于长序列资料在某种程度上均化了流域水文的随机性。从而使月水量平衡模型月降水-径流模拟比VIC模型的月降水-径流模拟效果较好。

为进一步分析比较集总式水量平衡模型和分布式可变下渗容量(VIC)模型在窟野河流域的应用,图6.33比较了模型对月径流模拟的Nash-Sutcliffe效率系数。

图6.33 两模型在窟野河流域效率应用比较

由图6.33可以看出,集总式月水量平衡模型比分布式可变下渗容量(VIC)模型的模拟效果好,月水量平衡模型的Nash-Sutcliffe效率系数平均超过了70%,而可变下渗容量(VIC)模型的Nash-Sutcliffe效率系数平均在60%~65%之间。既有较好考虑物理机制又能解决水文要素时空分布不均匀性分布式水文模型是目前研究的热点,也受众多学者青睐。从理论上来看,在资料丰富且质量较好的流域,考虑产流机制分布式水文模型可以得到较好模拟效果[39],但对黄土高原的典型流域黄河中游的窟野河流域模拟结果来看,可变下渗容量(VIC)模型模拟效果并不是最好的。分析认为,黄河中游支流窟野河流域水文气象日资料欠缺,且资料的质量也不好是分布式可变下渗容量(VIC)模型模拟效果不太好的主要原因。相比分布式VIC模型,月水量平衡模型结构简洁,涉及的参数也比较少。因此,选用集总式水量平衡模型开展气候变化对水文水资源影响模拟。

⑶ 数据结构代码(用C语言) 二叉树的操作

# include <stdio.h>

# include <malloc.h>

struct BTNode

{

int data;

struct BTNode * pLchild;//p是指针,L是左,child是孩子

struct BTNode * pRchild;

};

//函数声明

struct BTNode * CreateBTree(void);//创建树

void PreTraverseBTree(struct BTNode * pT);//先序遍历

void InTraverseBTree(struct BTNode * pT);//中序遍历

void PostTraverseBTree(struct BTNode * pT);//后续遍历

int main(void)

{

struct BTNode * pT = CreateBTree();

PreTraverseBTree(pT);

printf("\n");

InTraverseBTree(pT);

printf("\n");

PostTraverseBTree(pT);

return 0;

}

//创建树

struct BTNode * CreateBTree(void)

{

struct BTNode * pA = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pB = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pC = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pD = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pE = (struct BTNode * )malloc(sizeof(BTNode));

pA->data = 'A';

pB->data = 'B';

pC->data = 'C';

pD->data = 'D';

pE->data = 'E';

pA->pLchild = pB;

pA->pRchild = pC;

pB->pLchild = NULL;

pB->pRchild = NULL;

pC->pLchild = pD;

pC->pRchild = NULL;

pD->pLchild = NULL;

pD->pRchild = pE;

pE->pLchild = NULL;

pE->pRchild = NULL;

return pA;

}

//先序遍历

void PreTraverseBTree(struct BTNode * pT)

{ //先访问根节点,再先序访问左子树,最后先序访问右子树

if ( pT != NULL)

{

printf("%c\n",pT->data);//访问根节点

//pT->pLchild可以代表整个左子树

PreTraverseBTree(pT->pLchild);

PreTraverseBTree(pT->pRchild);

}

return;

}

//中序遍历

void InTraverseBTree(struct BTNode * pT)

{

if(pT != NULL )

{

if (NULL != pT->pLchild)

{

InTraverseBTree(pT->pLchild);

}

printf("%c\n",pT->data);

if (NULL != pT->pRchild)

{

InTraverseBTree(pT->pRchild);

}

}

return;

}

//后续遍历

void PostTraverseBTree(struct BTNode * pT)

{

if(pT != NULL )

{

if (NULL != pT->pLchild)

{

PostTraverseBTree(pT->pLchild);

}

if (NULL != pT->pRchild)

{

PostTraverseBTree(pT->pRchild);

}

printf("%c\n",pT->data);

}

return;

}

⑷ C语言程序设计

运行结果是3。

原因是''被认为是一个字符,即null character,标志着一个字符串的结束,即字符串"012xy8s34f4w2"中的是terminating character(终止字符?),同时由于加引号的字符串被认为是字符串常量,末尾(即2)之后一位还会加上一个,此时的存储

012xy8s34f4w2

其中被认为是一个整体,而非'''0'。

在for循环中的控制条件s[i]!=0,即s[i]!='',它使得循环在探测到s[5]即''时就终止,而循环体中的if分支语句意思是寻找0-9之内以char存储的数字总数,一共有0、1、2,故计数变量n最终值为3。

附程序运行结果:

⑸ 地下水数值模拟模型

一、模型计算范围及剖分

选用有限差分法建立地下水数值模型。模拟分析软件选用PMWIN(processing Modflow)和GMS(Groudwater Model System)求解地下水运动的定解问题,PMWIN是美国地质调查局开发的用于模拟和预报地下水系统的应用软件,它是一个以Modflow为核心的可以用来处理三维模型的软件(Wen-Hsing Chiang,2005)。PMWIN具有较好的数据导入界面,GMS具有较好的数据后处理可视化显示,结合两者优点进行模拟。模型计算范围,北起黄士台源,南至泾、渭河,西界起自19276km线,东界至19351km线,扣除其内不建模的部分,模型总有效面积为1513km2。以1km的均匀步长对模型进行剖分,其剖分网格实际上就是高斯-克吕格投影地图中的“公里网”。泾惠渠灌区地下水模型剖分图见图8-2。

时间剖分以自然月为时间步长。

图8-2 泾惠渠灌区地下水数值模型剖分及资源分布图 Fig.8-2 Groundwater numerical model split and resource distribution in Jinghui Canal Irrigation District

二、模型边界条件与地下水补、排要素的处理

1.侧向补给处理

模型的计算区为第四系松散沉积物潜水含水层。为简化模型,北部黄士台源洪流入渗放在模型北部边界上,其数量取多年平均值,忽略其随时间的变化。

2.降水入渗补给

根据灌区水文地质图,结合不同地形地貌单元降水入渗补给系数的取值。综合考虑包气带的降水量、士质类型、下垫面条件及地下水位埋深等因素进行了分区(Yukun Hu et al.,2010),确定出模拟区降水入渗补给系数分区图(图8-3),通过灌区1953~2000年降水资料及1988~2000年地下水93个长观井水位资料统计分析,确定降雨入渗补给系数(Yonxhui Yanx et al.,2006)。然后将所有面状、线状的源汇项数据分别换算成强度形式,然后通过叠加计算,再次换算成单个网格上强度,再以recharxe模块导入模型。

图8-3 泾惠渠灌区降水入渗补给系数分区 Fig.8-3 partition map of precipitation infiltration supply coefficient in Jinghui Canal Irrigation District

3.田间灌溉渗漏补给及渠系渗漏补给

田间灌溉渗漏补给及渠系渗漏补给是模拟区地下水两种主要补给源。灌区渠道分布基本覆盖整个模拟区,以面状补给来处理田间灌溉的渗漏补给及渠系渗漏补给。根据灌区士地利用统计资料和拥有的长系列灌溉用水量资料,结合不同灌溉定额和补给系数计算农田灌溉各时段的渗漏补给量,再将灌溉渗漏补给量平均分配到计算的单元格中。

4.井灌地下水开采排泄

根据对灌区地下水资源计算与评价结果,全灌区近年平均开采地下水资源量为1.2629×108m3/a。灌区井网以灌溉渠系的斗、分渠为骨架,井排走向与潜水流向垂直或斜交,井距200~300m,浅型井占95%,中深井占2.4%,大口井占1.4%。开采量、开采动态等根据灌区灌溉年报中年度地下水取水情况统计表获得。灌区地下水开采量按照井流模块(Well)输入模型中。

5.蒸发排泄

MODFLOW中的EVT蒸发子程序包为线性蒸发模型,浅埋区地下水蒸发与埋深呈非线性关系,同时蒸发因素在地下水均衡分析中所占比重较大,利用线性模型计算蒸发量误差较大,本书采用阿里维扬诺夫非线性公式代替了EVT蒸发模块线性公式来计算蒸发量,用Visual Basic6.0在EVT模块中改写了源代码。阿里维扬诺夫非线性公式为

灌区农业节水对地下水空间分布影响及模拟

式中:RETMii,j为地下水面蒸发强度(m),取决于当地气象条件;RETii,j为潜水蒸发强度(m),随月份变化,用单位面积单位时间内水量体积表示;hi,j,k为单元水头,或地下水位(m);hs,j,k为蒸发界面高程(m);dii,j地下水极限蒸发埋深(m),与岩性特征有关;m为无量纲指数,该地区近似取2。

调整后的RET与调整前相比,精度有较大提高,同时用稳定流拟合效果较好时计算的地下水等水位线,与实测地下水埋深线进行叠加作为虚拟蒸发界面高程,利用虚拟蒸发界面高程代替实际的蒸发界面高程,然后将虚拟蒸发界面高程导入EVT模块中,反复调试拟合,再使得虚拟蒸发界面高程与计算等水位线的差值,与实测地下水埋深基本一致,这样避免了地下水流场拟合误差引起的实际蒸发量和模拟蒸发量在区域分布上的不一致,水资源模拟仿真度有所提高。

6.工业、生活地下水开采排泄

灌区附近周边乡镇截至目前仍没有实现自来水管网供水,乡镇企业和生活用水主要还是开采地下水,由于这些地下水井没有详细的统计资料,尤其是农村生活用水,基本上是每户都有一眼小型的抽水井,很难统计单井开采量,因此用农村人畜用水量定额的方法对其开采量进行估算,再按照面状负补给加入到模型中。

三、模型识别与检验

1.水文地质参数分区

水文地质参数分区依据灌区水文地质勘察、抽水试验资料,再结合模拟区的地形地貌、地质图、水文地质图等进行参数分区,水文地质参数(T、μ)采用分片常数法,其分区范围与形状,应符合地质条件与第四系沉积特征(图8-6,图8-7)。抽水试验所在参数分区,其参数值直接采用抽水试验求得的参数值。并以该分区参数作为基准参照参数,用推断类比法并参考其他单孔抽水试验数据,来估计其他分区的参数初值,待模型校正阶段进行确认。

2.模型识别与检验

模型识别与检验是地下水数值模拟及模型建立过程的一个关键环节。通常在模型识别与检验过程中,对水文地质概念模型重新认识,分析研究区水文地质条件,进一步对水文地质模型正确与否进行判断。模型识别与检验流程见图8-4。

图8-4 模型识别与检验流程图 Fig.8-4 Flow chart of model calibration and verification

模型识别与检验的优劣,同样也取决于建模过程中水文地质条件分析、模型概化等各个环节质量的优劣,识别与检验工作并不是一个调参的“数字”过程。模型检验与识别依据地下水模拟流场与地下水实际流场基本一致;模拟地下水的动态过程与实测的动态过程宏观相似;从水均衡的角度看,模拟的地下水均衡变化与实际要素基本相符;识别的水文地质参数基本符合实际水文地质条件。

本次共搜集了灌区石桥、泾阳、杨府、三渠、三原、西张、陂西、高陵、彭李、张卜、栎阳、新市、楼底、阎良共14个灌溉管理站93个地下水长观孔水位资料,每月定期观测6次,分别为1日、6日、11日、16日、21日、26日,记录观测地下水位动态,地下水位观测孔的分布基本覆盖整个灌区(图8-5)。

图8-5 泾惠渠灌区地下水长观孔分布图 Fig.8-5 Groundwater long-term observation hole distribution in Jinghui Canal Irrigation District

选取1996年1月至1998年12月的月平均水位观测数据用于模型的参数识别,1999年1月至2000年12月的月平均水位观测数据用于模型检验。

根据现状多年平均渠系渗漏补给量、田间灌溉渗漏补给量及地下水等水位线等信息,调整各分区导水系数T的数值进行拟合匹配(图8-6)。这一原则的实质是将灌区地下水循环看作“天然大型达西试验”,来调整导水系数T数值及分布,将产生不同形态流场,即等水位线分布,当模拟流场与实际流场宏观相似,即初步完成了对T的校正过程,同时也计算出了地下水蒸发量。校正给水度时,暂时固定T数值,调整各分区的给水度μ(图8-7)。给水度的大小影响地下水动态年变幅,通过调整使地下水动态年变幅与实际观测值接近。通过调整参数分区及分区参数值使两者之间的差值尽量最小,并据此来判断所用水文地质参数及分区是否合理。经反复调试参数,获得了较为满意的水文地质参数。部分观测孔的实测水位与计算水位拟合曲线如图8-8所示,拟合误差的绝对值大多数满足规范要求,可见各观测孔的水位拟合效果是较好的。

在模型调试过程中,充分利用水文地质勘探资料中所获得的各种信息及计算者对水文地质条件的判断。反复调试,直至流场及观测孔动态年变幅与实际观测值接近为止。使识别后的模型参数、地下水流场及地下水资源量之间达到较合理的匹配。

图8-6 泾惠渠灌区含水层导水系数T分区及补给排泄计算断面 Fig.8-6 partition map of aquifer hydraulic conctivity coefficient and recharge disrecharge sections in Jinghui Canal Irrigation District

图8-7 泾惠渠灌区含水层给水度μ分区图 Fig.8-7 partition map of aquifer specifie yield in Jinghui Canal Irrigation District

根据上述方法,利用1996年1月至1998年12月期间的地下水长观孔水位观测数据进行水文地质参数识别,用1999~2000年的地下水长观孔水位观测资料进行模型检验。模型计算求得的灌区典型观测孔水位变幅与实测水位变幅的拟合曲线如图8-9所示,灌区典型观测孔水位与实测水位拟合如图8-10所示。由图8-9可以看出,根据93个长观孔水位资料,剔除资料欠完善的部分观测孔,选择44个观测孔对其水位过程线进行拟合,统计绝对误差见表8-1。

图8-8 泾惠渠灌区地下水等水位线拟合图 Fig.8-8 Fitting chart of groundwater contour in Jinghui Canal Irrigation District

表8-1 拟合误差分布 Table8-1 Error analysis of groundwater level simulation

由图8-10及实际模拟过程可以看出,地下水位计算值和实测值相关系数(R2)在0.8~0.98之间变化,说明模型输入补给排泄要素及水位地质参数在该模拟区具有一定的代表性。模型拟合情况大致可以分为两类:一类是拟合情况比较好的,模型计算水位和实际观测水位相差较小,能够比较好地反映出该格点的水位动态趋势;另一类是模型计算水位值与实测水位值始终有一定的差异,但变化趋势基本保持一致。经分析,产生误差的,主要源于各源汇项的统计误差、地质资料的精度问题导致地层模拟误差等。还有一点需要说明的是,模型算法采用迭代求解,通过迭代法得到的解仅是差分方程的近似解,精度也受很多因素的影响。综上由模型计算流场和水位变化过程线拟合情况看,模拟计算结果比较真实地反映了灌区地下水流场特征,可以用其进行数值分析计算。

图8-9 泾惠渠灌区典型观测孔水位变幅拟合图 Fig.8-9 Fitting of typical observation hole water level amplitude in Jinghui Canal Irrigation District

图8-10 泾惠渠灌区典型观测孔水位拟合图 Fig.8-10 Fitting of typical observation hole water level in Jinghui Canal Irrigation District

⑹ fluent中的蒸发模型

好像有这方面的例子,你可以看看。比如气体升为固体,fluent无法自动生成,你得通过udf实现。

⑺ 请问用fluent水蒸发冷凝模型时怎么把水的饱和温度定义为T=45.7+3826.36/9.3876-lnp,这个udf怎么编写

这个问题呢 根本不用UDF 14.0版本里就可以自己设置这个函数 利用两相流mixture模型 然后在两相相互作用力的 传质里选择蒸发-冷凝模型 里面就可以设置这个函数了 不过那里面好像是多项式形式的

⑻ 编一C语言程序,任意输入一个大写字母,将其转换成小写字母并输出

1、第一新建一个project。

⑼ 根据物质三态变化的实质,画出水蒸发的模型.

上楼的答案是错的那个图可以表示水电解模型。水蒸发的实质是水分子间距离增大,没有产生新的物质,所以在该图的基础上只要把蒸发出来的模型都换成水分子就可以了,删去氢分子和氧分子(就是2个相同圈组成的模型)

答案:在图中阴影部分画较密集的水分子模型,上半部分画疏松的水分子模型

⑽ C语言源程序文件的后缀是什么

C语言源程序文件的后缀解决如下:

  1. c 是c语言的源程序,.cpp是c++语言的源程序。

  2. 在Windows操作系统下,C语言源程序后缀为.c 、编译后的后缀为 .obj 或 .o 、连接后生成的可执行文件的后缀为.exe。