C нений к лабораторной работе N9) данных; для переменных на
С схеме рис.1 принятый следующие идентификаторы в программе:
С R1 - R1 R6 - R6 e1 - FE1 i5 - I5 u6 - U6
С R2 - R2 e1 - E1 e6 - FE6 i6 - I6
С L3 - L3 e6 - E6 - OMEGA u1 - U1
С R4 - R4 Em1 - EM1 i1 - I1 u2 - U2
С C5 - C5 Em6 - EM6 i2 - I2 u3 - U3
COMMON R1,EM1,FE1,R2,L3,C5,R6,EM6,FE6,OMEGA,I1,I2,I5,I6,U
*1,U2,U3,U6,E1,E6
EXTERNAL PRAV
CHARACTER Z1*8,Z2*8,Z3*8
C ЧТЕНИЕ ИМЯ ФАЙЛА ВХОДНЫХ ДАННЫХ С ЭКРАНА
С ДИСПЛЕЯ
WRITE(5,*)'DIFRK4: ВЫЕДИТЕ ИМЯ ФАЙЛА ВХОДНЫХ ДАННЫХ В ВИДЕ
AAAA.DAT'
READ 1,Z1
1 FORMAT(A8)
WRITE(5,*)'DIFRK4: ИМЯ ФАЙЛА ВХОДНЫХ ДАННЫХ ВВЕДЕНО
C ОТКРЫТИЕ ФАЙЛА ВХОДНЫХ ДАННЫХ НА ДИСКЕ И ЧС ТЕНИЕ ВХОДНЫХ ДАННЫХ В ОПЕРАТИВНУЮ ПАМЯТЬ
OPEN(UNIT=1,FILE=Z1,STATUS='OLD')
C ЧТЕНИЕ ПАРАМЕТРОВ ДЛЯ ЧИСЛОВОГО РЕШЕНИЯ СИСТЕМЫ
С ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
READ(1,*)N,INTWR,X0,XKAN,H
READ(1,*)(Y0(I),I=1,N)
C Чтение параметров правых частей для системы (11) дифф.
С уравнений из лабораторной работы N9
READ(1,*)R1,EM1,FE1,R2,L3,C5,R6,EM6,FE6,OMEGA
CLOSE(UNIT=1)
WRITE(5,*)'DIFRK4: ВХОДНЫЕ ДАННЫЕ ПРОЧИТАНЫ С *ДИСКА'
C ОБРАЗОВАНИЕ ИМЕН ДВУХ ФАЙЛОВ РЕЗУЛЬТАТОВ В ВИДЕ
С AAAA.REZ I AAAA.GRA, ГДЕ AAAA - ИМЯ ФАЙЛА ВХОДНЫХ
С ДАННЫХ. В ФАЙЛ AAAA.REZ ПРОГРАММА DIFRК4 ЗАСЫЛАЕТ
С ВХОДНЫЕ ДАННЫЕ В ТАБЛИЦУ ЗНАЧЕНИЙ ЗАВИСИМЫХ
С ПЕРЕМЕННЫХ, КОТОРЫЕ ОБЕСПЕЧИВАЮТСЯ "ШАПКАМИ". В
С ФАЙЛ AAAA.GRA ЗАСЫЛАЕТСЯ ТОЛЬКО ТАБЛИЦА Y(x) (ВЫХОДНАЯ ИНФОРМАЦИЯ В ТАКОМ ВИДЕ ЯВЛЯЕТСЯ ЛУЧС ШЕЙ ДЛЯ ПРОГРАММЫ GRAF, КОТОРАЯ СТРОИТ РЕШЕНИЯ СИСТЕ-
С МЫ НА ЭКРАНЕ ДИСПЛЕЯ В ВИДЕ ГРАФИКОВ)
Z2(1:4)=Z1(1:4)
Z3(1:4)=Z1(1:4)
Z2(5:8)='.REZ'
Z3(5:8)='.GRA'
C ОТКРЫТИЕ ФАЙЛОВ РЕЗУЛЬТАТОВ НА ДИСКЕ
OPEN(UNIT=3,FILE=Z2,STATUS='NEW')
OPEN(UNIT=4,FILE=Z3,STATUS='NEW')
C ЗАПИСЬ ВХОДНЫХ ДАННЫХ В ВЫХОДНОЙ ФАЙЛ C
С ИМЕНЕМ
С AAAA.REZ
WRITE(3,*)'DIFRK4 - РЕШЕНИЕ СИСТЕМЫ ДИФ.УРАВНЕНИЙ'
WRITE(3,*)'ВХОДНЫЕ ДАННЫЕ'
WRITE(3,*)N,INTWR,X0,XKAN,H
WRITE(3,*)(Y0(I),I=1,N)
C ПОДГОТОВКА К РЕАЛИЗАЦИИ АЛГОРИТМА РУНГЕ-КУТТА
X=X0
NREZ=0
C ПЕРЕСЫЛКА НАЧАЛЬНЫХ ЗНАЧЕНИЙ Y0 ИНТЕГРАЛЬНЫХ
С ПЕРЕМЕННЫХ В МАССИВОВ
DO 3 I=1,N
3 Y(I)=Y0(I)
C ВЫДАЧА ЗАГОЛОВКА ТАБЛИЦЫ РЕЗУЛЬТАТОВ В ВЫХОДНОЙ
С ФАЙЛ С ИМЕНЕМ AAAA.REZ
WRITE(3,*)' РЕЗУЛЬТАТЫ РАСЧЕТА'
WRITE(3,*)' x y(1) y(2) y(3) y(4'
*') y(5) y(6)'
IF(N.LE.6)GO TO 4
WRITE(3,*)' y(7) y(8) y(9) y(10) y(11'
*') y(12) y(13)'
C НАЧАЛО ЦИКЛИЧЕСКОЙ ЧАСТИ РЕШЕНИЯ СИСТЕМЫ УРАВС НЕНИЙ
C НАДО ЛИ ЗАПИСЫВАТЬ ЗНАЧЕНИЯ ТЕКУЩЕГО ШАГА В ВЫХОДС НЫЕ ФАЙЛЫ AAAA.REZ I AAAA.GRA?
4 IF(X-H*REAL(NREZ*INTWR).LT.0.)GO TO 6
C УВЕЛИЧЕНИЕ СЧЕТЧИКА ЗАПИСЕЙ НА ЕДИНИЦУ
NREZ=NREZ+1
C ЗАПИСЬ ИНФОРМАЦИИ ДЛЯ ИЗБРАННОГО УЗЛА В ВЫХОДНОЙ
С ФАЙЛ AAAA.REZ
WRITE(3,103)X,(Y(I),I=1,N)
WRITE(3,103)I1,I2,I5,I6,U1,U2,U3,U6,E1,E6
C ЗАПИСЬ ИНФОРМАЦИИ ДЛЯ ИЗБРАННОГО УЗЛА В ВЫХОДНОЙ
С ФАЙЛ AAAA.GRA
WRITE(4,103)X,(Y(I),I=1,N)
WRITE(4,103)I1,I2,I5,I6,U1,U2,U3,U6,E1,E6
103 FORMAT(7F11.4)
C ВЫВОД ИНФОРМАЦИИ НА ЭКРАН ДИСПЛЕЯ ДЛЯ ТЕКУЩЕГО
С КОНТРОЛЯ РЕШЕНИЯ
WRITE(5,106)NREZ,X
106 FORMAT(1X,' NREZ=',I4,' X=',F8.4)
C ОБРАЩЕНИЕ К ПОДПРОГРАММЫ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ
С УРАВНЕНИЙ
6 CALL RNGKT4(N,X,H,Y,Y0,PRAV)
C НАДО ЛИ ПРОДОЛЖАТЬ РАСЧЕТ (СЛЕДУЮЩИЙ ШАГ ПО х)
9 IF(NREZ.LT.501)GO TO 10
WRITE(5,*)'DIFRK4: РАСЧЕТ ПРИОСТАНОВЛЕННЫЙ ПО ПРИЧИНЕ' *'НАПОЛНЕНИЯ ВЫХОДНЫХ ФАЙЛОВ (NREZ>500)'
GO TO 11
10 IF ((X-XKAN).GT.0.)GO TO 11
C УВЕЛИЧЕНИЕ НЕЗАВИСИМОЙ ПЕРЕМЕННОЙ НА ВEЛИЧИНУ
C ШАГА H
X=X+H
GO TO 4
C ЗАКРЫТИЕ ВЫХОДНЫХ ФАЙЛОВ
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.