Файл: Количественные методы в мелиорации засоленных почв..pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.10.2024

Просмотров: 78

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

^кон

 

SBy = mi j*

^ B ( y —y n ) d v d t ;

£нач

V

v — вышеуказанный объем

части капиллярной каймы на

расчетном участке. Для того чтобы определить общее при­ ращение количества солей в капиллярной кайме на всем участке, следует Sal умножить на ширину участка, т. е. на его размер в метрах в направлении, препендикулярном к направлению движения потока грунтовых вод (предполага­ ется, что продольная ось участка ориентирована по направ­ лению потока).

Необходимое количество и порядок ввода параметров системы и начальных значений концентраций в ЭВМ и вы­ вод прогнозируемых результатов предусматривается про­

граммой в соответствии с процедурами input

и o u tp u t .

Согласно правилам АЛГОЛа, ввод начальных

значений

концентрации солей в почвенном растворе и грунтовых во­ дах, а также профили дневной поверхности и начальной поверхности грунтовых вод в расчетных узлах производятся

по точкам

в порядке удаления

от начала участка и затем

(для концентраций) — от дневной поверхности к

водоупору,

т. е.

 

 

 

 

 

Уо, О, Уо, 1 »

Уо, 2 ,

, Уо, N , У1,0 ,

У1, 1 , --- - У1, N ,

У2,0 . . . . ,

У6,о, У6,1, . .

•, У6, n, Со, о, Со, 1, •. •

,Со, ц , С1,о>

, , . , Ci, ц , . . . ,

Сд, о , Сп, 1 ,. . . , Сд, if , Lq, Li, . . . , , . . .

и т. д.

В той же последовательности происходит и вывод рас­ четных значений. Параметры функций вводятся в порядке их следования по времени.

Периодическая выдача промежуточных прогнозов про­

изводится в следующем порядке:

начала счета

1. z — время в сутках, прошедшее от

(ОТ £цач)'

;

2. t — порядковый в году номер дня прогноза, например,

£= 90 соответствует 1 апреля.

3.Но, Ни . . . , HN— прогнозируемый напор (уровень сво­ бодной поверхности потока грунтовых вод относительно водоупора) в расчетных узлах сетки.

4.y n,i\ Сп, i — прогнозируемая концентрация солей в почвенном растворе и грунтовых водах к моменту времени

£леч*

'

164


В таком же порядке производится и выдача окончатель­ ного прогноза, однако при этом выдаются дополнительно

следующие данные:

dHN— прогнозируемая скорость потока

За. dHo, dHu . . . ,

грунтовых вод (с обратным знаком), [м/сут] .

36. А0,

An — прогнозируемая скорость эвапо-

транспирации грунтовых вод в расчетных узлах, [ж/ci/r].

Рис. 20. Блок-схема программы «Мелиоративный прогноз».

165

5.

Sal [кг] — прогнозируемое приращение

количества

солей в

слое капиллярной каймы размером 1

м3 к

моменту t KO„ .

Для отладки программы следует использовать тот факт, что за небольшой промежуток времени, порядка 15— 20 дней, при отсутствии инфильтрации прогнозируемое зна­ чение концентрации в узлах сетки должны незначительно отличаться от начальных (в первом — третьем знаках после запятой). При отсутствии больших начальных уклонов зеркала грунтовых вод и колебаний входного и выходного уровней это обстоятельство должно иметь место и для рас­ четных значений Н£ (г = 1, 2 , . . . , N). Блок-схема программы приведена на рис. 20. Как показали предварительные расче­ ты, для схемы из 400 точек (20 интервалов по горизонтали и 18 — по вертикали, при наименьших длинах 50 и 0,25 м

соответственно)

при мощности

потока

грунтовых вод

по­

рядка 20 м,

коэффициенте

фильтрации 5—10 м/сут

и

коэффициентах

конвективной

диффузии порядка 1 • 10~3

м2/сут время

счета на машине типа

«Минск-22» — около

1 часа, для прогноза водно-солевого режима — на 5 лет.

 

