Метад пераўтварэння многапрамянёвых зорак ў поўныя многавугольнiкi (Лабараторная работа № 4), страница 11

C      Для кожнай галiны ва уваходных дадзеных запiсваюцца: нумар "першага"

C канца, нумар "другога" канца, супрацiуленне i электрарухаючая сiла (ЭРС).

C      Супрацiуленне любой галiны не можа быць роуным нулю.

C      "Першы" i "другi" канцы для кожнай галiны выбiраюцца адвольна.

C      Дадатныя накiрункi у галiнах для токау - ад канца з большым нумарам

C да канца з меньшым нумарам.

C      Уваходныя дадзеныя запiсваюцца у асобным файле уваходных дадзеных.

C      У файле спачатку запiсваецца колькасць галiн схемы, затым спiс

C iнфармацыi аб галiнах схемы. Лiчбы аддзяляюцца прабеламi або коскамi.

C      Файл уваходных дадзеных павiнен мець iмя з чатырох лiтар або лiчбау

C i пашырэнне .DAT.

C       Рэзультатам разлiку з'яуляюцца напружаннi у вузлах схемы

C i токi у галiнах схемы.

C       Рэзультаы разлiку запiсваюцца праграмай ZORKA у файл рэзультатау

C з iмем файла уваходных дадзеных i пашырэннем .REZ.

C       У праграме прадугледжаны вывад прамежкавых рэзультатау у выхадны

C файл. Вывад забяспечваецца пры значэннi пераменнай 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          Простыя пераменныя i масiвы, якiя задаюцца ва уваходных

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

C KH - Колькасць Галiн схемы

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

C         NDRUK=0 - вываду няма; NDRUK=1 - вывад выконваецца;

C N1K(100) - Нумары "Першых" Канцоу галiн схемы

C N2K(100) - Нумары "Другiх" Канцоу галiн схемы

C R(100) - Супрацiуленнi галiн схемы

C E(100) - Электрарухаючыя сiлы у галiнах схемы

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

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

C Y(100) - Праводнасцi галiн схемы

C JY(100) - Токi крынiц току у галiнах схемы

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

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

C KW - Колькасць Вузлоу схемы

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

C KNNERAD(70) - Колькасцi НяНулявых Элементау у Радках верхняй трохC       вугольнай матрыцы пасля заканчэння прамога ходу метада Гауса

C YDIAG(70) - Праводнасцi ДЫЯГанальныя (дыяганальныя элементы матрыцы

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

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

C JU(70) - правыя часткi сiстэмы вузлавых раунанняу пасля заканчэння

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

C NSLNNE(300) - Нумары СЛупкоу, у якiх знаходзяцца НяНулявыя Элементы

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

C               ходу?

C YNNE(300) - Праводнасцi НяНулявых Элементау верхняй трохвугольнай

C             матрыцы пасля заканчэння прамога ходу

C U(70) - вузлавыя Напружаннi

C TOK(100) - ТОКi у галiнах схемы

C Блок 1: Увод уваходных дадзеных

WRITE(5,350)

350 FORMAT(1X,'УВЯДЗIЦЕ IМЯ (З ПАШЫРЭННЕМ) ВАШАГА ФАЙЛА УВАХОД',

*'НЫХ ДАДЗЕНЫХ У ВЫГЛЯДЗЕ'/

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

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: Утварэнне iмя файла выхадных дадзеных, адкрыцце яго на дыску

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

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'/

*' УВАХОДНЫЯ ДАДЗЕНЫЯ:'/'Колькасць галiн схемы: КН=',I2/

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

*'Iнфармацыя аб галiнах схемы: N1K(KH),N2K(KH),R(KH),E(KH)'/

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

C Блок 3: Пераход ад супрацiуленняу да праводнасцей галiн схемы

C         разлiк токау крынiц току у галiнах схемы

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