Метод преобразования многолучевой звезды в полный многоугольник (Лабораторная работа № 4), страница 7

C Для каждой ветви во входных данных записываются: номер «первого»

C конца, номер «второго» конца, сопротивление и электродвижущая сила (ЭДС).

C Сопротивление любой ветви не может быть равны нулю.

C «Первый» и «второй» концы для каждой ветви избираются произвольно.

C Положительные направления в ветвях для токов - от конца с большим номером.

C Входные данные записываются в отдельном файле входных данных.

C В файле сначала записывается количество ветвей схемы, затем список

C информации о ветвях схемы. Цифры отделяются пробелами или запятыми.

C Файл входных данных должен иметь имя из четырех букв или цифр

C и расширение. DAT.

C Результатом расчета являются напряжении в узлах схемы

C и токи в ветвях схемы.

C Результаты расчета записываются программой ZORKA в файл результатов

C с именем файла входных данных и расширением. REZ.

C В программе предусмотрен вывод промежуточных рэзультатов в выходной

C файл. Вывод обеспечивается при значении переменной NDRUK = 1, которая задается

C в входных данных.

CHARACTER Z1*8,Z2*8

REAL JY,JU

DIMENSION N1K(100),N2K(100),R(100),E(100),

*NW(70),N1K1(100),N2K1(100),Y(100),JY(100),U(70),TOK(100),

*KNNERAD(70),YDIAG(70),JU(70),NSNNE(300),YNNE(300)

C Простые переменные и массивы, которые задаются во входных

C данных программы ZORKA:

C KH - Количество ветвей схемы

C NDRUK - признак вывода промежуточных значений в выходной файл;

C NDRUK = 0 - вывода нет; NDRUK = 1 - вывод выполняется;

C N1K (100) - Номера «Первых» канцов ветвей схемы

C N2K (100) – Номера «других» канцов ветвей схемы

CR (100) - Сопротивления ветвей схемы

CE (100) - Электродвижущая силы в отраслях схемы

C Рабочие и выходные переменные и массивы программы ZORKA

C NW (70) - номера узлов схемы

CY (100) - проводимости ветвей схемы

C JY (100) - токи источников тока в ветвях схемы

C N1K1 (100), N2K1 (100) - рабочие массивы для подпрограммы ZHORTKA

C NW (70) - номера узлов схемы

C KW - количество узлов схемы

C KNNESUM - количество ненулевых элементов суммарная в верхней трохC      угольной матрице после окончания прямога хода метадом Гаусса

C KNNERAD(70) – количество ненулевых элементов в строках верхней треC       угольной матрыци пасле окончания прамого хода метода Гаусса

C YDIAG(70) – проводимости  диагональные (диагональные элементы матрицы

C             узловых проводимостей после окончания прямого хода

C             метода Гаусса)

C JU(70) - правые части системы узловых уравнений после окончания

C          прямого хода метода Гаусса

C NSLNNE(300) – номера столбцов, в кторых находятся ненулевые элементы

C               верхней трохугольной матрицы после окончания прямого

C               хода

C YNNE(300) - проводимости ненулевых элементов верхней треугольной

C             матрици после окончания прямого хода

C U(70) - узловые напряжения

C TOK(100) - токи в ветвях схемы

C Блок 1: Ввод входных данных

WRITE(5,350)

350 FORMAT(1X,'ВВЕДИТЕ ИМЯ (С РАСШИРЕННИЕМ) ВАШЕГО ФАЙЛА ВХОД',

*'НЫХ ДАННЫХ В ВИДЕ'/

*1X,'AAAA.DAT (СИМВОЛЫ AAAA - ИМЯ ФАЙЛА)')

READ(5,3)Z1

3 FORMAT(A8)

OPEN(UNIT=1,FILE=Z1,STATUS='OLD')

READ(1,*)KH,NDRUK,(N1K(I),N2K(I),R(I),E(I),I=1,KH)

CLOSE(UNIT=1)

WRITE(5,*)'Ввод входных днных закончены'

C Блок 2: Создание имени файла выходных данных, открытие его на диску

C        и переписка входных данных в выходной файл

Z2(1:4)=Z1(1:4)

Z2(5:8)='.REZ'

OPEN(UNIT=3,FILE=Z2,STATUS='NEW')

WRITE(3,800)KH,NDRUK,(N1K(I),N2K(I),R(I),E(I),I=1,KH)

800 FORMAT(10X,'В Ы Х О Д Н ОЙ   Ф А Й Л   П Р О Г Р АМ М Ы   ZORKA'/

*' ВХОДНЫЕ ДАННЫЕ:'/'Количество ветвей схемы: КН=',I2/

*'Признак вывода промежуточных рэзульт. в выходной файл: NDRUK=',I2/

*'Информация о ветвях схемы: N1K(KH),N2K(KH),R(KH),E(KH)'/

*(2(3X,I2),2(3X,F10.4)))

C Блок 3: Переход от сопротивлений к проводимостям ветвей схемы

C         рассчёт токов источников тока в ветвях схемы

DO 32 I=1,KH

Y(I)=1./R(I)

JY(I)=E(I)/R(I)

32 CONTINUE

IF(NDRUK.EQ.0) GO TO 810

WRITE(3,*)' БЛОК 1',' KH=',KH

WRITE(3,*)' N1K(KH),N2K(KH),R(KH),E(KH)=',

*(N1K(I),N2K(I),R(I),E(I),I=1,KH)

WRITE(3,*)' БЛОК 3',' Y(KH),JY(KH)=',(Y(I),JY(I),I=1,KH)