begin integer i, n, N, П, PAR, poliv, programm; real D l, D2, m l, m2, k, ao, Bras, Bkr, B, Cpol, alfa, dkp, HI, hk, 1, dx, dh, dt, ips, t, t нач, t печ, t кон, temp, tpol, SBy, Syodv,

Sytx, Sal, yn, FI, F2, F3, F4, qo, z, R, v;

input (N, П, D l, D2, m l, m2, k, ao, Bras, Bkr, Cpol, alfa, dkp, HI, hk, 1, t нач, t кон, ips, t печ, yn);

begin real array у [0:6, 0: N], L, A, H, dH [0: N], a, qa, W [1 :6 ], W l, W2, W3 [0 :6 ], q, AH1, AH, CO [1 :7 ],

C [0 :П, 0:N ], he [1:П , 0 :N ]; input (у, C, L, H, a, qa, q, АН, AH1, CO, W, W l, W2, W 3);

Netz:

begin real E; integer EO;

if

HI ^ 3 .0

then {for

i: = 0

step

1 until N do {he [1, i ] : = h c

[2,

i ] : = hc

[3, i ] : =

he [4,

i ] : =Hl/5.0}; E := 0.8X H 1; go

to

T l]

else

for i:= 0

step 1 until N do {he [1, i ] : = h c [2, i] : = h c

[3, i ] : =

 

he [4, i ] : = hc [5, i ] : = 0.5}; if H l< 4.0

then {E := 2 .5go

to Tl} else if H l< 5.0 then {E: = 3 .5 ; EO: = 6;

go to T02}

else if

HI^ 6.0 then {E := 4 .5; E O := 7;

go

to T02} else if

HI s£7.0

 

 

 

 

 

166


then {E: = 5.5;E O : = 8; go to T02} else if Hl^lO.O then {E := 6 .5; E O := 9; go to T02} else {E:=(H1—8.5)/3.0+8.5; EO: = 9 ; for i: = 0 step 1 until N do begin he [10,i ] : = 2; he [11,i ] : = (HI—8.5)/3; end; gotoT02};

T 02: for n : = 6 step 1 until EO do (for i : = 0 step 1 until N do he [n, i ] : = 1 ;} ;

T1: for i: = 0 step 1 until N do he [П ,i ] : = AH [1] — <AH [1] — Hl)Xi/N — E; end Netz;

begin real d tl, dt2, dt3, dt4; dx: =Z/N; dh: =hk/6; output (dx, dh, he); t: = t нач; temp: = t печ; SBy: = 0 ; PA R : = 1;

poliv: = 0; z := 0 ; H [N ]:= H 1; d tl: = Zf2/(2XaoXNf2); dt2: =Zf2Xni2/(2XD 2X(Nt2+4X^t2)); dt3: = m lX hkf2/ (75XD1); dt4:=tKOH — t нач; R := d t l; for v : = d tl, dt2, dt3, dt4, t печ, 5 do {if R ^ v then R : =-R else R : —v};

end; Syodv: = 0 ; for n: = 0 step 1 until 5 do {for i: —0 step 1 until N—1 do Syodv: = Syodv+y [n, i]+ y [n + l,i] +

y [n, i+ l] + y [n+ 1, i+ 1 ];}; Syodv: = 0.25X dxX dhX m lX Syodv;

L ara: if t> 3 6 5 then t: = t —365 else t: = t ; for n: = 1 ,

2, 3, 4, 5, 6 do begin if a

[n] <0.005 then dt: = R

else {if

(W [n ]—d t)< t< (W [n ]—0.001) then {dt:= W

[n ]—t; go

to quo} else dt: =R} end;

for n: = 1 , 2, 3, 4, 5, 6 do begin

if (W [n ]—0 .00 5)< t< (W [n ]+ a [n ]—0.005) then{

for i: = 0 step 1 until N do A

[ i ] : = —qa [n ]; tpol: = W [n]

+ a [n ]; programm: = poliv;

if d t> a [n]/5 then dt: =

a [n]/5 else dt: = d t; go to AHO} end; programm: = PAR; dt: = R ; go to quo;

