М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 26
Текст из файла (страница 26)
Указание интерфейсной величины в качествепараметра вызова модуля обеспечивает связь по этому параметру с другимифрагментами расчетных цепочек. Описания интерфейсных переменныхзаписываются через запятую в предложении INTERFACE, причем каждоеописание имеет вид<имя интерфейсной переменной>[=<имя параметра>].<имя модуля>Интерфейсной переменной приписываются все характеристики параметрамодуля, указанного в описании интерфейсной переменной; <имяпараметра> модуля можно опустить, если оно совпадает с именеминтерфейсной переменной.Оператор вызова функционального модуля в языке сборки имеетследующий синтаксис:<вызов модуля> ::= <тип вызова> <имя модуля>[(<интерфейс>)]<тип вызова> ::= EXECS | EXECD | ЕХЕСН<интерфейс> ::= IN: <список сопряжений>,OUT: <список сопряжений><список сопряжений> ::= <сопряжение>[,<сопряжение>]...<сопряжение> ::= <имя параметра>[=<имя цепочечной переменной>]Здесь <тип вызова> модуля задает один из трех возможныхмеханизмов вызова.
Во-первых, модуль может загружаться статически(EXECS), т.е. до начала работы цепочки, как в мониторной системе Дубназагружаются подпрограммы, вызываемые оператором CALL. Во-вторых,модуль может загружаться динамически (EXECD), т.е. в момент обращения, как в мониторной системе Дубна загружаются подпрог-раммы, вызываемые оператором CALL LOADGO. И в-третьих, модульможет вызываться как главная программа (ЕХЕСМ) в смысле мониторнойсистемы Дубна.Кроме того, в операторе вызова модуля задается интерфейс междумодулем и цепочкой, т.е. определяется, как должны передаваться данные изцепочки на вход модуля и из модуля в цепочку. Для этого задаютсясопряжения между параметрами модуля и цепочечными переменными(цепочечная переменная - это либо обычная переменная Фортрана, либоинтерфейсная переменная).Сопряжение выходного (или входного) параметра модуля с цепочечнойпеременной означает передачу значения выходного параметра цепочечнойпеременной в конце работы модуля (или передачу значения цепочечнойпеременной входному параметру перед началом работы модуля).
Сопряжения для входных параметров модуля записываются в списке IN, длявыходных - в списке OUT. Если имена параметра модуля и цепочечнойпеременной совпадают, то имя цепочечной величины в сопряжении можноопустить.Третья, и последняя конструкция языка сборки, расширяющая Фортран,- оператор вызова преобразователя. Объектами действия преобразователяявляются интерфейсные переменные.
Задача преобразователя - сопоставляяхарактеристики интерфейсных переменных (унаследованные ими отпараметров модулей), выполнить необходимые преобразования надзначениями одной из сопрягаемых переменных и присвоить полученноезначение другой переменной. В общем случае могут сопрягаться группыинтерфейсных переменных. Оператор вызова преобразователя имеет видTRANS <имя преобразователя>(<список интерфейсных переменных> =<список интерфейсных переменных>)где слева от знака равенства перечисляются через запятую интерфейсныепеременные, служащие выходными данными преобразователя (входнымипараметрами модулей), а справа от знака равенства - входные данныепреобразователя (выходные параметры модулей).В качестве примера приведем описания фрагментов расчетных цепочекTRQ и ROZS1.CHAIN TRQSUBROUTINE TRQINTERFACE SOURCT.TVK2D,SOURCI.ROZ6TRANS TRZ(SOURCI=SOURCT)RETURNENDCHAENDCHAIN ROZS1SUBROUTINE ROZS1INTERFACE*CONROZ.OKS,SOURCI.ROZ6,SOURCG.ROZ6INTEGER IDATAС ДАННЫЕ ДЛЯ РАСЧЕТА ПЕРВОЙ ЧАСТИ ЗАЩИТЫ - ROZS1DIDATA='ROZS1D'С РАСЧЕТ ПЕРВОЙ ЧАСТИ ЗАЩИТЫЕХЕСМ ROZ6(IN:DATA=IDATA,CONROZ,SOURCI,*OUT:SOURCG)RETURNENDCHAEND4.7.
Проведение расчетаПодготовив фрагменты расчетных цепочек, можно приступать кпроведению расчета, которое включает в себя следующие действия:- описание расчетной цепочки;- задание начальных данных;- запуск на счет.Расчетная цепочка представляет собой программу на расширенномФортране, задающую серию вызовов фрагментов расчетной цепочки. Онадолжна начинаться с оператора PROGRAM, т.е.
быть главной программой всмысле монитор-ной системы Дубна. Описание расчетной цепочки имеетвидCHAIN <имя цепочки>PROGRAM <имя цепочки>ЕХЕССН <имя фрагмента цепочки>. . . . . . . . . . . . . . . .ENDCHAENDгде ЕХЕССН - оператор вызова расчетной цепочки - еще один оператор,расширяющий Фортран.Начальные данные к расчету состоят из наборов начальных данных длявызываемых расчетных модулей. Описание набора начальных данных имеетвидDDSET <имя набора начальных данных><начальные данные для расчетного модуля>DDSENDИмя соответствующего набора начальных данных задается в заголовкемодуля.Прежде чем перейти к директиве запуска расчетной цепочки навыполнение, необходимо познакомиться со структурой задания для системыПНФ.
Задание для системы представляет собой последовательность,состоящую из описаний объектов (модулей, преобразователей, фрагментов,цепочек, данных и т.д.) и директив, выполняющих различные действия надархивом функционального наполнения, инициирующих расчеты и т.д.С помощью описаний задаются объекты, которые используются дляформирования расчетной цепочки только в данном задании.
Если же какиелибо объекты должны применяться в нескольких заданиях, то онизаписываются в архив функционального наполнения посредствомдирективы STORE видаDIRECT STORE<описание объекта>. . . . . . . . . . . . . .DIRENDДля обслуживания архива функционального наполнения используютсятакже директивы DELETE (удаление объектов), PRINT (распечатка текстовобъектов), CATALOG (распечатка каталога архива) и EDIT (редактированиетекстов объектов в пакетном режиме).
Эти директивы по назначению исинтаксическому оформлению близки к соответствующим операциямрассмотренной в предыдущей главе системы Сафра, и поэтому здесь ониподробно описываться не будут.Для запуска на счет служит директива RUN, которая должна бытьпоследней в задании. Директива RUN имеет видDIRECT RUNCHAIN <имя цепочки><дополнительная информация>DIRENDОписания всех составляющих цепочку модулей и данных, а также описаниесамой цепочки должны либо содержаться в текущем задании, либоприсутствовать в архиве функционального наполнения. В качестведополнительной информациик директиве RUN можно указывать место для размещения результатоврасчета.
Существует специальная форма директивы RUN, позволяющаяосуществлять рестарт цепочки с запомненной ранее контрольной точки.4.8. Пакет ЗАЩИТАПервым пакетом, разработанным с помощью инструментально-базовойсистемы ПНФ, явился пакет ЗАЩИТА [121-123], предназначенный дляавтоматизации вычислительных работ, проводимых при конструированиирадиационной защиты реакторов. В его состав вошли программы, которыеможно разделить на следующие три класса: КОНСТАНТЫ, ПОЛЕ,ОБРАБОТКА. Эти программы создавались в разное время в различныхорганизациях и использовали отличающиеся друг от друга интерфейсныесоглашения, т.е.
представляли собой нестандартизированный программныйфонд. Посредством системы ПНФ удалось организовать эффективнуюсовместную работу этих программ.Программы класса КОНСТАНТЫ преобразуют данные библиотекгрупповых микроконстант в макроконстанты, необходимые для решениямногогрупповых систем уравнений переноса нейтронов и гамма-квантов, атакже в константы для расчета функционалов полей излучения. Подготовкамакроконстант базируется на использовании пакета ОКС, описанного в п.6.2настоящей книги.В класс ПОЛЕ входят программы расчета распределений потоковнейтронов и гамма-квантов в реакторе и защите. Из-за ограниченностиоперативной и внешней памяти ЭВМ БЭСМ-6 выполнение программ классаПОЛЕ организуется в виде цепочки расчетов отдельных элементов защиты,связанных между собой источниками излучения и граничными условиями.Формирование таких цепочек основывается на средствах, предоставляемыхсистемой ПНФ, которая, таким образом, используется не только дляобъединения программ из различных классов, но и для организациисовместной работы нескольких программ одного класса.Программы класса ПОЛЕ получают и/или вырабатывают в качествепараметров многочисленные информационные массивы, определяющие, вчастности:- геометрические и физические параметры рассчитываемой системы«реактор + защита», задающие форму и размеры геометрических зон, составэтих зон, их температуру и т.п.;- групповые макроконстанты, полученные в результате работы программкласса КОНСТАНТЫ;- распределение внутренних (объемных) и внешних (поверхностных)источников излучения;- плотности потоков излучения;- функционалы поля излучения;- сведения о расчетном алгоритме.ПрограммыклассаОБРАБОТКАосуществляютразличныепреобразования полученных результатов (расчет функционалов, пересчетгеометрических или физических параметров системы в задачахоптимизации и т.д.) и выдачу результатов на внешние устройства (АЦПУ,графопостроитель, дисплей) в удобной пользователю форме.Для хранения полученных результатов в пакете ЗАЩИТА созданспециальный архив результатов счета.
Можно любому расчету присвоитьимя (задаваемое в предложении VARIANT директивы RUN), а затем спомощью этого имени ссылаться на вычисленные в нем данные. Например,директива RUN видаDIRECT RUNCHAIN TVKROZVARIANT TVKR04VALUE SOURCT TR01DIRENDпредписывает выполнить расчет цепочки TVKROZ, записывая в архиврезультаты расчета под именем TVKR04 (точнее, выходные параметрызаписываются в архив под составными именами, включающими имяпараметра и имя расчета), а в качестве исходных данных для параметраSOURCT взять его значение, полученное при выполнении расчета с именемTR01.Для работы с архивом результатов в язык заданий пакета ЗАЩИТАвведены директивы, позволяющие распечатывать каталог архива иуничтожать либо все результаты указанного расчета, либо значенияотдельных параметров.Глава 5АНАЛИЗАТОР PLAN: ОБРАБОТКА ДАННЫХФИЗИЧЕСКИХ ЭКСПЕРИМЕНТОВ5.1. АрихтектураВопросы создания математических методов и программных средств дляобработки и интерпретации данных физических экспериментов составляютодно из главных направлений в проблеме автоматизации научныхисследований.
В настоящей главе мы рассмотрим один из возможныхподходов к организации системного обеспечения пакетов, относящихся кважному разделу этого весьма обширного направления [16].В современном физическом эксперименте, где среда подвергаетсясверхсильным воздействиям и параметры вещества имеют экстремальныезначения, прямое измерение основных характеристик (температуры,плотности, давления, скорости и др.) затруднено или вообще невозможно.Поэтому часто информацию о значениях основных физических параметровприходится извлекать путем математической обработки косвенныхэкспериментальныхданных,получаемыхввидефотоснимков,осциллограмм, интерферограмм и т.п.
Такого рода математическоеобслуживаниефизическогоэкспериментанаиболееэффективноосуществляется пакетами программ, реализуемыми в форме многоцелевыхпроблемно-ориентированных систем [124-126].Существенные достоинства таких систем прежде всего выражаются втом, что они, во-первых, обеспечивают возможность сплошнойматематической обработки экспериментальных данных, т.е. проведение вдостаточно унифицированной форме решения ряда смежных задач,возникающих при переработке результатов физического эксперимента, и, вовторых, делают вычислительную систему квалифицированным помощникомисследователя,неимеющегоспециальнойматематическойипрограммистской подготовки. Типичными задачами, решаемыми в ходесплошной математической обра-ботки результатов наблюдений, являются следующие [16,17]:- получение предварительно обработанных выходных данныхэксперимента;определениенаилучшейввыбранномклассемоделиэкспериментальной установки;- интерпретация результатов эксперимента в выбранном классе моделейисследуемого объекта;- определение значений управляющих параметров установки, прикоторых характерные элементы изучаемых типичных структур получаютнаилучшее разрешение;- численное моделирование, т.е.