Форум программистов, компьютерный форум, киберфорум
Fortran
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
8 / 8 / 0
Регистрация: 28.05.2010
Сообщений: 42
1

Схема Мак-Кормака для уравнения Бюргерса

12.03.2012, 15:07. Показов 3441. Ответов 3
Метки нет (Все метки)

Всем добрый день!
Есть код программы - схемы Мак-Кормака для уравнения Бюргерса. В коде ошибок нет, но при компиляции не чего преисходит толком, сообственно в коде самом где то ошибка, недочет может быть .. Помогите пожалуста.
Вот сам код :
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
program McKormac
implicit none
! Сетка и ее вспомогательное значение
real(8), dimension(:,:), allocatable :: U
real(8), dimension(:), allocatable :: W
! Шаги по x - задан a priori и t, а так же соотношение шагов tau/h
real(8), parameter :: h = 0.1
real(8) :: tau, St
! Размеры сеток
integer(4) :: Mt, Mx, tmp
! Счетчики
!
integer(4) :: m,n
!
! Схема Мак-Кормака типа предиктор-корректор:
! Предиктор:
! Wm = Um,n - tau/h*A(Um+1,n - Um,n) - правой кон. разностью
!
! Корректор:
! Um,n+1 = 1/2*(Um,n+1 + W(m)) - 1/2*tau/h*A(Wm - Wm-1)
!
tau = 0.5*h;
Mx = nint(5.0/h);
Mt = nint(5.0/tau);
print *, 'Mx = ',Mx,' Mt = ',Mt; 
! Выделяем память под массив
! Первый экстент - время!
allocate(U(0:Mt,-Mx:Mx), W(-Mx:Mx));
 
! Задаем ГУ - нули везде, кроме U(0,x=-1:1) == 1;
U = dble(0.0);
W = dble(0.0);
 
tmp = nint(1.0/h);
U(0,-tmp:tmp) = dble(1.0);
print *, 'Size U ',size(U,dim=1),'   ',size(U,dim=2) ;
! Соотношение шагов
St = tau/h;
! Начинаем считать по времени
do n=0,Mt-1 
    ! Первый шаг по Мак-Кормаку (на внутренних точках)
    ! Предиктор
    do m = -Mx+1,Mx-1
        W(m) = U(n,m) - St*(0.5*(                               &
                                   (U(n,m+1)-U(n,m))*(U(n,m+1)+U(n,m)) &
                                 )                              &
                            );
    end do;
    ! Второй шаг - корректор
    do m = -Mx+1,Mx-1
        U(n+1,m) = 0.5*(                                              &
                        (U(n,m) + W(m)) - St*U(n,m)*( W(m) - W(m-1) ) &
                       );
    end do;
end do;
 
deallocate(U,W);
! Освобождаем массивы (память)
write(*,*),'Press ENTER, please.'
read(*,*);
end program McKormac;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2012, 15:07
Ответы с готовыми решениями:

Блок схема для уравнения
Нужно составить программу решения любого уравнения вида: a * cosx + b = c Ввод значений...

Неявная разностная схема для уравнения теплопроводности
Помогите с реализацией неявной разностной схемы для неоднородного уравнения теплопроводности. Вся...

Автокликер для мак ос
Добрый день. Подскажите какой можно скачать бесплатный автокликер для мак ос? Кликер нужен для...

МАК адрес для 2ух приложений.
Здравствуйте! Задача : запустить 2 одинаковых приложения с разных мак адресов. Или разделить...

3
35 / 35 / 0
Регистрация: 26.09.2011
Сообщений: 143
13.03.2012, 11:08 2
Вот, что выводит ваша программа у меня:
Код
 Mx =           50  Mt =          100
 Size U          101             101
 Press ENTER, please.
Что должно быть?
1
8 / 8 / 0
Регистрация: 28.05.2010
Сообщений: 42
13.03.2012, 15:08  [ТС] 3
у меня тоже самое выводит .. в том то и дело что незнаю( вроде схема описана все правельно -предиктор/корректор
0
35 / 35 / 0
Регистрация: 26.09.2011
Сообщений: 143
13.03.2012, 17:18 4
А в чем проблема, то?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2012, 17:18

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Блок-схема линейного уравнения
Здравствуйте. Я тут простую блок-схему начертил. Я только учусь. Какие присутствуют...

Нужно сделать форму для ввода мак-адреса.
нужно сделать форму для ввода мак-адреса. соответственно есть 6 полей длиной два символа. нучно...

Структурная схема дифф. уравнения електрической схемы
Есть електрическая схема , из которой я получил по Кирхгофу систему уравнений. di2/dt = i1R/L -...

Неявная схема решения уравнения теплопроводности методом прогонки
Всем доброго времени суток! Есть построение уравнения Лапласа методом прогонки. Есть явная схема...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.