quo: for n: = 6 step —1 until 1 do begin if t ^ W2 [n—1] then{qo: = q [n ]-f(q [n + 1 ]—q [n ])X (t—W2 [n—1])/

(W2 [n ]- W 2 [n—1 ]); go to AHO} end;

AHO: for n: = 6 step—1 until 1 do begin if t ^ W l [n —1] then {H [0 ]: = AH [n]+ (A H [n + 1 ]- A H [n ]) X (t -

W1 [n—1])/(W1 [ n ] - W l [n—1 ]); H [N ]:= A H 1 [n] + (AH1 [n+1]—AH1 [n ])X (t—W1 [n—1 ])/(Wl [n] — W1 [n—1]); go to M4} end;

167

М 4:

if program m=poliv then go to Hxt else go to A xt;

A xt:

begin real E l; for i: = 0 step 1 until N do begin

E l : = l —(L [ i] —H [i])/dkp; A [ i ] : = if E 1> 0 then q oX E lfalfa else 0; end; go to Hxt; end A xt;

H xt: begin real E2, ab; ab: = aoX dt/(dxf2); for i : = 1

step 2 until N—1 do H [ i ] : = abX (H [i+ 1 ]—2XH [i] +

H [i—1])—dtX A

[i]/m2+H [ i] ; E2: = l/ (l+ 2X ab );

for i : = 2 step 2 until N—1 do H [ i ] : = (abX (H [i+ 1]-f-

H [i—1 ])—dtX A

[i]/m2+H [i])X E 2; dH [0] : =

kX(H [1]—H [0])/dx; for i: = 1 step 1 until N—1 do

dH [ i ] : = kX (H

[i+ 1] —H [i-l])/ (2 X d x ); dH [N ]: =

kX(H [N]—H [N—l])/dx; end Hxt;

M5: F l:= d tX D l/ (m lX d h f2 ); F 2:= 0.5X dt/

(m lX dh); for n: = 1 , 3, 5 do {for i: = 0 step 1 until N do

begin B: = if(yn —у [n, i])> 0 then Bras else B kr;

у [n, i]:= F lX { y [n—l , i ] —2ХУ [n ,i]+ y [n+ 1, i])

- F 2 X A [i]X (y

[n—1, i ] —у [n + l,i])+ d tX B X

(yn—у [n, i])+ y

[n, i] end}; for n: = 2 , 4

