Моделирование переходного режима энергосистемы (Лабораторная работа № 9), страница 8

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         ЗАКРЫТИЕ ВЫХОДНЫХ  ФАЙЛОВ