середовищі Compaq Visual Fortran 6.5. Чисельні результати виводяться в текстовий файл out.txt, з якого можна побудувати візуалізацію в середовищі Maple.
Результати роботи можуть бути використані для чисельного вирішення складніших завдань дифузії домішок в атмосфері, наприклад, в реалізації обліку впливу рельєфу підстильної поверхні, реакції компонентів домішки між собою. Розглянута модель розповсюдження забруднюючих речовин може бути використана для екологічної експертизи забруднення навколишнього середовища діючими і проектованими промисловими об'єктами.
Список використаних джерел
Берлянд, М.Є. Сучасні проблеми атмосферної дифузії/М.Є. Берлянд.- Ленінград: Гидрометеоиздат, 1975. - 448 с.
Марчук, Г.І. Математичне моделювання в проблемі охорони навколишнього середовища/Г.І. Марчук.- М .: Наука, 1982. - 320 с.
Марчук, Г.І. Чисельне рішення задач динаміки атмосфери і океану/Г.І. Марчук .. - Ленінград: Гидрометеоиздат, 1974. - 303 с.
Марчук, Г.І. Методи обчислювальної математики/Г.І. Марчук.- М .: Наука, 1989. - 608 с.
Алоян, А.Є. Моделювання динаміки і кінетики газових домішок і аерозолів в атмосфері/А.Є. Алоян.- М .: Наука, 2008. - 415 с.
Бабешко, В.А. Математичне моделювання екологічних процесів розповсюдження забруднюючих речовин/В.А. Бабешко, А.В. Павлова, О.М. Бабешко, О.В. Євдокимова.- Видавничо-поліграфічний центр Кубанського державного університету, 2009. - 138 с.
Самарський, А.А. Чисельні методи розв'язання задач конвекції-дифузії/А.А. Самарський, П.Н. Вабищевич.- М .: URSS: Либроком, 2009. - 246 с.
Бахвалов Н.С. Чисельні методи/Бахвалов Н.С., Жидков Н.П., Кобельков Г.М.- М .: Лабораторія Базових Знань, 2001. - 632 с.
Агошков, В.І. Методи рішення задач математичної фізики/В.І. Агошков, П.Б. Дубовський, В.П. Жартома.- М .: ФИЗМАТЛИТ, 2002. - 303 с.
Пененко, В.В., Моделі і методи для завдань охорони навколишнього середовища/В.В. Пененко, А.Є. Алоян.- Новосибірськ: Наука, 1985. - 254 с.
Бартеньев, О.В. Сучасний фортран - М .: Діалог-МІФІ, 2000. - 390 с.
Додаток
Лістинг програми
program DiffTransnone
! Variables
integer n (8) L, T, M, constX, constZ, u, w, mu, nu, lambda, tau, tc/input/L, T, M, constX, constZ, n , u, w, mu, nu, lambda, taui, j, k, z (8) fi (0: 100,0: 100), fipr (0: 100,0: 100), fi1 (0: 100,0:100) (8) a1 (0: 100), a2 (0: 100), a3 (0: 100), b (0: 100), pr (0: 100) (8) h, o, s, ff
! Body of DiffTrans (1, FILE= in.txt ) (2, FILE= out.txt ) (1, input)=L/n! 0.1i=1, n - 1j=1, n - 1 (i, j)=0.0dodoj=1, n - 1 (0, j)=0.0 (n, j)=0.0doi=1, n - 1 ( i, n)=0.0 (i, 0)=fi (i, 1) * nu/(h * lambda + nu) dok=0, n (2, *) k (2, ( lt; n + 1 gt ; (1x, f8.5)) ) (fi (i, k), i=0, n) do=0.0=fi=0.0while ((abs (tc-T) gt;=tau) .and. (z lt;=1000000))=z + 1 (2, *), tc= raquo ;, tc=tc + tau=fi1j=1, n - 1 (0)=0.0 (0)=1.0 (0) =- 1.0 (0)=0.0 (n)=1.0 (n)=- 1.0 (n)=0.0 (n)=0.0k=1, n - 1 (k)=(((- u * tau)/( 4 * h)) - (mu * tau)/(2 * h * h)) (k)=(1.0+ (mu * tau)/(h * h)) (k)=(((u * tau)/(4 * h)) - (mu * tau)/(2 * h * h)) (k)=(fi (k, j) - ((tau * u * (fi (k + 1, j) -fi (k - 1, j)))/(4 * h) + (tau * mu * (fi (k + 1, j) - 2 * fi (k, j) + fi (k - 1, j)) )/(2 * h * h))) doprogonka (a1, a2, a3, b, pr, n); k=0, n (k, j)=pr (k) dodok=1, n - 1 (k , n)=0.0 (k, 0)=fipr (i, 1) * nu/(h * lambda + nu) do=fipri=1, n - 1 (0)=0.0 (0)=- nu/h-lambda (0)=nu/h (0)=0.0 (n)=0.0 (n)=1.0 (n)=0.0 (n)=0.0k=1, n - 1 (k)=(((- w * tau)/(4 * h)) - (nu * tau)/(2 * h * h)) (k)=(1.0+ (nu * tau)/(h * h)) (k)=((( w * tau)/(4 * h)) - (nu * tau)/(2 * h * h)) (k)=(fi (i, k) - ((tau * w * (fi (i, k +1) - fi (i, k - 1)))/(4 * h) + (tau * nu * (fi (i, k + 1) - 2 * fi (i, k) + fi (i, k- 1))/(2 * h * h))) + tau * f (i * h, k * h, M, constX, constZ)) doprogonka (a1, a2, a3, b, pr, n) k= 0, n (i, k)=pr (k) dodo=fipr=fiprk=0, n (2, *) k (2, ( lt; n + 1 gt; (1x, f8.5)) ) (abs (fi (i, k)), i=0, n) do
do
(1) (2) program DiffTransf (o, s, consf, cx, cy) (8) f, consf, cx, cy, buf, o, s=0 (o == cx.and. s == cy) then=consf * consf=0=buffunction f
progonka (a1, a2, a3, b, pr, n) (8) a1 (0: 100), a2 (0: 100), a3 (0: 100), b (0: 100), pr (0: 100) (8) pr1 (0: 100), pr2 (0: 100) i1, n (out) pr (n - 1)=- a1 (n)/a2 (n) (n- 1)=b (n)/a2 (n) i1=n - 1,1, - 1 (i1-1)=- a1 (i1)/(pr1 (i1) * a3 (i1) + a2 (i1) ) (i1-1)=(b (i1) - pr2 (i1) * a3 (i1))/(pr1 (i1) * a3 (i1) + a2 (i1)) do (0)=(b (0)- a3 (0) * pr2 (0))/(a2 (0) + a3 (0) * pr1 (0)) i1=1, n (i1)=pr1 (i1-1) * pr (i1-1) + pr2 (i1-1)
end dosubroutine