do {for i: = 0 step 1 until N do begin B: = if (yn—у [n, i]>

> 0 then Bras else Bkr; у [n, i ] : = (F lX (y [n—1, i] +

у [n+ 1, i]) - F 2 X A [i] Х(У [ n - 1 , i ] - y [n+ 1, i])+

dt X B X (yn—у [n, i])+ y [n, i] )/(l+ 2X F l) end};

if programm= PAR then go to M l else go to М2;

M l: begin real E3, E4; E4: =0.5X D l/dh; E3: = 3XE4+ips/dt; for i : —0 step 1 until N do begin В : =

if (yn—у [0, i])s^ 0 then Bkr else Bras; у

[0, i ] : =

(ipsX BX (yn—у

[0, i] )+ y [0, i] X (A [i] +ips/

dt)+ E 4X (4X y

[1, i] —У [2, i]))/E3; if у

[0, i]

< 0 then у [0, i ] : = 0 end; go to Cot end;

 

М2: for i: = 0 step 1 until N do у [0, i ] : —0.5X(Cpol+

У [°> i])5

 

,

Cot: begin real Cbx; for n: = 6 step—1 until 1 do begin if t> W 3 [n—1] then {Cbx: =CO [n]+(CO [n + 1 ]—CO [n]} X (t—W3 [n—1])/(W3 [n ]—W3 [n—1 ]); go to M7} end;

M 7: for n: = 1 step 1 until П do C [n, 0 ]: —Cbx; end; M6: F3:=dtXD 2/m 2; F4: =dt/(2Xm 2Xdx);

168


for n : = 1 step 2 until П —1 do {for i : = 1 step 2 until N—1 do C [n, i ] : =F3X({(C [n—1, i] —C [n, i] )/hc [n, i] —

(C [n, i ] —C [n+ 1, i])/hc [n+ 1, i])X2/(hc [n, i] +

h c [n + l, i])+(C [ n ,i+ l] —2XC [n ,i]+ C [n ,i—1])/

dxf 2)+C [n, i]+ F4X (dH [i+ l]X C [n, i + l ] - d H [ i - l ]

XC [n, i—1]);}; for n: —2 step 2 until П —1 do {for i: = 2 step 2 until N—1 do C [n, i ] : =F3X (((C [n—1, i] —

C [n, i])/hc [n, i] —(C [n, i ] —C [n+ 1, i])/

he [n+1, i])X2/(hc [n, i] +hc [n+ 1, i])+ (C [n, i+ 1] - 2 X C [n, i]+ C [n, i —l])/dxf2)+ C [n ,i]+ F 4 X (dH [i+ 1]X C [n, i+ 1]—dH [ i - l] X C [n, i —1]);};

for n: = 1 step 2 until П—1 do {for i: = 2 step 2 until N—1 do C [n, i]:= (F 3 X ((C [n—1, i]/hc [n, i]+ C [n+ 1, i]/

he [n+1, i])X2/(hc [n, i] +hc [n+ 1, i])+ (C [n, i+ 1] +C [n, i-l])/ d x f2 )+ F 4 X (d H [i+ l]X C [n, i + 1 ] - dH [ i - l] X C [n, i —1])+ C [n, i])/(l+F3X(2/

(he [n, i]X h c [n+ 1, i])+ 2/dxf2));}; fo r n := 2

step 2 until П—1 do {for i: = 1 step 2 until N—1 do C [n, i ] : =

(F3X((C [n

1, i]/he

[n, i]+ C [n+ 1, i]/hc [n + l,i])

/(0.5X(hc [n, i]+ h c

[n+ 1, i]))+ (C [n, i+ l] +

C [n, i—l])/dxf2)+ F4X (dH

[i+ l]X C

[n, i + 1 ] -

dH [i—1]X C [n, i —1])+ C

[n,i])/(l+ F3X (2/

(he [n, i]X h c

[n+ 1, i])+ 2/dxf2));}; for i : = l step 1

until N—1 do C [I I ,i]: = C

[П—1 ,i ] ; for n: = 0 step 1 until П

do C [n, N ]: = C [n, N—1 ];

for i: = 0

step 1 until N do

у [6, i ] : = C

[0, i ] : =(2XD 2XC

[1, i] +D1XY [5, i]

/dh)/(Dl/dh+2XD2);

 

 

 

M8: z : —z+ d t;

t := t + d t ;

begin

real E6, E5; E 5 := 0 ;

for n: —0 step 1 until 5 do {for i: = 0

step 1 until N—1 do {

E 6:= 0 .25X (y [n ,i]+ y [n + l,i]+ y [n, i+ l] +

у [n+1, i+ 1]); B: = if E6>yn then Bkr else B ras; E5: = E 5+

BX(E6—yn)}}; SB y: = SB y+ m lX dtX dhX dxX E 5; end;

if z > t кон then go to M9; if z> tem p then {temp: = tem p+

t печ; go to M10};

M i l : if program m=PAR then go to L ara; if t< tp o l then

go to AHO else go to L ara;

M10: output (z, t, H, у, C); go to M i l ;

169


М 9: S ytx : = 0 ; for n: = 0 step

1 until 5

do {for i:= 0

step 1 until N—1 do S ytx: = Sytx+ y

[n, i]-j-y

[n+ 1, i] +

У [n, i+ l] + y [n+ 1, i+ 1 ] ;}; S ytx : —0.25X m lX dxX

dhX Sytx; S al: —Sytx+ SB y — Syodv;

 

output (z, t, H, dH, А, у, C, S a l); end end*

 

ЛИТЕРАТУРА

 

 

Б p у д н о А. Л. Алгол. M., 1971.

Физико-математические ос­

Б э р Я., З а с л а в с к и Д . , И р м е й С .

новы фильтрации воды. М., 1971.

 

 

С а у л ь е в В. К. Интегрирование уравнений параболического типа методом сеток. М., 1960.