kt = kt + 1 uv(l, kt) = t0 uv(2, kt) = u(l, 1) write(7, "(fl0.5)") tout do і = 1, npde + 1 write(7, "(4el5.5)") u(i,:) end do

tout = min(tout + delta_t, tend) if(t0 = tend) ido = 3 end if

case(3) ! Интегрирование завершено

close(unit = 7)

! Графический вывод! Прежде строим график и(х – 0, t) ! Текст подпрограммы vGraph приведен в примере 1, ! сопровождающем описание подпрограммы DASPG (разд. 4.3)

call vGraph(uv, kt) deallocate(uv) allocate(uv(2, n)) uv(l, :) = u(npde+ 1,:) uv(2,:) = u(l,:) call vGraph(uv, n) deallocate(uv) allocate(uv(2, n)) exit case(5)

! Результат см. на рис. 5.3, а

! Выводим график и(х, t = tend)

! Результат см. на рнс. 5.3, б

! Задаем начальные данные

u( 1,:) = ехр(-и(2,:)) / (two – ехр(-а)) write(7, "(П0.5)") tO do і = 1, npde + 1 write(7, "(4el5.5)") u(i,:) end do

case(6) ! Задаем дифференциальные уравнения

d_pde_ld_mg_c(l, l) = one d_pde_ 1 d_mg_r( 1) = – d_pde_ 1 d_mg_u( 1) ! Оценка аппроксимации интеграла для момента времени t v_l = half* sum((u(l, l:n -1) + u(l,2:n)) * (u(2, 2:n) – u(2,l:n – 1))) d_pde_ld_mg_q(l) = .v_l * d_pde_ld_mg_u(l) case(7) ! Задаем граничные условия

if(pde_ld_mg_left) then! Оценка аппроксимации интеграла для момента времени t; ! второй интеграл необходим на границе

v_1 = half * sum((u(l, l:n -1) + u(l,2:n)) * (u(2, 2:n) – u(2,l:n -1)))