    --------------------------------------------------------------------------
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !            УТВЕРЖДЕН                                                   !
    !                                                                        !
    !     00014 - 01.35.02-ЛУ                                                !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                                                                        !
    !                          ИЗДЕЛИЯ ПРОГРАММНЫЕ                           !
    !                                                                        !
    !                            "ИНТЕЛЛЕКТ - 3"                             !
    !                                                                        !
    !                                ФОРТРАН                                 !
    !                                                                        !
    !                             ОПИСАНИЕ ЯЗЫКА                             !
    !                                                                        !
----!                            00014 - 01.35.02                            !
! ! !                                                                        !
! ! !                                                                        !
! ! !                               ЛИСТОВ 157                               !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
!-+-!                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
!-+-!                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
!-+-!                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
! ! !                                                                        !
!-+-!                                                                        !
! ! !     ПЕРВИЧ. ПРИМЕНЕН.                           ЛИТЕРА o               !
! ! !      00014-01.00.01                                                    !
! ! !                                                                        !
! ! !                             1990                                       !
! ! !                                                                        !
+-+-+-------------------------------------------------------------------------


                               - 2 -

                           00014.01.35.02





                           АННОТАЦИЯ






        ДАННЫЙ ДОКУМЕНТ СОДЕРЖИТ ОПИСАНИЕ ЯЗЫКА ФОРТРАН -IV:
ЭЛЕМЕНТОВ ЯЗЫКА, ФУНКЦИОНАЛЬНОГО  НАЗНАЧЕНИЯ ОПЕРАТОРОВ, ИХ
ФОРМАТЫ.

        В РАЗДЕЛЕ 1 ОПИСАНЫ ЭЛЕМЕНТЫ И СТРУКТУРА ПРОГРАММЫ НА
ФОРТРАНЕ.

        В РАЗДЕЛЕ 2 ДАНО ОПИСАНИЕ ФОРМАТА  СТРОКИ.

        ЭЛЕМЕНТЫ И СТРУКТУРА ДАННЫХ ФОРТРАН ОПИСАНЫ В РАЗДЕЛЕ 3.
В РАЗДЕЛЕ ДАЕТСЯ ПОДРОБНОЕ ОПИСАНИЕ КОМПОНЕНТ ОПЕРАТОРОВ ФОРТРАН,
ТИПОВ ДАННЫХ.

        РАЗДЕЛ 4  СОДЕРЖИТ ОПИСАНИЕ ВЫРАЖЕНИЙ.

        ОПЕРАТОРЫ ЯЗЫКА ОПИСАНЫ В РАЗДЕЛЕ  5.

        РАЗДЕЛ  6 ПОСВЕЩЕН ОПИСАНИЮ ПОДПРОГРАММ, ИХ ПАРАМЕТРОВ,
АРИФМЕТИЧЕСКИХ  ОПЕРАТОРОВ - ФУНКЦИЙ  И ПОДПРОГРАММ-ФУНКЦИЙ.

        В ДОКУМЕНТЕ  ИМЕЕТСЯ 2 ПРИЛОЖЕНИЯ СОДЕРЖАЩИХ СПРАВОЧНЫЕ
СВЕДЕНИЯ ПО ЯЗЫКУ  ФОРТРАН.

        - В ПРИЛОЖЕНИИ 1 ДАНЫ НАБОР СИМВОЛОВ ЯЗЫКА  ФОРТРАН,
          СИМВОЛЬНЫЙ КОД И НАБОР  СИМВОЛОВ RADIX-50;

        - В ПРИЛОЖЕНИИ 2  КРАТКО ИЗЛОЖЕНЫ ОСНОВНЫЕ СВЕДЕНИЯ ОБ
ОПЕРАТОРАХ ЯЗЫКА И ДАН ПЕРЕЧЕНЬ БИБЛИОТЕЧНЫХ ФУНКЦИЙ  ФОРТРАН;




                                - 3 -

                           00014.01.35.02



                  СОДЕРЖАНИЕ


         АННОТАЦИЯ                                                  2



1. ОБЩИЕ СВЕДЕНИЯ И СПОСОБ ОПИСАНИЯ  ЯЗЫКА                          7

1.1.    КОМПОНЕНТЫ ПРОГРАММЫ НА ФОРТРАНЕ                            7
1.1.1.  ОПЕРАТОРЫ                                                   7
1.1.2.  КОММЕНТАРИИ                                                 7

2. ЭЛЕМЕНТЫ И ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА                            8
2.1.   НАБОР СИМВОЛОВ ФОРТРАН                                       8
2.2.   ЗАДАНИЕ ФОРМАТА СТРОКИ ФОРТРАН                               8
2.3.   ИСПОЛЬЗОВАНИЕ БЛАНКА ПРОГРАММИРОВАНИЯ НА ФОРТРАНЕ            9
2.2.2. ИСПОЛЬЗОВАНИЕ  РЕДАКТОРА ТЕКСТА                             10

3. ЭЛЕМЕНТЫ ДАННЫХ ФОРРАН-IV                                       11
3.1.  ИДЕНИФИКАТОРЫ                                                11
3.2.  ТИПЫ ДАННЫХ                                                  12
3.3.  КОНСТАНТЫ                                                    14
3.3.1.  ЦЕЛЫЕ  КОНСТАНТЫ                                           14
3.3.2.  ВЕЩЕСТВЕННЫЕ  КОНСТАНТЫ                                    15
3.3.3.  КОНСТАНТЫ С ДВОЙНОЙ ТОЧНОСТЬЮ                              16
3.3.4.  КОМПЛЕКСНЫЕ  КОНСТАНТЫ                                     17
3.3.5.  ВОСЬМЕРИЧНЫЕ  КОНСТАНТЫ                                    17
3.3.6.  ЛОГИЧЕСКИЕ  КОНСТАНТЫ                                      18
3.3.7.  ТЕКСТОВЫЕ КОНСТАНТЫ                                        18
3.3.7.1. БУКВЕННО-ЦИФРОВЫЕ ЛИТЕРАЛЫ                                19
3.3.7.2. ПРАВИЛА, ОПРЕДЕЛЯЮЩИЕ ТИПЫ  ДАННЫХ,
         ПРЕДСТАВЛЕННЫХ В ВИДЕ  ТЕКСТОВЫХ КОНСТАНТ                 19
3.3.8.   ЗАПИСЬ КОНСТАНТ В КОДЕ RADIX-50                           20
3.4.     ПЕРЕМЕННЫЕ                                                21
3.4.1.   СПЕЦИФИКАЦИЯ ТИПА ДАННЫХ                                  21
3.5.     МАССИВЫ                                                   22
3.5.1.   ОПИСАТЕЛИ МАССИВОВ                                        23
3.5.2.   СПИСКИ  ИНДЕКСОВ                                          23
3.5.3.   РАСПОЛОЖЕНИЕ МАССИВОВ ПАМЯТИ                              24
3.5.4.   ТИП ДАННЫХ МАССИВА                                        26
3.5.5.   ОБРАЩЕНИЯ К МАССИВАМ БЕЗ ИСПОЛЬЗОВАНИЯ
         СПИСКА ИНДЕКСОВ                                           26
3.5.6.   МАССИВЫ С ПЕРЕМЕННЫМИ ГРАНИЦАМИ                           26

4.  ВЫРАЖЕНИЯ                                                      28
4.1.  АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ                                     28
4.1.1. ПРИМЕНЕНИЕ СКОБОК                                           29
4.1.2. ТИП ЗНАЧЕНИЯ АРИФМЕТИЧЕСКОГО ВЫРАЖЕНИЯ                      30
4.2.   ВЫРАЖЕНИЯ ОТНОШЕНИЙ                                         32




                      - 4 -

                  00014-01.35.02


4.3.  ЛОГИЧЕСКИЕ  ВЫРАЖЕНИЯ                                        33

5. ОПЕРАТОРЫ ЯЗЫКА ФОРТРАН -IV                                     35
5.1. ОПЕРАТОРЫ ПРИСВАИВАНИЯ                                        35
5.1.1.  АРИФМЕТИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАНИЯ                       35
5.1.2.  ЛОГИЧЕСКИЕ ОПЕРАТОРЫ ПРИСВАИВАНИЯ                          38
5.1.3.  ОПЕРАТОРЫ "ASSIGN"                                         38
5.2.    ОПЕРАТОРЫ УПРАВЛЕНИЯ                                       39
5.2.1.  ОПЕРАТОР  "GO TO"                                          40
5.2.1.1. ОПЕРАТОР БЕЗУСЛОВНОГО ПЕРЕХОДА                            40
5.2.1.2. ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА "GO TO"                     41
5.2.1.3. ОПЕРАТОР ПЕРЕХОДА ПО ПРЕДПИСАНИЮ "GO ТО"                  41
5.2.2.   ОПЕРАТОРЫ "IF"                                            42
5.2.2.1. АРИФМЕТИЧЕСКИЙ ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА "IF"           42
5.2.2.2. ЛОГИЧЕСКИЙ УСЛОВНЫЙ ОПЕРАТОР "IF"                         43
5.2.3.   ОПЕРАТОР "DO"                                             44
5.2.3.1. УПРАВЛЕНИЕ ИТЕРАЦИЕЙ                                      45
5.2.3.2. ВЛОЖЕННОСТЬ ОПЕРАТОРОВ "DO"                               46
5.2.3.3. ПЕРЕДАЧА УПРАВЛЕНИЯ ВО ВЛОЖЕННЫХ "DO"                     47
5.2.3.4. РАСШИРЕННАЯ ОБЛАСТЬ ДЕЙСТВИЙ                              47
5.2.4.   ОПЕРАТОР "CONTINUE"                                       49
5.2.5.   ОПЕРАТОР "CALL"                                           50
5.2.6.   ОПЕРАТОР "RETURN"                                         50
5.2.7.   ОПЕРАТОР "PAUSE"                                          51
5.2.8.   ОПЕРАТОР "STOP"                                           52
5.2.9.   ОПЕРАТОР "END"                                            52
5.3.     ВВОД/ВЫВОД  ДАННЫХ                                        53
5.3.1.   НОМЕРА ЛОГИЧЕСКИХ  УСТРОЙСТВ ВВОДА ВЫВОДА                 54
5.3.2.   УКАЗАТЕЛИ ФОРМАТА                                         54
5.3.3.   ЕДИНИЦЫ ВВОДА/ВЫВОДА                                      54
5.3.4.   СПИСКИ ВВОДА/ВЫВОДА                                       55
5.3.4.1. ПРОСТЫЕ СПИСКИ                                            55
5.3.4.2. СПИСКИ С ЦИКЛАМИ                                          56
5.3.5.   НЕФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД                   58
5.3.5.1. ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
         ВВОДА "READ"                                              58
5.3.5.2. ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
         ВЫВОДА "WRITE"                                            59
5.3.6.   ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД                     60
5.3.6.1. ОПЕРАТОР ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
         ВВОДА "READ"                                              60
5.3.6.2. ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
         ВЫВОДА "WRITE"                                            61
5.3.6.3. ОПЕРАТОР ФОРМАТНОГО ВВОДА "АССЕРТ"                        63
5.3.6.4. ОПЕРАТОР ФОРМАТНОГО ВЫВОДА "TYPE"                         63
5.3.6.5. ОПЕРАТОР ФОРМАТНОГО ВЫВОДА "PRINT"                        64
5.3.7.   НЕФОРМАТНЫЙ ВВОД/ВЫВОД С ПРЯМЫМ ДОСТУПОМ                  65
5.3.7.1. ОПЕРАТОР НЕФОРМАТНОГО ВВОДА С ПРЯМЫМ ДОСТУПОМ
         "READ"                                                    65
5.3.7.2. ОПЕРАТОР НЕФОРМАТНОГО ВВОДА С ПРЯМЫМ ДОСТУПОМ
         "WRITE"                                                   66

5.3.8.   ВВОД/ВЫВОД ПОД УПРАВЛЕНИЕМ СПИСКА                         67
5.3.8.1. ОПЕРАТОР "READ" ПОД УПРАВЛЕНИЕМ СПИСКА                    68
5.3.8.2. ОПЕРАТОР "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА                   70


                                - 5 -

                           00014.01.35.02


5.3.8.3. ОПЕРАТОР "ACCEPT" ПОД УПРАВЛЕНИЕМ СПИСКА                  71
5.3.8.4. ОПЕРАТОР "TYPE"   ПОД УПРАВЛЕНИЕМ СПИСКА                  72
5.3.8.5. ОПЕРАТОР "PRINT"  ПОД УПРАВЛЕНИЕМ СПИСКА                  72
5.3.9.   ПЕРЕДАЧА УПРАВЛЕНИЯ ПО КОНЦУ ФАЙЛА ИЛИ ПО ОШИБКЕ          73
5.3.10.  ВСПОМОГАТЕЛЬНЫЕ ОПЕРАТОРЫ ВВОДА/ВЫВОДА                    74
5.3.10.1.ОПЕРАТОР "REWIND"                                         74
5.3.10.2.ОПЕРАТОР "BACKSPASE"                                      75
5.3.10.3.ОПЕРАТОР "ENDFILE"                                        75
5.3.10.4.ОПЕРАТОР "DEFINE FILE"                                    76
5.3.10.5.ОПЕРАТОР "FIND"                                           77
5.3.10.6.ОПЕРАТОР "ОPEN"                                           78
5.3.10.7.ОПЕРАТОР "CLOSE"                                          83
5.3.11.  ОПЕРАТОРЫ "ENCODE" И "DECODE"                             83

5.4.     ОПЕРАТОРЫ "FORMAT"                                        85
5.4.1.     СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ
5.4.1.1.   СПЕЦИФИКАЦИЯ "I"                                        87
5.4.1.2.   СПЕЦИФИКАЦИЯ "O"                                        88
5.4.1.3.   СПЕЦИФИКАЦИЯ "F"                                        89
5.4.1.4.   СПЕЦИФИКАЦИЯ "E"                                        90
5.4.1.5.   СПЕЦИФИКАЦИЯ "D"                                        91
5.4.1.6.   СПЕЦИФИКАЦИЯ "G"                                        92
5.4.1.7.   СПЕЦИФИКАЦИЯ "L"                                        93
5.4.1.8.   СПЕЦИФИКАЦИЯ "A"                                        94
5.4.1.9.   СПЕЦИФИКАЦИЯ "H"                                        95
5.4.1.10.  СПЕЦИФИКАЦИЯ "X"                                        96
5.4.1.11.  СПЕЦИФИКАЦИЯ "T"                                        96
5.4.1.12.  СПЕЦИФИКАЦИЯ "Q"                                        97
5.4.1.13.  СПЕЦИФИКАЦИЯ "¤"                                        98
5.4.1.14.  СПЕЦИФИКАЦИЯ ":"                                        98
5.4.2.     РЕДАКТИРОВАНИЕ КОМПЛЕКСНЫХ ДАННЫХ                       98
5.4.3.     МАСШТАБНЫЙ КОЭФФИЦИЕНТ                                  99
5.4.4.     ГРУППИРОВАНИЕ И ПОВТОРЯЕМЫЕ ГРУППЫ                     101
5.4.5.     СПЕЦИФИКАЦИЯ С ОПУЩЕННЫМИ ЗНАЧЕНИЯМИ                   101
5.4.6.     УПРАВЛЕНИЕ КАРЕТКОЙ                                    102
5.4.7.     РАЗДЕЛИТЕЛЬНЫЕ ЗНАКИ СПИСКА СПЕЦИФИКАЦИЕЙ              103
5.4.7.1.   РАЗДЕЛИТЕЛИ ВНЕШНИХ ПОЛЕЙ                              104
5.4.7.2.   ПЕРЕМЕННЫЙ СПИСОК СПЕЦИФИКАЦИЙ                         105
5.4.8.     ВЗАИМОДЕЙСТВИЕ УПРАВЛЕНИЯ ФОРМАТОМ И СПИСКА
           ВВОДА/ВЫВОДА                                           105
5.4.9.     СВОДКА ПРАВИЛ ДЛЯ ОПЕРАТОРА "FORMAT"                   107
5.4.9.1.   ОБЩИЕ ПРАВИЛА                                          107
5.4.9.2.   ПРАВИЛА ДЛЯ ВВОДА                                      108
5.5.       ОПЕРАТОРЫ ОПИСАНИЯ                                     109
5.5.1.     ОПЕРАТОР "IMPLICIT"                                    109
5.5.2.     ОПЕРАТОРЫ ОПИСАНИЯ  ТИПА                               111
5.5.3.     ОПЕРАТОР "DIMENSION"                                   112
5.5.4.     ОПЕРАТОР "COMMON"                                      113
5.5.4.1.   ИМЕННОВАННЫЙ И НЕИМЕНОВАННЫЙ ОБЩИЕ БЛОКИ               114
5.5.4.2.   ОПЕРАТОРЫ "COMMON" С ОПИСАТЕЛЯМИ МАССИВОВ              114
5.5.5.     ОПЕРАТОР "EQUIVALENCE"                                 115
5.5.5.1.   УСТАНОВЛЕНИЕ ЭКВИВАЛЕНТНОСТИ МАССИВОВ                  116
5.5.5.2.   ВЗАИМОДЕЙСТВИЕ ОПЕРАТОРОВ "COMMON"  И
           "EQUIVALENCE"                                          117

5.5.5.3.   ОПЕРАТОР "EQUIVALENCE"  И МАССИВЫ  ТИПА
           "LOGICAL*1"                                            117


                                 - 6 -

                            00014.01.35.02


5.5.6.   ОПЕРАТОР  "EXTERNAL"                                     118
5.5.7.   ОПЕРАТОР  "DATA"                                         119
5.5.8.   ОПЕРАТОР  "PROGRAM"                                      120


6.   ПОДПРОГРАММЫ                                                 121


6.1.  ПАРАМЕТРЫ ПОДПРОГРАММ                                       121
6.2.  ПОЛЬЗОВАТЕЛЬСКИЕ ПОДПРОГРАММЫ                               122
6.2.  АФИФМЕТИЧЕСКИЕ ОПЕРАТОРЫ-ФУНКЦИИ                            122
6.2.2.ПОДПРОГРАММА-ФУНКЦИЯ                                        124
6.2.3.ПОДПРАГРАММА ДАННЫХ "BLOCK DATA"                            127
6.2.5.БИБЛИОТЕЧНЫЕ ФУНКЦИИ ФОРТРАНА                               128


7.  СРЕДСТВА  ОТЛАДКИ                                             129



  ПРИЛОЖЕНИЕ  1.  НАБОРЫ  СИМВОЛОВ                                130


  ПРИЛОЖЕНИЕ  2.  ОСНОВНЫЕ  СВЕДЕНИЯ О ЯЗЫКЕ ФОРТРАН-IV           140



                              - 7 -

                          00014.01.35.02


        1.    ОБЩИЕ  СВЕДЕНИЯ И СПОСОБ  ОПИСАНИЯ ЯЗЫКА



      1.1.  КОМПОНЕНТЫ  ПРОГРАММЫ НА ФОРТРАНЕ


        ПРОГРАММА НА ЯЗЫКЕ ФОРТРАН СОСТОИТ ИЗ ОПЕРАТОРОВ ФОРТ-
РАН  И НЕОБЯЗАТЕЛЬНЫХ КОММЕНТАРИЕВ. ОПЕРАТОРЫ  ОБ'ЕДИНЯЮТСЯ  В
ЛОГИЧЕСКИЕ   БЛОКИ,  НАЗЫВАЕМЫЕ ПРОГРАММНЫМИ  МОДУЛЯМИ.  ПРОГ-
РАММНЫЙ   МОДУЛЬ  ЯВЛЯЕТСЯ  ПОСЛЕДОВАТЕЛЬНОСТЬЮ    ОПЕРАТОРОВ,
ОПРЕДЕЛЯЮЩЕЙ НЕКОТОРУЮ  ПРОЦЕДУРУ ВЫЧИСЛЕНИЯ.   ЭТА ПОСЛЕДОВА-
ТЕЛЬНОСТЬ   ЗАКАНЧИВАЕТСЯ  ОПЕРАТОРОМ   "END" .    ПРОГРАММНЫЙ
МОДУЛЬ МОЖЕТ  БЫТЬ ИЛИ   ОСНОВНОЙ ПРОГРАММНОЙ, ИЛИ ПОДПРОГРАМ-
МОЙ, ИЛИ ПОДПРОГРОГРАММОЙ-ФУНКЦИЕЙ. ВЫПОЛНЯЕМАЯ ПРОГРАММА СОС-
ТОИТ ИЗ  ОДНОЙ  ОСНОВНОЙ  ПРОГРАММЫ  И ЛЮБОГО КОЛИЧЕСТВА ПОДП-
РОГРАММ  И ПРОГРАММ-ФУНКЦИЙ.



      1.1.1.   ОПЕРАТОРЫ




        ВСЕ ОПЕРАТОРЫ  ДЕЛЯТСЯ  НА ДВА КЛАССА:  ВЫПОЛНЯЕМЫЕ И
НЕВЫПОЛНЯЕМЫЕ ОПЕРАТОРЫ. НЕВЫПОЛНЯЕМЫЕ  ОПЕРАТОРЫ   ОПИСЫВАЮТ
РАЗМЕЩЕНИЕ И ХАРАКТЕРИСТИКИ ДАННЫХ, А ТАКЖЕ  СОДЕРЖАТ  ИНФОР-
МАЦИЮ, НЕОБХОДИМУЮ  ДЛЯ РЕДАКТИРОВАНИЯ И ПРЕОБРАЗОВАНИЯ  ДАН-
НЫХ.

        ОПЕРАТОР СОСТОИТ ИЗ ОДНОЙ ИЛИ НЕСКОЛЬКИХ СТРОК. СТРО-
КОЙ  НАЗЫВАЕТСЯ  ПОСЛЕДОВАТЕЛЬНОСТЬ  СИМВОЛОВ   ДО  72 ЗНАКОВ
ДЛИНОЙ. ЕСЛИ  РАЗМЕР  ОПЕРАТОРА  ПРЕВЫШАЕТ  ДОПУСТИМУЮ  ДЛИНУ
СТРОКИ, ОН  МОЖЕТ  БЫТЬ ПРОДОЛЖЕН  НА СЛЕДУЮЩЕЙ СТРОКЕ ИЛИ НА
НЕСКОЛЬКИХ  ПОСЛЕДУЮЩИХ СТРОКАХ,  НАЗЫВАЕМЫХ СТРОКАМИ ПРОДОЛ-
ЖЕНИЯ.  СТРОКА  ПРОДОЛЖЕНИЯ ИДЕНТИФИЦИРУЕТСЯ НАЛИЧИЕМ СИМВОЛА
ПРОДОЛЖЕНИЯ  В ШЕСТОЙ ПОЗИЦИИ ЭТОЙ  СТРОКИ.

      ОПЕРАТОР МОЖЕТ  ИМЕТЬ МЕТКУ, ПО КОТОРОЙ ДРУГИЕ ОПЕРАТО-
РЫ  ПОЛУЧАЕТ ВОЖМОЖНОСТЬ ОБРАЩАТЬСЯ К НЕМУ ЛИБО  ЗА  ИНФОРМА-
ЦИЕЙ,  ЛИБО ДЛЯ  ПЕРЕДАЧИ  ЕМУ  УПРАВЛЕНИЯ.  МЕТКА  ОПЕРАТОРА
ЯВЛЯЕТСЯ   ЦЕЛЫМ  ЧИСЛОМ, ЗАПИСАННЫМ  В  ПЕРВЫХ ПЯТИ ПОЗИЦИЯХ
ПЕРВОЙ  СТРОКИ  ОПЕРАТОРА.




        1.1.2.  КОММЕНТАРИИ


      НАЛИЧИЕ КОММЕНТАРИЯ НЕ ВЛИЯЕТ НА ВЫПОЛНЕНИЕ ПРОГРАММЫ;
ОН  СЛУЖИТ  ВСПОМОГАТЕЛЬНОЙ  ИНФОРМАЦИЕЙ  ДЛЯ  ПРОГРАММИСТА.
КОММЕНТАРИЙ   ИСПОЛЬЗУЕТСЯ   ДЛЯ  ОПИСАНИЯ РАБОТЫ ПРОГРАММЫ,
ИДЕНТИФИКАЦИИ ПРОГРАММНЫХ СЕКЦИЙ И ПРОЦЕСОВ  ОБРАБОТКИ, ДЛЯ
УДОБСТВА ЧТЕНИЯ ЛИСТИНГА ПРОГРАММЫ НА ВХОДНОМ ЯЗЫКЕ.


                             - 8 -

                         00014-01.35.02


        БУКВА "С" В ПЕРВОЙ ПОЗИЦИИ ИСХОДНОЙ СТРОКИ  УКАЗЫВАЕТ,
ЧТО  ЭТА СТРОКА ЯВЛЯЕТСЯ  КОММЕНТАРИЕМ.  ВОСКЛИЦАТЕЛЬНЫЙ  ЗНАК
(!), НАХОДЯЩИЙСЯ В СТРОКЕ,  УКАЗЫВАЕТ,  ЧТО  ВЕСЬ ТЕКСТ,  РАС-
ПОЛОЖЕННЫЙ ПОСЛЕ НЕГО, ТАКЖЕ  ЯВЛЯЕТСЯ  КОММЕНТАРИЕМ.



             2.   ЭЛЕМЕНТЫ  И ОСНОВНЫЕ  КОНСТРУКЦИИ  ЯЗЫКА



           2.1.   НАБОР  СИМВОЛОВ  ФОРТРАН



          ПРИ ЗАПИСИ  ПРОГРАММ НА ЯЗЫКЕ ФОРТРАН ИСПОЛЬЗУЮТСЯ СЛЕ-
ДУЮЩИЕ  СИМВОЛЫ:

       - ПРОПИСНЫЕ  БУКВЫ  ЛАТИНСКОГО АЛФАВИТА ОТ "А" ДО "Z";

       - ЦИФРЫ ОТ 0  ДО 9;

       - СЛЕДУЮЩИЕ СПЕЦИАЛЬНЫЕ  СИМВОЛЫ:

                                  ПРОБЕЛ
                    =             ЗНАК РАВЕНСТВА
                    +             ПЛЮС
                    -             МИНУС
                    *             ЗВЕЗДОЧКА
                    /             КОСАЯ (ДРОБНАЯ)ЧЕРТА
                    (             ЛЕВАЮ (ОТКРЫВАЮЩАЯ) СКОБКА
                    )             ПРАВАЯ (ЗАКРЫВАЮЩАЯ) СКОБКА
                    ,             ЗАПЯТАЯ
                    .             ДЕСЯТИЧНАЯ ТОЧКА
                    /             АПОСТРОФ
                    "             КАВЫЧКИ
                    ¤             ЗНАК ДЕНЕЖНОЙ  ЕДИНИЦЫ
                    :             ДВОЕТОЧИЕ




      БУКВЫ КИРИЛЛИЦЫ И  ОСТАЛЬНЫЕ  ПЕЧАТНЫЕ  СИМВОЛЫ  МОГУТ
ВСТРЕЧАТЬСЯ  В ОПЕРАТОРАХ ФОРТРАН ТОЛЬКО КАК ЧАСТЬ ТЕКСТОВОЙ
КОНСТАНТЫ ИЛИ БУКВЕННО-ЦИФРОВОГО  ЛИТЕРАЛА.  В  КОММЕНТАРИЯХ
ДОПУСКАЕТСЯ ИСПОЛЬЗОВАНИЕ ЛЮБЫХ ПЕЧАТНЫХ  СИМВОЛОВ.



           2.2.    ЗАДАНИЕ ФОРМАТА СТРОКИ ФОРТРАН


      ФОРМАТ СТРОКИ  ФОРТРАН  ЯВЛЯЕТСЯ  ОДИНАКОВЫМ КАК  ДЛЯ
СТРОК, ПЕРФОРИРУЕМЫХ НА ПЕРФОКАРТЕ, ТАК И ДЛЯ СТРОК, ВВОДИ-
МЫХ С ТЕРМИНАЛА ПРИ ПОМОЩИ  РЕДАКТОРА ТЕКСТА.   РАЗЛИЧАЮТСЯ
ЛИШЬ  СПОСОБЫ ФОРМАТИРОВАНИЯ СТРОК.


                        - 9 -

                   00014- 01.35.02


        2.2.1.  ispolxzowanie blanka programmirowaniq
                na fortrane

       stroka fortran delitsq na polq, prednazna~ennye   dlq
ЗАПИСИ МЕТОК  ОПЕРАТОРОВ, ПРИЗНАКОВ ПРОДОЛЖЕНИЯ, ТЕКСТА ОПЕ-
РАТОРОВ  И  ПОРЯДКОВЫХ  НОМЕРОВ   ОПЕРАТОРОВ. КАЖДАЯ ПОЗИЦИЯ
СТРОКИ СООТВЕТСТВУЕТ ОДНОМУ СИМВОЛУ.

       МЕТКА ОПЕРАТОРА(ИЛИ НОМЕР ОПЕРАТОРА) СОСТОИТ ИЗ ОДНОЙ
ИЛИ НЕСКОЛЬКИХ (НЕ БОЛЕЕ ПЯТИ) ДЕСЯТИЧНЫХ  ЦИФР, РАСПОЛОЖЕН-
НЫХ В ПЕРВЫХ ПЯТИ ПОЗИЦИЯХ НАЧАЛЬНОЙ СТРОКИ ОПЕРАТОРА.  ПРО-
БЕЛЫ И ЛЕВЫЕ НУЛИ  ИГНОРИРУЮТСЯ.  ЗАПРЕЩАЕТСЯ  ИСПОЛЬЗОВАНИЕ
МЕТКИ ОПЕРАТОРА, СОСТОЯЩЕЙ ТОЛЬКО ИЗ НУЛЕЙ.

       ЛЮБОЙ ОПЕРАТОР, К КОТОРОМУ СУЩЕСТВУЕТ ССЫЛКА ИЗ ДРУГО-
ГО ОПЕРАТОРА, ДОЛЖЕН ИМЕТЬ МЕТКУ.  НИКАКИЕ ДВА ОПЕРАТОРА   В
ПРОГРАММНОЙ ЕДИНИЦЕ НЕ ДОЛЖНЫ ИМЕТЬ ОДИНАКОВЫХ МЕТОК.

       В ПОЗИЦИИ 1 МОЖЕТ БЫТЬ ПОМЕЩЕНА БУКВА "С".  ЭТА ОЗНА-
ЧАЕТ, ЧТО ДАННАЯ СТРОКА ЯВЛЯЕТСЯ КОММЕНТАРИЕМ.    КОМПИЛЯТОР
ПЕЧАТАЕТ СОДЕРЖИМОЕ ЭТОЙ СТРОКИ В ЛИСТИНГЕ   ИСХОДНОЙ  ПРОГ-
РАМЫ, ПОСЛЕ ЧЕГО ЭТА СТРОКА ИМ ИГНОРИРУЕТСЯ.

       ОТЛАДОЧНЫЕ ОПЕРАТОРЫ ПОМЕЧАЮТСЯ  БУКВОЙ "D", В ПЕРВОЙ
ПОЗИЦИИ.  ПЕРВАЯ СТРОКА ОТЛАДОЧНОГО ОПЕРАТОРА   МОЖЕТ СОДЕР-
ЖАТЬ МЕТКУ ОПЕРАТОРА В ПОЗИЦИЯХ СО ВТОРОЙ   ПО  ПЯТУЮ.  ЕСЛИ
ОТЛАДОЧНЫЙ  ОПЕРАТОР  ЗАНИМАЕТ  НЕСКОЛЬКО  СТРОК, ТО  КАЖДАЯ
СТРОКА ПРОДОЛЖЕНИЯ ДОЛЖНА ИМЕТЬ СИМВОЛ "D"  В  ПОЗИЦИИ 1,  А
ТАКЖЕ СИМВОЛ ПРОДОЛЖЕНИЯ В ПОЗИЦИИ 6.

      ЕСЛИ В КОМАНДНОЙ СТРОКЕ  ИМЕЕТСЯ  КЛЮЧ  "/D" ОТЛАДОЧНЫЕ
ОПЕРАТОРЫ  ТРАНСЛИРУЮТСЯ КАК ЧАСТЬ ИСХОДНОЙ  ПРОГРАММЫ;  ЕСЛИ
ОН  ОТСУТСТВУЕТ,  ОТЛАДОЧНЫЕ   ОПЕРАТОРЫ РАССМАТРИВАЮТСЯ  КАК
КОММЕНТАРИИ.

      ШЕСТАЯ ПОЗИЦИЯ  СТРОКИ ФОРТРАНА  ЗАРЕЗЕРВИРОВАНА   ДЛЯ
ПРИЗНАКА ПРОДОЛЖЕНИЯ. ЛЮБОЙ СИМВОЛ, ЗА ИСКЛЮЧЕНИЕМ  НУЛЯ ИЛИ
ПРОБЕЛА, ПОМЕЩЕННЫЙ В ЭТУ ПОЗИЩИЮ, РАСПОЗНАЕТСЯ КАК  ПРИЗНАК
ПРОДОЛЖЕНИЯ.  СИМВОЛЫ, НАЧИНАЮЩИЕСЯ В СЕДЬМОЙ ПОЗИЦИИ  СТРОК
ПРОДОЛЖЕНИЯ , РАССМАТРИВАЮТСЯ  КАК СЛЕДУЮЩИЕ   ЗА  ПОСЛЕДНИМ
СИМВОЛОВ ПРЕДЫДУЩЕЙ СТРОКИ.

       СТРОКИ КОММЕНТАРИЕВ  НЕ МОГУТ  БЫТЬ  ПРОДОЛЖЕНЫ.  ВСЕ
СТРОКИ КОММЕНТАРИЕВ ДОЛЖНЫ НАЧИНАТЬСЯ С БУКВЫ "С" В  ПОЗИЦИИ
1. СТРОКИ КОММЕНТАРИЕВ НЕ ДОЛЖНЫ ВСТАВЛЯТЬСЯ  МЕЖДУ  НАЧАЛЬ-
НОЙ СТРОКОЙ ОПЕРАТОРА И ЕГО СТРОКОЙ  (ИЛИ СТРОКАМИ)  ПРОДОЛ-
ЖЕНИЯ, ЛИБО МЕЖДУ ИДУЩИМИ ПОДРЯД СТРОКАМИ ПРОДОЛЖЕНИЯ.

       ТЕКСТ ОПЕРАТОРА ФОРТРАН ПОМЕЩАЕТСЯ В ПОЗИЦИЯХ С  7 ПО
72. ТАК КАК КОМПИЛЯТОР ИГНОРИРУЕТ СИМВОЛ ТАБУЛЯЦИИ  И ПРОБЕ-
ЛЫ  (ЗА  ИСКЛЮЧЕНИЕМ  НАХОДЯЩИХСЯ  В ТЕКСТОВЫХ КОНСТАНТАХ  И
БУКВЕННО-ЦИФРОВЫХ ЛИТЕРАЛАХ), ПОЛЬЗОВАТЕЛЬ  МОЖЕТ  ВСТАВЛЯТЬ
В ТЕКСТ ПРОБЕЛЫ  В  ЛЮБОМ  МЕСТЕ   ДЛЯ  ДОСТИЖЕНИЯ  БОЛЬШОГО
УДОБСТВА ЧТЕНИЯ.

      В ПОЗИЦИЯХ 73-80  ЛЮБОЙ СТРОКИ ПРОГРАММЫ ФОРТРАН МОЖЕТ
ПОМЕЩАТЬСЯ ПОРЯДКОВЫЙ НОМЕР СТРОКИ  ИЛИ  ДРУГАЯ  ИДЕНТИФИЦИ-




                        - 10 -

                    00014.01.35.02

     РУЮЩАЮ ИНФОРМАЦИЯ. ТЕКСТ БУДЕТ ИГНОРИРОВАТЬСЯ БЕЗ ПРЕДУП-
РЕЖДАЮЩЕГО СООБЩЕНИЯ,  ЕСЛИ ДЛИНА  СТРОКИ  ОПЕРАТОРА  ОКАЖЕТСЯ
БОЛЬШЕ 72.



         2.2.2.  ИСПОЛЬЗОВАНИЕ РЕДАКТОРА ТЕКСТА


      ЕСЛИ  ИСХОДНАЯ ПРОГРАММА ВВОДИТСЯ С ТЕРМИНАЛА С ПОМОЩЬЮ
РЕДАКТОРА ТЕКСТА, ПОЛЬЗОВАТЕЛЬ  МОЖЕТ  ПЕЧАТАТЬ   СТРОКИ   ПО
ПРИНЦИПУ  "СИМВОЛ   НА  ПОЗИЦИЮ", ЛИБО   ИСПОЛЬЗОВАТЬ  СИМВОЛ
ТАБУЛЯЦИИ ДЛЯ  ОБЛЕГЧЕНИЯ ЗАДАНИЯ ФОРМАТА СТРОК.

       ЕСЛИ  СИМВОЛ  ТАБУЛЯЦИИ  ЯВЛЯЕТСЯ  ПЕРВЫМ В СТРОКЕ ИЛИ
СТОИТ  ПОСЛЕ МЕТКИ ОПЕРАТОРА ИЛИ СИМВОЛА "D"    И   СЛЕДУЮЩИМ
СИМВОЛОМ ЯВЛЯЕТСЯ ЦИФРА, ТО КОМПИЛЯТОР  РАССМАТРИВАЕТ   ЦИФРУ
КАК ПРИЗНАК ПРОДОЛЖЕНИЯ, А СЛЕДУЮЩИЙ СИМВОЛ КАК НАЧАЛО ТЕКСТА
ОПЕРАТОРА.  ЕСЛИ   СИМВОЛ,  СЛЕДУЮЩИЙ ЗА  НАЧАЛЬНЫМ  СИМВОЛОМ
ТАБУЛЯЦИИ, НЕ ЯВЛЯЕТСЯ ЦИФРОЙ,  ТО КОМПИЛЯТОР   РАССМАТРИВАЕТ
ЕГО КАК ПЕРВЫЙ СИМВОЛ ТЕКСТА ОПЕРАТОРА.  ЕСЛИ  ПРИЗНАК   ПРО-
ДОЛЖЕНИЯ ОТСУТСТВУЕТ, ТО ДАННАЯ  СТРОКА   ЯВЛЯЕТСЯ  НАЧАЛЬНОЙ
СТРОКОЙ.

       СИМВОЛ ПРОБЕЛА МОЖЕТ ИСПОЛЬЗВАТЬСЯ В  ОПЕРАТОРЕ  ФОРТ-
ТРАН  ДЛЯ УДОБСТВА  ЧТЕНИЯ СТРОКИ. ТРАНСЛЯТОР ИГНОРИРУЕТ  ВСЕ
ПРОБЕЛЫ  В  ПОЛЕ  ОПЕРАТОРА  ЗА  ИСКЛЮЧЕНИЕМ  ПРОБЕЛОВ ВНУТРИ
ТЕКСТОВЫХ КОНСТАНТ ИЛИ ВНУТРИ  БУКВЕННО- ЦИФРОВЫХ  ЛИТЕРАЛОВ.
СИМВОЛ "ТАВ"  В  ПОЛЕ  ОПЕРАТОРА  ВОСПРИНИМАЕТСЯ КОМПИЛЯТОРОМ
ТАК ЖЕ , КАК И ПРОБЕЛ .  В  ЛИСТИНГЕ  ТРАНСЛЯЦИИ, ВЫПОЛНЯЕМОМ
КОМПИЛЯТОРОМ, СИМВОЛ "ТАВ"  ВЫЗЫВАЕТ ПЕЧАТЬ  СИМВОЛА, СЛЕДУЮ-
ЩЕГО  ЗА НИМ, В ПОЗИЦИИ  СЛЕДУЮЩЕГО  ТАБУЛЯЦИОННОГО  ОСТАНОВА
(Т.Е.  В ПОЗИЦИЯХ 9, 17, 25, 33  И Т.Д).


                             - 11-

                         00014-01.35.02


           3. ЭЛЕМЕНТЫ ДАННЫХ ФОРТРАН-IV



      ОСНОВНЫМИ ЭЛЕМЕНТАМИ ОПЕРАТОРОВ ФОРТРАН0-IV ЯВЛЯЮТСЯ:


  КОНСТАНТА
         - ПРЕДСТАВЛЯЕТ ФИКСИРОВАННУЮ  ВЕЛИЧИНУ,  КОТОРАЯ  НЕ
           МЕНЯЕТСЯ В ХОДЕ ВЫПОЛНЕНИЯ ПРОГРАММЫ;


  ПЕРЕМЕННАЯ
         - СИМВОЛИЧЕСКОЕ ИМЯ (ИДЕНТИФИКАТОР),  ПРЕДСТАВЛЯЮЩЕЕ
           НЕКОТОРУЮ ВЕЛИЧИНУ, ХРАНЯЩУЮСЯ В ПАМЯТИ;

  МАССИВ
         - ГРУППА ОДНОТИПНЫХ ВЕЛИЧИН, РАСПОЛОЖЕННЫХ В  ПАМЯТИ
           ПОСЛЕДОВАТЕЛЬНО ДРУГ ЗА ДРУГОМ; ОТДЕЛЬНЫЕ  ВЕЛИЧИ-
           НЫ,  СОСТАВЛЯЮЩИЕ  МАССИВ,  НАЗЫВАЮТСЯ  ЭЛЕМЕНТАМИ
           МАССИВА; МОЖНО ОБРАЩАТЬСЯ НЕ ТОЛЬКО КО ВСЕМУ  МАС-
           СИВУ, НО И К ЛЮБОМУ ЕГО ЭЛЕМЕНТУ; ДЛЯ ОБРАЩЕНИЯ  К
           МАССИВУ ИСПОЛЬЗУЕТСЯ ИДЕНТИФИКАТОР;

  ВЫРАЖЕНИЕ
         - МОЖЕТ БЫТЬ ПРОСТОЙ КОНСТАНТОЙ, ПЕРЕМЕННОЙ, ЭЛЕМЕН-
           ТОМ  МАССИВА  ИЛИ  ОБРАЩЕНИЕМ К ФУНКЦИИ; ВЫРАЖЕНИЕ
           ТАКЖЕ  МОЖЕТ  БЫТЬ КОМБИНАЦИЕЙ   ВЫШЕПЕРЕЧИСЛЕННЫХ
           ЭЛЕМЕНТОВ И ЭЛЕМЕНТОВ, НАЗЫВАЕМЫХ ОПЕРАЦИЯМИ; ОПЕ-
           РАЦИИ ОПРЕДЕЛЯЮТ  ВИД  ВЫЧИСЛЕНИЙ,  КОТОРЫЕ   НАДО
           ВЫПОЛНИТЬ НАД ЭЛЕМЕНТАМИ ДЛЯ ТОГО, ЧТОБЫ  ПОЛУЧИТЬ
           ЗНАЧЕНИЕ ВЫРАЖЕНИЯ;

  ОБРАЩЕНИЕ К ФУНКЦИИ
         - ИДЕНТИФИКАТОР  ФУНКЦИИ,  ЗА КОТОРЫМ СЛЕДУЕТ СПИСОК
           АРГУМЕНТОВ (ПАРАМЕТРОВ);  ПОЯВЛЕНИЕ  В   ПРОГРАММЕ
           ОБРАЩЕНИЯ К ФУНКЦИИ ВЫЗЫВАЕТ ВЫПОЛНЕНИЕ ВЫЧИСЛЕНИЙ
           НАД ПАРАМЕТРАМИ СОГЛАСНО ОПРЕДЕЛЕНИЮ ФУНКЦИИ.


        3.1. ИДЕНТИФИКАТОРЫ


        ИДЕНТИФИКАТОР - ЭТО ПОСЛЕДОВАТЕЛЬНОСТЬ  БУКВ  И ЦИФР,
  НАЧИНАЮЩАЯСЯ ОБЯЗАТЕЛЬНО С БУКВЫ. ИДЕНТИФИКАТОР МОЖЕТ ИМЕТЬ
  ЛЮБУЮ ДЛИНУ, НО СИМВОЛЫ ПОСЛЕ ШЕСТОГО ИГНОРИРУЮТСЯ.

        ПРИМЕРЫ ПРАВИЛЬНЫХ И НЕПРАВИЛЬНЫХ ИДЕНТИФИКАТОРОВ:

      ПРАВИЛЬНАЯ ЗАПИСЬ      НЕПРАВИЛЬНАЯ ЗАПИСЬ

          NUMER              5Q  (НАЧИНАЕТСЯ С ЦИФРЫ)
          K9                 B.4 (СОДЕРЖИТ СПЕЦИАЛЬНЫЙ
                                  СИМВОЛ)

        В ТАБЛ.1 ПЕРЕЧИСЛЕННЫ ВСЕ ОБ'ЕКТЫ, КОТОРЫЕ ОБОЗНАЧАЮТ-
  СЯ ИДЕНТИФИКАТОРАМИ. В ПРЕДЕЛАХ ПРОГРАММНОЙ ЕДИНИЦЫ  ОДИН  И
  ТОТ  ЖЕ  ИДЕНТИФИКАТОР  НЕ  МОЖЕТ  БЫТЬ  ПРИСВОЕН БОЛЕЕ, ЧЕМ


                             - 12 -

                          00014-01.35.02


  ОДНОМУ ОБ'ЕКТУ, ЗА ИСКЛЮЧЕНИЕМ СПЕЦИАЛЬНЫХ СЛУЧАЕВ.

     ВНУТРИ  ПОДПРОГРАММЫ  ИДЕНТИФИКАТОРЫ  МОГУТ  ИСПОЛЬЗОВАТЬ-
  СЯ ТАКЖЕ В КАЧЕСТВЕ ФОРМАЛЬНЫХ ПАРАМЕТРОВ.  ФОРМАЛЬНЫЙ  ПАРА-
  МЕТР МОЖЕТ ПРЕДСТАВЛЯТЬ ПЕРЕМЕННУЮ, МАССИВ,  ЭЛЕМЕНТ МАССИВА,
  КОНСТАНТУ, ВЫРАЖЕНИЕ ИЛИ ПОДПРОГРАММУ.

                                                 ТАБЛИЦА 1

                    КЛАССИФИКАЦИЯ ИДЕНТИФИКАТОРОВ
-------------------------------------------------------------
     ОБ'ЕКТ                ИМЕЕТ           ЕДИНСТВЕННЫЙ В
                             ТИП            ПРОГРАММЕ
-------------------------------------------------------------

   ПЕРЕМЕННАЯ                ДА                НЕТ
   МАССИВ                    ДА                НЕТ
   АРИФМЕТИЧЕСКИЙ
   ОПЕРАТОР-ФУНКЦИЯ          ДА                НЕТ
   БИБЛИОТЕЧНАЯ ФУНКЦИЯ      ДА                ДА
   ПОДПРОГРАММА-ФУНКЦИЯ      ДА                ДА
   ПОДПРОГРАММА              НЕТ               ДА
   ОБЩИЙ БЛОК                НЕТ               ДА
   ОСНОВНАЯ ПРОГРАММА        НЕТ               ДА
   БЛОК ДАННЫХ               НЕТ               ДА



           3.2. ТИПЫ ДАННЫХ


       КАЖДЫЙ  ОСНОВНОЙ  ЭЛЕМЕНТ ПРЕДСТАВЛЯЕТ ДАННЫЕ ОДНОГО ИЗ
  НЕСКОЛЬКИХ РАЗЛИЧНЫХ ТИПОВ. ТИП ДАННЫХ ЭЛЕМЕНТА МОЖЕТ  ОПРЕ-
  ДЕЛЯТЬСЯ САМОЙ КОНСТРУКЦИЕЙ  ЭЛЕМЕНТА, МОЖЕТ  ЗАДАВАТЬСЯ  ПО
  УМОЛЧАНИЮ, ЛИБО МОЖЕТ БЫТЬ ЗАДАН ЯВНЫМ ОБРАЗОМ.

       ТИПЫ ДАННЫХ, ДОПУСТИМЫЕ В ФОРТРАН, СЛЕДУЮЩИЕ:

  ЦЕЛЫЙ
       - ЦЕЛОЕ ЧИСЛО;

  ВЕЩЕСТВЕННЫЙ
       - ЧИСЛО  С  ДЕСЯТИЧНОЙ   ТОЧКОЙ; ЭТО  МОЖЕТ  БЫТЬ ЦЕЛОЕ
         ЧИСЛО, ДЕСЯТИЧНАЯ ДРОБЬ ИЛИ КОМБИНАЦИЯ ЭТИХ ЗНАЧЕНИЙ;

  С ДВОЙНОЙ ТОЧНОСТЬЮ
       - АНАЛОГИЧНО ВЕЩЕСТВЕННЫМ, НО  С  ПОВЫШЕННОЙ  ТОЧНОСТЬЮ
         ПРЕДСТАВЛЕНИЯ ЧИСЛА;

  КОМПЛЕКСНЫЙ
       - ПАРА  ВЕЩЕСТВЕННЫХ  ВЕЛИЧИН,  КОТОРАЯ    ПРЕДСТАВЛЯЕТ
         КОМПЛЕКСНОЕ ЧИСЛО. ПЕРВАЯ ИЗ ЭТИХ  ВЕЛИЧИН  ПРЕДСТАВ-
         ЛЯЕТ  ДЕЙСТВИТЕЛЬНУЮ   ЧАСТЬ  КОМПЛЕКСНОГО   ЧИСЛА, А
         ВТОРАЯ-МНИМУЮ ЧАСТЬ.

  ЛОГИЧЕСКИЙ

       - ДАННОЕ,  ПРИНИМАЮЩЕЕ  ЛОГИЧЕСКОЕ   ЗНАЧЕНИЕ   "ИСТИНА"
         ИЛИ "ЛОЖЬ".



                          - 13 -

                       0001-01.35.02


      ВАЖНОЙ  ХАРАКТЕРИСТИКОЙ  КАЖДОГО  ТИПА  ДАННЫХ  ЯВЛЯЕТСЯ
  ОБ'ЕМ ПАМЯТИ, ТРЕБУЮЩИЙСЯ ДЛЯ ХРАНЕНИЯ ВЕЛИЧИНЫ ЭТОГО  ТИПА.
  РАЗЛИЧИЯ ВНУТРИ ОСНОВНЫХ  ТИПОВ  ВЫРАЖАЮТСЯ  ЛИБО В ТОЧНОСТИ
  ПРЕДСТАВЛЕНИЯ ВЕЛИЧИНЫ, ЛИБО В ДОПУСТИМОМ  ДИАПАЗОНЕ  ЗНАЧЕ-
  НИЙ.

      ТЕКСТОВЫЕ КОНСТАНТЫ   И  БУКВЕННО-ЦИФРОВЫЕ  ЛИТЕРАЛЫ  НЕ
  ИМЕЮТ ТИПА ДАННЫХ. ОНИ ПРИНИМАЮТ ТИП ДАННЫХ   В  ЗАВИСИМОСТИ
  ОТ ТОГО КОНТЕКСТА, В КОТОРОМ ОНИ ВСТРЕЧАЮТСЯ.

      ЕДИНИЦА   ПАМЯТИ  -  ЭТО  ОБ'ЕМ  ПАМЯТИ, НЕОБХОДИМЫЙ ДЛЯ
  ПРЕДСТАВЛЕНИЯ ВЕЩЕСТВЕННОЙ, ЦЕЛОЙ  ИЛИ ЛОГИЧЕСКОЙ  ВЕЛИЧИНЫ.
  ВЕЛИЧИНЫ С ДВОЙНОЙ ТОЧНОСТЬЮ И КОМПЛЕКСНЫЕ ВЕЛИЧИНЫ ЗАНИМАЮТ
  ДВЕ  ЕДИНИЦЫ  ПАМЯТИ. В  ЯЗЫКЕ   ФОРТРАН-IV  ЕДИНИЦА  ПАМЯТИ
  СООТВЕТСТВУЕТ ЧЕТЫРЕМ БАЙТАМ (ДВУМ СЛОВАМ) ПАМЯТИ.

      ДЛЯ БОЛЕЕ ОПТИМАЛЬНОГО ИСПОЛЬЗОВАНИЯ ПАМЯТИ И  ПОВЫШЕНИЯ
  ПРОИЗВОДИТЕЛЬНОСТИ   КОМПИЛЯТОРА  ДОПУСКАЕТСЯ  ИСПОЛЬЗОВАНИЕ
  ДОПОЛНИТЕЛЬНЫХ ТИПОВ ДАННЫХ. РАСПРЕДЕЛЕНИЕ ПАМЯТИ  ПО  ТИПАМ
  ДАННЫХ СЛЕДУЮЩЕЕ:

  INTEGER (INTEGER*2)

      - ЗАНИМАЕТ 2 ИЛИ 4 БАЙТА ПАМЯТИ; В ЗАВИСИМОСТИ ОТ  УСТА-
        НОВКИ КЛЮЧА  КОМПИЛЯТОРА  "/I4"  ОТВОДИТСЯ  ЛИБО  ДВА,
        ЛИБО ЧЕТЫРЕ БАЙТА; ПО УМОЛЧАНИЮ ОТВОДИТСЯ ДВА БАЙТА;

  INTEGER*4
      - ОТВОДИТСЯ  4  БАЙТА,  НО  ДЛЯ  ЗАПИСИ  ЦЕЛОЙ  ВЕЛИЧИНЫ
        ИСПОЛЬЗУЮТСЯ ТОЛЬКО  ПЕРВЫЕ  ДВА;  ДИАПАЗОН  ВОЗМОЖНЫХ
        ЗНАЧЕНИЙ ТАКОЙ ЖЕ, ЧТО  И У ПЕРЕМЕННЫХ ТИПА INTEGER*2;
        ЧЕТЫРЕХБАЙТОВОЕ ПРЕДСТАВЛЕНИЕ  УПОТРЕБЛЯЕТСЯ  ПРИ  ИС-
        ПОЛЬЗОВАНИИ ПРОГРАММ, РАЗРАБОТАННЫХ НА ДРУГИХ СИСТЕМАХ
        ФОРТРАН;

  REAL (REAL*4)
      - ОТВОДИТСЯ 4 БАЙТА;

  DOUBLE PRECISION (REAL*8)
      - ЗАНИМАЕТ 8 БАЙТОВ;

  COMPLEX (COMPLEX*8)
      - ОТВОДИТСЯ 8 БАЙТОВ;

  LOGICAL (LOGICAL*4)
      - ОТВОДИТСЯ 4 БАЙТА

  LOGICAL*1
      - ОТВОДИТСЯ 1-БАЙТОВАЯ ОБЛАСТЬ, КОТОРАЯ МОЖЕТ  СОДЕРЖАТЬ
        ЛОГИЧЕСКИЕ ВЕЛИЧИНЫ "ИСТИНА" ИЛИ "ЛОЖЬ", ОДИН  БУКВЕН-
        НО-ЦИФРОВОЙ СИМВОЛ ИЛИ ЦЕЛЫЕ ВЕЛИЧИНЫ ОТ -128 ДО +127;

  BYTE
      - ЗАНИМАЕТ 1 БАЙТ.


                            - 14 -

                        00014-01.35.02



      3.3. КОНСТАНТЫ


      КОНСТАНТА ПРЕДСТАВЛЯЕТ НЕИЗМЕНЯЕМУЮ  ВЕЛИЧИНУ:  ЛОГИЧЕС-
  КУЮ, ЧИСЛОВОЕ ЗНАЧЕНИЕ ИЛИ ПОСЛЕДОВАТЕЛЬНОСТЬ СИМВОЛОВ.


      3.3.1. ЦЕЛЫЕ КОНСТАНТЫ


      ЦЕЛАЯ КОНСТАНТА - ЭТО ЧИСЛО, КОТОРОЕ НЕ ИМЕЕТ ДЕСЯТИЧНОЙ
  ТОЧКИ. КОНСТАНТЕ  МОЖЕТ  ПРЕДШЕСТВОВАТЬ   ЗНАК  ЧИСЛА. ЦЕЛАЯ
  КОНСТАНТА ИНТЕРПРЕТИРУЕТСЯ  КАК  ДЕСЯТИЧНОЕ  ЧИСЛО  И  ИМЕЕТ
  СЛЕДУЮЩИЙ ВИД:

          SNN

  ГДЕ

  S
       - ЗНАК ЧИСЛА;

  NN   - ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕСЯТИЧНЫХ ЦИФР.

      ЛЕВЫЕ НЕЗНАЧАЩИЕ НУЛИ (ЕСЛИ ОНИ ЕСТЬ) ИГНОРИРУЮТСЯ.

      ОТРИЦАТЕЛЬНОЙ   ЦЕЛОЙ   КОНСТАНТЕ  ДОЛЖЕН  ПРЕДШЕСТВОВАТЬ
  ЗНАК "МИНУС"; ЗНАК "ПЛЮС" ЯВЛЯЕТСЯ  НЕОБЯЗАТЕЛЬНЫМ  СИМВОЛОМ.
  ЕСЛИ КОНСТАНТА НЕ ИМЕЕТ ЗНАКА, ОНА СЧИТАЕТСЯ ПОЛОЖИТЕЛЬНОЙ.

      В  ЦЕЛУЮ  КОНСТАНТУ  НЕ  ДОЛЖНЫ  ВХОДИТЬ НИКАКИЕ СИМВОЛЫ,
  КРОМЕ ЦИФР ОТ 0 ДО 9 (ЗНАК ЧИСЛА СТАВИТСЯ ПЕРЕД КОНСТАНТОЙ).

      АБСОЛЮТНАЯ ВЕЛИЧИНА ЦЕЛОЙ КОНСТАНТЫ НЕ ПРЕВЫШАЕТ 32767.

      ПРАВИЛЬНЫЕ ЗАПИСИ ЦЕЛОЙ КОНСТАНТЫ:

                  0
               -127
             +32123

      НЕ ПРАВИЛЬНЫЕ ЗАПИСИ ЦЕЛОЙ КОНСТАНТЫ:

               99999999999   (СЛИШКОМ ВЕЛИКА)
               3.14          (НЕ ДОПУСКАЕТСЯ ИСПОЛЬЗОВАНИЕ
               32,767        ДЕСЯТИЧНОЙ ТОЧКИ И ЗАПЯТОЙ)


                          - 15 -

                      00014-01.35.02


       3.3.2. ВЕЩЕСТВЕННЫЕ КОНСТАНТЫ


       ВЕЩЕСТВЕННАЯ КОНСТАНТА - ЭТО ПОСЛЕДОВАТЕЛЬНОСТЬ  ДЕСЯТИЧ-
   НЫХ ЦИФР, ВКЛЮЧАЯ ОДНУ  ДЕСЯТИЧНУЮ ТОЧКУ. ДОПУСТИМЫ СЛЕДУЮЩИЕ
   ЗАПИСИ ВЕЩЕСТВЕННОЙ КОНСТАНТЫ:

       S.NN  ИЛИ  SNN.NN  ИЛИ  SNN.

   ГДЕ

   S
       - ЗНАК ЧИСЛА;

   NN  - ПОСЛЕДОВАТЕЛЬНОСТЬ ЦИФРОВЫХ СИМВОЛОВ.

       ДЕСЯТИЧНАЯ  ТОЧКА  МОЖЕТ  НАХОДИТЬСЯ В ЛЮБОМ МЕСТЕ ПОСЛЕ-
   ДОВАТЕЛЬНОСТИ. ЧИСЛО ЦИФР НЕ ОГРАНИЧИВАЕТСЯ,  НО  В  КАЧЕСТВЕ
   ЗНАЧАЩИХ РАССМАТРИВАЮТСЯ ТОЛЬКО ВОСЕМЬ СТАРШИХ ЦИФР.

       ВЕЩЕСТВЕННАЯ  КОНСТАНТА  МОЖЕТ  БЫТЬ  ЗАДАНА  КАК   ЦЕЛАЯ
   КОНСТАНТА В ЭКСПОНЕНЦИАЛЬНОЙ ФОРМЕ:

               ESNN

   ГДЕ

   Е
       - ИДЕНТИФИКАТОР ЭКСПОНЕНЦИАЛЬНОЙ ФОРМЫ;

   S   - ЗНАК СТЕПЕНИ;

   NN  - ОДНОЗНАЧНАЯ ИЛИ ДВУЗНАЧНАЯ ЦЕЛАЯ КОНСТАНТА.

       ЕСЛИ СТЕПЕНЬ ПОЛОЖИТЕЛЬНА, ЗНАК "ПЛЮС" МОЖЕТ БЫТЬ ОПУЩЕН.
   ПЕРЕД ОТРИЦАТЕЛЬНОЙ СТЕПЕНЬЮ ОБЯЗАТЕЛЬНО ДОЛЖЕН  СТОЯТЬ  ЗНАК
   "МИНУС".

       ЭТА ЗАПИСЬ ИЗОБРАЖАЕТ СТЕПЕНЬ ДЕСЯТИ, НА  КОТОРУЮ  ДОЛЖНА
   БЫТЬ УМНОЖЕНА ПРЕДШЕСТВУЮЩАЯ ЕЙ ЦЕЛАЯ ИЛИ ВЕЩЕСТВЕННАЯ  КОНС-
   ТАНТА (НАПРИМЕР,1Е6 ПРЕДСТАВЛЯЕТ ВЕЛИЧИНУ 1.0*10**6).

       ВЕЩЕСТВЕННАЯ КОНСТАНТА  ЗАНИМАЕТ  ДВА  СЛОВА (Т.Е. ЧЕТЫРЕ
   БАЙТА ПАМЯТИ БК-11) И ИНТЕРПРЕТИРУЕТСЯ КАК ВЕЩЕСТВЕННОЕ ЧИСЛО,
   ИМЕЮЩЕЕ СТЕПЕНЬ ТОЧНОСТИ НЕМНОГО БОЛЬШЕ, ЧЕМ СЕМЬ  ДЕСЯТИЧНЫХ
   ЦИФР.

       ЗА ИСКЛЮЧЕНИЕМ АЛГЕБРАИЧЕСКИХ ЗНАКОВ, ДЕСЯТИЧНОЙ ТОЧКИ  И
   БУКВЫ "Е" (ЕСЛИ ОНА ИСПОЛЬЗУЕТСЯ) ЗАПИСЬ ВЕЩЕСТВЕННОЙ КОНСТАН-
   ТЫ НЕ ДОЛЖНА СОДЕРЖАТЬ НИКАКИХ СИМВОЛОВ, КРОМЕ ЦИФР ОТ 0 ДО 9.

       ЕСЛИ В ЗАПИСИ ВЕЩЕСТВЕННОЙ КОНСТАНТЫ  ПРИСУТСТВУЕТ  БУКВА
   "Е", ТО ЗА НЕЙ ОБЯЗАТЕЛЬНО ДОЛЖНА СЛЕДОВАТЬ  ОДНОЗНАЧНАЯ  ИЛИ
   ДВУЗНАЧНАЯ  ЦЕЛАЯ  КОНСТАНТА.  ПОЛЕ  СТЕПЕНИ  НЕ  МОЖЕТ  БЫТЬ


                            - 16 -

                        00014-01.35.02

   ПРОПУЩЕНО, НО  МОЖЕТ  БЫТЬ  НУЛЕВЫМ.  АБСОЛЮТНАЯ     ВЕЛИЧИНА
   ВЕЩЕСТВЕННОЙ КОНСТАНТЫ НЕ  МОЖЕТ  БЫТЬ  МЕНЬШЕ  0.29*10**(-38)
   И НЕ МОЖЕТ БЫТЬ БОЛЬШЕ 1.7*10**38.

     ПРИМЕРЫ:

      ПРАВИЛЬНАЯ ЗАПИСЬ               НЕПРАВИЛЬНАЯ ЗАПИСЬ
      ВЕЩЕСТВЕННЫХ КОНСТАНТ           ВЕЩЕСТВЕННЫХ КОНСТАНТ

       3.14159                        1,234,567 (ЗАПЯТЫЕ ЗАПРЕЩЕНЫ)
       621712.                        325Е-75   (СЛИШКОМ МАЛА)
       -.00127                        -47.Е47   (СЛИШКОМ ВЕЛИКА)
       +5.0Е3                         100       (ОТСУТСТВУЕТ ДЕСЯ-
                                                 ТИЧНАЯ ТОЧКА)
       2Е-3                           ¤25.00    (ЗАПРЕЩЕНЫ СПЕЦИА-
                                                 ЛЬНЫЕ СИМВОЛЫ)


      3.3.3. КОНСТАНТЫ С ДВОЙНОЙ ТОЧНОСТЬЮ


      КОНСТАНТА  С  ДВОЙНОЙ   ТОЧНОСТЬЮ   ЗАНИМАЕТ  ЧЕТЫРЕ   СЛОВА
   ПАМЯТИ И ИНТЕРПРЕТИРУЕТСЯ КАК ВЕЩЕСТВЕННОЕ ЧИСЛО, ИМЕЮЩЕЕ ДО 17
   ЗНАЧАЩИХ ЦИФР.

      КОНСТАНТА С ДВОЙНОЙ ТОЧНОСТЬЮ МОЖЕТ БЫТЬ ПРЕДСТАВЛЕНА ТАКЖЕ,
   КАК И ВЕЩЕСТВЕННАЯ КОНСТАНТА, В ЭКСПОНЕНЦИАЛЬНОЙ ФОРМЕ С БУКВОЙ
   "D" ВМЕСТО "Е":

                DSNN

   ГДЕ

   NN
      - ОДНО - ИЛИ ДВУЗНАЧНАЯ ЦЕЛАЯ КОНСТАНТА;

   S  - ЗНАК СТЕПЕНИ.

      ЧИСЛО ЦИФР, КОТОРЫЕ МОГУТ ПРЕДШЕСТВОВАТЬ УКАЗАНИЮ СТЕПЕНИ, НЕ
   ЛИМИТИРОВАНО, ОДНАКО ТОЛЬКО 17 СТАРШИХ ЦИФР ЯВЛЯЮТСЯ ЗНАЧАЩИМИ.

      ОТРИЦАТЕЛЬНОЙ КОНСТАНТЕ С ДВОЙНОЙ ТОЧНОСТЬЮ ОБЯЗАТЕЛЬНО  ДОЛ-
   ЖЕН ПРЕДШЕСТВОВАТЬ ЗНАК "МИНУС". НАЛИЧИЕ ЗНАКА "ПЛЮС" ПЕРЕД ПО-
   ЛОЖИТЕЛЬНОЙ КОНСТАНТОЙ НЕ ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНЫМ.

      ПОЛЕ СТЕПЕНИ, СЛЕДУЮЩЕЕ ЗА БУКВОЙ "D", НЕ МОЖЕТ БЫТЬ ОПУЩЕНО,
   НО МОЖЕТ БЫТЬ НУЛЕВЫМ.

      АБСОЛЮТНАЯ ВЕЛИЧИНА КОНСТАНТЫ С УДВОЕННОЙ ТОЧНОСТЬЮ НЕ МОЖЕТ
   БЫТЬ МЕНЬШЕ, ЧЕМ 0.29Х10**(-38) И  НЕ  МОЖЕТ  БЫТЬ  БОЛЬШЕ, ЧЕМ
   1.7Х10**38.

      ПРИМЕРЫ:

                              - 17 -

                          00014-01.35.02


             1234567890д+5
             +2.71828182846182д00
             -72.5д-15
             1д0



        3.3.4. КОМПЛЕКСНЫЕ КОНСТАНТЫ


        КОМПЛЕКСНАЯ КОНСТАНТА ЗАПИСЫВАЕТСЯ В ВИДЕ ДВУХ ВЕЩЕСТ-
  ВЕННЫХ КОНСТАНТ, РАЗДЕЛЕННЫХ ЗАПЯТОЙ И ЗАКЛЮЧЕННЫХ В   СКОБ-
  КИ. ПЕРВАЯ ВЕЩЕСТВЕННАЯ КОНСТАНТА ПРЕДСТАВЛЯЕТ  ДЕЙСТВИТЕЛЬ-
  НУЮ ЧАСТЬ КОМПЛЕКСНОГО ЧИСЛА, А ВТОРАЯ   КОНСТАНТА -  МНИМУЮ
  ЧАСТЬ.

        КОМПЛЕКСНАЯ КОНСТАНТА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                (RC,RC)

  ГДЕ

  RC
        - ВЕЩЕСТВЕННАЯ КОНСТАНТА.

      СКОБКИ И ЗАПЯТАЯ ЯВЛЯЮТСЯ ЧАСТЬЮ ЗАПИСИ КОНСТАНТЫ  И  ИХ
  НАЛИЧИЕ ОБЯЗАТЕЛЬНО.

      КОМПЛЕКСНАЯ КОНСТАНТА ЗАНИМАЕТ  ЧЕТЫРЕ  ПОСЛЕДОВАТЕЛЬНЫХ
  СЛОВА ПАМЯТИ И ИНТЕРПРЕТИРУЕТСЯ КАК КОМПЛЕКСНОЕ ЧИСЛО.

      ПРИМЕРЫ ЗАПИСИ КОМПЛЕКСНОЙ КОНСТАНТЫ:

               (1.70391,-1.70391)
               (+12739Е3,0)




      3.3.5. ВОСЬМЕРИЧНЫЕ КОНСТАНТЫ



      ВОСЬМЕРИЧНАЯ   КОНСТАНТА  -  ЭТО  АЛЬТЕРНАТИВНЫЙ  СПОСОБ
   ПРЕДСТАВЛЕНИЯ ЦЕЛОЙ КОНСТАНТЫ, И ОНА  МОЖЕТ  ИСПОЛЬЗОВАТЬСЯ
   АНАЛОГИЧНЫМ СПОСОБОМ.


      ЗАПИСЬ ВОСЬМЕРИЧНОЙ КОНСТАНТЫ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                "NN

   ГДЕ

   NN
       - ПОСЛЕДОВАТЕЛЬНОСТЬ ВОСЬМЕРИЧНЫХ ЦИФР.

      ЗА  ИСКЛЮЧЕНИЕМ   ПРЕДШЕСТВУЮЩИХ  КОНСТАНТЕ  КАВЫЧЕК  ОНА
   ДОЛЖНА СОДЕРЖАТЬ ТОЛЬКО ЦИФРЫ ОТ 0 ДО 7. ВОСЬМЕРИЧНАЯ  КОНС-
   ТАНТА НЕ МОЖЕТ БЫТЬ МЕНЬШЕ НУЛЯ И БОЛЬШЕ 177777.


                            - 18 -

                       00014-01.35.02



   ПРИМЕРЫ.

    ПРАВИЛЬНЫЕ                       НЕПРАВИЛЬНЫЕ
    ВОСЬМЕРИЧНЫЕ КОНСТАНТЫ           ВОСЬМЕРИЧНЫЕ КОНСТАНТЫ

    "7213                            32767 (ОТСУТСТУЮТ КАВЫЧКИ)
       "1                             "184 (ЗАПРЕЩЕННЫЙ СИМВОЛ)
    "17776




       3.3.6. ЛОГИЧЕСКИЕ КОНСТАНТЫ



       ЛОГИЧЕСКАЯ  КОНСТАНТА  ПРИНИМАЕТ  ЛОГИЧЕСКОЕ   ЗНАЧЕНИЕ
   "ИСТИНА" ИЛИ "ЛОЖЬ". СЛЕДОВАТЕЛЬНО МОГУТ БЫТЬ  ТОЛЬКО   ДВЕ
   ЛОГИЧЕСКИЕ КОНСТАНТЫ, ОНИ ИМЕЮТ СЛЕДУЮЩИЙ ВИД:

        .TRUE.  И  .FALSE.

       ОГРАНИЧИВАЮЩИЕ  ТОЧКИ  ЯВЛЯЮТСЯ  ОБЯЗАТЕЛЬНОЙ СОСТАВНОЙ
   ЧАСТЬЮ КАЖДОЙ ЛОГИЧЕСКОЙ КОНСТАНТЫ.


      3.3.7. ТЕКСТОВЫЕ КОНСТАНТЫ


       ТЕКСТОВАЯ КОНСТАНТА - ЭТО ПОСЛЕДОВАТЕЛЬНОСТЬ  БУКВЕННО-
   ЦИФРОВЫХ СИМВОЛОВ, КОТОРОЙ ПРЕДШЕСТВУЕТ   УКАЗАТЕЛЬ   ЧИСЛА
   СИМВОЛОВ И БУКВА "Н".

       ТЕКСТОВАЯ КОНСТАНТА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:


         NНC1C2...CN

   ГДЕ

   N
       - КОНСТАНТА, УКАЗЫВАЮЩАЯ ЧИСЛО СИМВОЛОВ В ПОСЛЕДОВАТЕЛЬ-
         НОСТИ (  ВКЛЮЧАЯ  ПРОБЕЛЫ   И   ЗНАКИ    ТАБУЛЯЦИИ  );
         МОЖЕТ ИМЕТЬ ЗНАЧЕНИЕ ОТ  1  ДО  255. КАЖДАЯ  БУКВА C1,
         C2...CN ОБОЗНАЧАЕТ  НЕКОТОРЫЙ   СИМВОЛ   КОДА   КОИ-7.
         МАКСИМАЛЬНОЕ ЧИСЛО СИМВОЛОВ РАВНО 255.


       ТЕКСТОВАЯ КОНСТАНТА ЗАПОМИНАЕТСЯ КАК  ПОСЛЕДОВАТЕЛЬНОСТЬ
   БАЙТОВ  ПО  ОДНОМУ  СИМВОЛУ НА БАЙТ.  ТЕКСТОВЫЕ    КОНСТАНТЫ
   НЕ  ИМЕЮТ ОПРЕДЕЛЕННОГО ТИПА ДАННЫХ. ОНИ ПРИНИМАЮТ  ТИП ДАН-
   НЫХ, УКАЗАННЫХ В ОПЕРАТОРЕ FORMAT, ИЛИ  УСТАНАВЛИВАЮТСЯ   ПО
   ПРАВИЛАМ, ОПИСАННЫМ В ПОДПУНКТЕ 3.3.7.2.

       ПРИМЕРЫ ПРАВИЛЬНОЙ ЗАПИСИ ТЕКСТОВЫХ КОНСТАНТ:

            14H СЕГОДНЯ ДАТА:
            1HF


       ПРИМЕРЫ НЕПРАВИЛЬНОЙ ЗАПИСИ ТЕКСТОВЫХ КОНСТАНТ:


                           - 19 -

                      00014-01.35.02



         3HABSD (НЕВЕРНОЕ ЧИСЛО
         2HB :1  СИМВОЛОВ)


       3.3.7.1. БУКВЕННО-ЦИФРОВЫЕ ЛИТЕРАЛЫ


       БУКВЕННО-ЦИФРОВОЙ  ЛИТЕРАЛ  -  ЭТО  АЛЬТЕРНАТИВНАЯ ФОРМА
   ТЕКСОВОЙ КОНСТАНТЫ. БУКВЕННО-ЦИФРОВОЙ ЛИТЕРАЛ  ИМЕЕТ  СЛЕДУ-
   ЮЩИЙ ВИД:

            'C1C2C3C4...CN'

   ГДЕ

   C1, C2, C3,...CN

          - ПЕЧАТАЕМЫЕ СИМВОЛЫ КОДА КОИ-7.

         ПРИСУТСТВИЕ ОБОИХ ОГРАНИЧИВАЮЩИХ  АПОСТРОВОФ   ЯВЛЯЕТСЯ
   ОБЯЗАТЕЛЬНЫМ. МАКСИМАЛЬНОЕ ЧИСЛО СИМВОЛОВ В БУКВЕННО-ЦИФРОВОМ
   ЛИТЕРАЛЕ РАВНО 255.

         ВНУТРИ БУКВЕННО-ЦИФРОВОГО ЛИТЕРАЛА  СИМВОЛ "  АПОСТРОФ"
   ОБОЗНАЧАЕТСЯ ДВУМЯ ПОСЛЕДОВАТЕЛЬНЫМИ АПОСТРОФАМИ.


   ПРИМЕРЫ:


          'НАЗНАЧЬТЕ УСТРОЙСТВО ВВОДА ДАННЫХ'
          'ПРОГРАММА ''ТАБЛИЦА'' ЗАВЕРШЕНА'


       3.3.7.2. ПРАВИЛА,  ОПРЕДЕЛЯЮЩИЕ  ТИП  ДАННЫХ,
                ПРЕДСТАВЛЕННЫХ  В   ВИДЕ   ТЕКСТОВЫХ
                КОНСТАНТ


        ЕСЛИ В ВЫРАЖЕНИИ  ИСПОЛЬЗУЕТСЯ  БУКВЕННО-ЦИФРОВОЙ  ЛИТЕ-
   РАЛ ИЛИ ТЕКСТОВАЯ КОНСТАНТА, ТО  ТИП  ДАННОГО, КОТОРЫЙ  ПРЕД-
   ПОЛАГАЕТСЯ ДЛЯ ЭТОЙ КОНСТАНТЫ, РЕГУЛИРУЕТСЯ  СЛЕДУЮЩИМИ  ПРА-
   ВИЛАМИ:


         - В ОПЕРАТОРЕ  ПРИСВАИВАНИЯ, ТИП  ТЕКСТОВОЙ   КОНСТАНТЫ
           ОПРЕДЕЛЯЕТСЯ ТИПОМ ДАННЫХ ОПЕРАНДА, КОТОРОМУ  ПРИСВА-
           ИВАЕТСЯ ЭТА КОНСТАНТА.


   НАПРИМЕР:

      ОПЕРАТОР              ТИП ДАННЫХ          ДЛИНА КОНСТАНТЫ

      REL = 'ABCD'          REAL*4                  4
      IF(I.EQ.'XY') GO TO 3 INTEGER*2               2
      M = N - 'ABC'         INTEGER*2               2
      X = 'Z'               REAL*4                  4

           - В КОНТЕКСТАХ, ГДЕ  ИСПОЛЬЗУЕТСЯ  ОПРЕДЕЛЕННЫЙ  ТИП


                            - 20 -

                        00014-01.35.02


           ДАННЫХ (ОБЫЧНО  ЦЕЛОЕ  ЧИСЛО), ТИП ЭТИХ ДАННЫХ ПРЕД-
           ПОЛАГАЕТСЯ ДЛЯ КОНСТАНТЫ. НАПРИМЕР,  ПРИ  ИНДЕКСАЦИИ
           ЭЛЕМЕНТА МАССИВА:

      Y(IX)=Y('ABC')+3       INTEGER*2              2

          - ЕСЛИ КОНСТАНТА ИСПОЛЬЗУЕТСЯ В КАЧЕСТВЕ ФАКТИЧЕСКОГО
            АРГУМЕНТА, ТО ТИП КОНСТАНТЫ НЕ ОПРЕДЕЛЯЕТСЯ.
            НАПРИМЕР:

      CALL ARAC ('ABSDEFGHI')                       9

          - ВО  ВСЕХ  ДРУГИХ  КОНТЕКСТАХ   ПРЕДПОЛАГАЕТСЯ   ТИП
            INTEGER*2; НАПРИМЕР:

      IF ('AB') 1,2,3     INTEGER*2                 2
      I= 'C'-'A'          INTEGER*2                 2
      J= .NOT. 'B'        INTEGER*2                 2

          ЕСЛИ  ДЛИНА  КОНСТАНТЫ  МЕНЬШЕ  ДЛИНЫ, ПОДРАЗУМЕВАЕМОЙ
      ТИПОМ ДАННЫХ, ТО КОНСТАНТА  СПРАВА  ДОПОЛНЯЕТСЯ ПРОБЕЛАМИ.
      ЕСЛИ ДЛИНА КОНСТАНТЫ БОЛЬШЕ  ДЛИНЫ, ПОДРАЗУМЕВАЕМОЙ  ТИПОМ
      ДАННЫХ, ТО КОНСТАНТА УСЕКАЕТСЯ СПРАВА.


          3.3.8. ЗАПИСЬ КОНСТАНТЫ В КОДЕ RADIX-50


          RADIX-50 - ЭТО  СПЕЦИАЛЬНОЕ  ПРЕДСТАВЛЕНИЕ   ТЕКСТОВЫХ
      ДАННЫХ, ПРИ КОТОРОМ В СЛОВО ПАМЯТИ МОЖЕТ БЫТЬ ЗАПИСАНО  ДО
      ТРЕХ СИМВОЛОВ ИЗ НАБОРА  СИМВОЛОВ  RADIX-50   (ЯВЛЯЮЩЕГОСЯ
      ПОДМНОЖЕСТВОМ НАБОРА СИМВОЛОВ КОДА КОИ-7).КОНСТАНТЫ В КОДЕ
      RADIX-50 МОГУТ ИСПОЛЬЗОВАТЬСЯ ТОЛЬКО В ОПЕРАТОРАХ  "DATA".

          ЗАПИСЬ КОНСТАНТЫ В КОДЕ RADIX-50 ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                      NRC1C2C3...CN

      ГДЕ

      N
          - БЕЗЗНАКОВАЯ, НЕНУЛЕВАЯ  ЦЕЛАЯ   КОНСТАНТА,   КОТОРАЯ
            УКАЗЫВАЕТ ЧИСЛО СИМВОЛОВ В КОНСТАНТЕ;

      R   - ПРИЗНАК  КОНСТАНТЫ  В  КОДЕ RADIX-50;  C1,C2,...CN -
            СИМВОЛЫ ИЗ НАБОРА СИМВОЛОВ RADIX-50.

         МАКСИМАЛЬНОЕ ЧИСЛО СИМВОЛОВ РАВНО- ДВЕНАДЦАТИ. В  ЦЕЛОЙ
     КОНСТАНТЕ, УКАЗЫВАЮЩЕЙ НА ЧИСЛО СИМВОЛОВ, УЧИТЫВАЮТСЯ И ВСЕ
     ПРОБЕЛЫ, КОТОРЫЕ ВСТРЕЧАЮТСЯ В ПОСЛЕДОВАТЕЛЬНОСТИ  СИМВОЛОВ
     (СИМВОЛ ПРОБЕЛА ВХОДИТ В НАБОР СИМВОЛОВ RADIX-50).  СИМВОЛЫ
     КОДА RADIX-50 ПРИВЕДЕНЫ В ПРИЛОЖЕНИИ 1.

     ПРИМЕРЫ:

          4RABCD

                           - 21 -

                     00014 - 01.35.02


        4RNIC: (НЕВЕРНАЯ ЗАПИСЬ; ДВОЕТОЧИЕ НЕ ЯВЛЯЕТСЯ
               ДОПУСТИМЫМ СИМВОЛОМ RADIX-50)


     3.4. ПЕРЕМЕННЫЕ


     ПЕРЕМЕННАЯ - ЭТО ВЕЛИЧИНА, ОБРАЩЕНИЕ  К  КОТОРОЙ  ОСУ-
ЩЕСТВЛЯЕТСЯ  С  ПОМОЩЬЮ  ЕЕ  ИДЕНТИФИКАТОРА.  ИДЕНТИФИКАТОР
ПЕРЕМЕННОЙ МОЖЕТ ПРЕВЫШАТЬ ПО РАЗМЕРУ ШЕСТЬ ЗНАКОВ.  ОДНАКО
ИСПОЛЬЗУЮТСЯ ТОЛЬКО ПЕРВЫЕ  ШЕСТЬ  ЗНАКОВ,  КОТОРЫЕ  ДОЛЖНЫ
БЫТЬ УНИКАЛЬНЫ СРЕДИ ИМЕН ПЕРЕМЕННЫХ  ДАННОГО  ПРОГРАММНОГО
МОДУЛЯ. ЗНАЧЕНИЕ ПЕРЕМЕННОЙ МОЖЕТ МЫТЬ ИЗМЕНЕНО  ПРИСВАИВА-
НИЕМ ЕЙ НОВОГО  ЗНАЧЕНИЯ.  ПЕРЕМЕННЫЕ  КЛАССИФИЦИРУЮТСЯ  ПО
ТИПУ ДАННЫХ ТОЧНО ТАК ЖЕ, КАК И КОНСТАНТЫ.  ТИП  ПЕРЕМЕННОЙ
ОПРЕДЕЛЯЕТ, КАКОЙ ТИП ДАННЫХ ОНА ПРЕДСТАВЛЯЕТ.  ЕСЛИ  ПЕРЕ-
МЕННОЙ ПРИСВАИВАЮТСЯ ДАННЫЕ ДРУГОГО ТИПА, ТО  ОНИ  ПРЕОБРА-
ЗУЮТСЯ К ТИПУ ПЕРЕМЕННОЙ. ТИП ПЕРЕМЕННОЙ МОЖЕТ  БЫТЬ  УСТА-
НОВЛЕН ОПЕРАТОРАМИ ОПИСАНИЯ ТИПА,  ОПЕРАТОРАМИ  "IMPLICIT",
ЛИБО НЕЯВНЫМ ЗАДАНИЕМ ТИПА.

     ЕСЛИ ДВЕ ИЛИ БОЛЕЕ ПЕРЕМЕННЫХ ИСПОЛЬЗУЮТ ОДНУ И ТУ  ЖЕ
ОБЛАСТЬ ПАМЯТИ, ТО ЭТИ ПЕРЕМЕННЫЕ ЭКВИВАЛЕНТНЫ ДРУГ  ДРУГУ.
ЭКВИВАЛЕНТНОСТЬ МОЖЕТ БЫТЬ И ЧАСТИЧНОЙ, КОГДА ЧАСТЬ ОБЛАСТИ
ПАМЯТИ (НО НЕ ВСЯ ОБЛАСТЬ), СООТВЕТСТВУЮЩАЯ ОДНОЙ  ПЕРЕМЕН-
НОЙ, ЯВЛЯЕТСЯ В ТО ЖЕ ВРЕМЯ ЧАСТЬЮ ИЛИ ВСЕЙ ОБЛАСТЬЮ  ПАМЯ-
ТИ,  СООТВЕТСТВУЮЩЕЙ  ДРУГОЙ  ПЕРЕМЕННОЙ.   ЭКВИВАЛЕНТНОСТЬ
УСТАНАВЛИВАЕТСЯ ОПЕРАТОРАМИ "COMMON", "EQUIVALENCE"  И  ПРИ
ИСПОЛЬЗОВАНИИ ФАКТИЧЕСКИХ И ФОРМАЛЬНЫХ ПАРАМЕТРОВ В ОБРАЩЕ-
НИЯХ К ПОДПРОГРАММАМ. О ПЕРЕМЕННОЙ ГОВОРИТСЯ, ЧТО ОНА ОПРЕ-
ДЕЛЕНА, ЕСЛИ СООТВЕТСТВУЮЩАЯ  ЕЙ  ОБЛАСТЬ  ПАМЯТИ  СОДЕРЖИТ
ЗАДАННУЮ ВЕЛИЧИНУ ТОГО ЖЕ ТИПА, ЧТО И ИДЕНТИФИКАТОР.  ПЕРЕ-
МЕННАЯ МОЖЕТ БЫТЬ ОПРЕДЕЛЕНА ЕЩЕ  ДО  ВЫПОЛНЕНИЯ  ПРОГРАММЫ
ПОСРЕДСТВОМ ОПЕРАТОРА "DATA" ИЛИ ВО ВРЕМЯ ВЫПОЛНЕНИЯ  ПРОГ-
РАММЫ ПРИ ПОМОЩИ  ОПЕРАТОРОВ  ПРИСВАИВАНИЯ  ИЛИ  ОПЕРАТОРОВ
ВВОДА.

     ЕСЛИ ОДНОЙ И ТОЙ ЖЕ ОБЛАСТИ ПАМЯТИ СООТВЕТСТВУЮТ  (ИЛИ
ЧАСТИЧНО СООТВЕТСТВУЮТ) ПЕРЕМЕННЫЕ ОТЛИЧАЮЩИХСЯ  ТИПОВ,  ТО
ОПРЕДЕЛЕНИЕ ЗНАЧЕНИЯ ОДНОЙ ПЕРЕМЕННОЙ (НАПРИМЕР, ПРИСВАИВА-
НИЕМ) ПРИВОДИТ  К  ТОМУ,  ЧТО  ЗНАЧЕНИЯ  ДРУГИХ  ПЕРЕМЕННЫХ
ПЕРЕСТАЮТ БЫТЬ ОПРЕДЕЛЕННЫМИ.


     3.4.1. СПЕЦИФИКАЦИЯ ТИПА ДАННЫХ


     ОПЕРАТОРЫ ЯВНОГО ОПИСАНИЯ ТИПА ОПРЕДЕЛЯЮТ,  ЧТО  ПЕРЕ-
МЕННЫЕ БУДУТ ПРЕДСТАВЛЯТЬ УКАЗАННЫЕ ТИПЫ ДАННЫХ.

 НАПРИМЕР,
              COMPLEX VAR1
              DOUBLE PRECISION VAR2

     ЭТИ ОПЕРАТОРЫ УКАЗЫВАЮТ, ЧТО ПЕРЕМЕННОЙ "VAR1"  ДОЛЖНА








                         - 22 -

                   00014 - 01.35.02


СООТВЕТСТВОВАТЬ ОБЛАСТЬ ПАМЯТИ ДЛИНОЙ В  4  СЛОВА,  КОТОРАЯ
БУДЕТ СОДЕРЖАТЬ КОМПЛЕКСНЫЕ ДАННЫЕ, И ЧТО ПЕРЕМЕННОЙ "VAR2"
ДОЛЖНА СООТВЕТСТВОВАТЬ ОБЛАСТЬ ПАМЯТИ В 4 СЛОВА ДЛЯ  РАЗМЕ-
ЩЕНИЯ ДАННЫХ С ДВОЙНОЙ ТОЧНОСТЬЮ.

     ОПЕРАТОР НЕЯВНОГО ОПИСАНИЯ  ТИПА  "IMPLICIT"  ОБЛАДАЕТ
ШИРОКОЙ ОБЛАСТЬЮ ДЕЙСТВИЯ: ОН ОПРЕДЕЛЯЕТ, ЧТО  ЛЮБАЯ  ПЕРЕ-
МЕННАЯ С ИДЕНТИФИКАТОРОМ, НАЧИНАЮЩИМСЯ С БУКВЫ ИЗ НЕКОТОРО-
ГО НАБОРА, ДОЛЖНА ПРЕДСТАВЛЯТЬ ОПРЕДЕЛЕННЫЙ ТИП ДАННЫХ  ПРИ
ОТСУТСТВИИ ОПЕРАТОРОВ ЯВНОГО ОПИСАНИЯ ТИПА ЭТОЙ ПЕРЕМЕННОЙ.

     ТИП ПЕРЕМЕННОЙ  МОЖЕТ  БЫТЬ  ОПРЕДЕЛЕН  ЯВНЫМ  ОБРАЗОМ
ТОЛЬКО ОДИН РАЗ. ЯВНАЯ СПЕЦИФИКАЦИЯ  ТИПА  ИМЕЕТ  ПРИОРИТЕТ
НАД ОПИСАНИЕМ ТИПА, ЗАДАННЫМ ОПЕРАТОРОМ "IMPLICIT".

     ЕСЛИ В ПРОГРАММЕ НЕТ ОПЕРАТОРОВ "IMPLICIT", ВСЕ  ПЕРЕ-
МЕННЫЕ,   ИДЕНТИФИКАТОРЫ   КОТОРЫХ   НАЧИНАЮТСЯ   С    БУКВ
I,J,K,L,M,N, ПРЕДСТАВЛЯЮТ ПЕРЕМЕННЫЕ ЦЕЛОГО ТИПА.  ПЕРЕМЕН-
НЫЕ, ИДЕНТИФИКАТОРЫ КОТОРЫХ НАЧИНАЮТСЯ С ЛЮБОЙ ДРУГОЙ  БУК-
ВЫ, ПРЕДСТАВЛЯЮТ ВЕЩЕСТВЕННЫЕ ПЕРЕМЕННЫЕ. НАПРИМЕР:

 ВЕЩЕСТВЕННЫЕ ПЕРЕМЕННЫЕ      ЦЕЛЫЕ ПЕРЕМЕННЫЕ

      ALPHA                      KOUNT
      BETA                       ITEM
      TOTAN                      NTOTAL


     3.5. МАССИВЫ


     МАССИВ - ЭТО МНОЖЕСТВО  ПОСЛЕДОВАТЕЛЬНО  РАСПОЛОЖЕННЫХ
ЯЧЕЕК ПАМЯТИ, ИМЕЮЩИХ ОБЩЕЕ НАЗВАНИЕ - ИДЕНТИФИКАТОР  (ИМЯ)
МАССИВА. ОБРАЩЕНИЕ К  ОТДЕЛЬНЫМ  ОБЛАСТЯМ  ПАМЯТИ,  КОТОРЫЕ
НАЗЫВАЮТСЯ ЭЛЕМЕНТАМИ МАССИВА, ОСУЩЕСТВЛЯЕТСЯ ПО  ИДЕНТИФИ-
КАТОРУ МАССИВА, К КОТОРОМУ ДОБАВЛЯЕТСЯ СПИСОК ИНДЕКСОВ.

     МАССИВ ИМЕЕТ РАЗМЕРНОСТЬ В ЗАВИСИМОСТИ  ОТ  КОЛИЧЕСТВА
ИНДЕКСОВ. ИНДЕКСОВ МОЖЕТ БЫТЬ ОТ ОДНОГО ДО  СЕМИ.  ПРИМЕРОМ
МАССИВА, ИМЕЮЩЕГО  РАЗМЕРНОСТЬ  ЕДИНИЦА,  ЯВЛЯЕТСЯ  СТОЛБЕЦ
ЧИСЕЛ. НЕСКОЛЬКО СТОЛБЦОВ ЧИСЕЛ ПРЕДСТАВЛЯЕТ СОБОЙ  ДВУМЕР-
НЫЙ МАССИВ. ДЛЯ ОБРАЩЕНИЯ К ОПРЕДЕЛЕННОЙ ВЕЛИЧИНЕ ИЗ  ЭТОГО
МАССИВА ДОЛЖНЫ УКАЗЫВАТЬСЯ НОМЕР СТРОКИ И НОМЕР СТОЛБЦА,  В
КОТОРЫХ НАХОДИТСЯ ЭТА ВЕЛИЧИНА. ДЛЯ ОБРАЩЕНИЯ К ВЕЛИЧИНЕ ИЗ
ТРЕХМЕРНОГО МАССИВА ДОЛЖНЫ БЫТЬ ЗАДАНЫ НОМЕР СТРОКИ,  НОМЕР
СТОЛБЦА И НОМЕР СТРАНИЦЫ.

     МАССИВЫ ОПИСЫВАЮТСЯ ПРИ  ПОМОЩИ  СЛЕДУЮЩИХ  ОПЕРАТОРОВ
ФОРТРАН:

        - ОПЕРАТОРЫ ОПИСАНИЯ ТИПА ПЕРЕМЕННОЙ;
        - DIMENSION;
        - COMMON;
        - VIRTUAL.

     КАЖДЫЙ ИЗ ЭТИХ ОПЕРАТОРОВ СОДЕРЖИТ ОПИСАТЕЛЬ МАССИВА И
УКАЗЫВАЕТ ИДЕНТИФИКАТОР МАССИВА, ЕГО  РАЗМЕРНОСТЬ  И  ЧИСЛО










                         - 23 -

                   00014 - 01.35.02


ЭЛЕМЕНТОВ В КАЖДОМ ИЗМЕРЕНИИ.


     3.5.1. ОПИСАТЕЛИ МАССИВОВ


     ОПИСАТЕЛЬ  МАССИВА  ОПРЕДЕЛЯЕТ  ИДЕНТИФИКАТОР  МАССИВА
ВНУТРИ ПРОГРАММНОГО МОДУЛЯ И ЧИСЛО ПОЗИЦИЙ В КАЖДОМ ИЗМЕРЕ-
НИИ.

     ОПИСАТЕЛЬ МАССИВА ИМЕЕТ СЛЕДУЮЩИЙ ФОРМАТ:

          A(D[,D...])

 ГДЕ

A
       - ИДЕНТИФИКАТОР МАССИВА;

D
       - ЗНАЧЕНИЕ ИНДЕКСА.

     ЧИСЛО ИНДЕКСОВ ОПРЕДЕЛЯЕТ РАЗМЕРНОСТЬ  МАССИВА.  МИНИ-
МАЛЬНАЯ РАЗМЕРНОСТЬ МАССИВА РАВНА ЕДИНИЦЕ, А МАКСИМАЛЬНАЯ -
СЕМИ.

     ЗНАЧЕНИЕ ИНДЕКСА ОПРЕДЕЛЯЕТ  ЧИСЛО  ПОЗИЦИЙ  В  ДАННОМ
ИЗМЕРЕНИИ. НАПРИМЕР, ЕСЛИ ЗНАЧЕНИЕ ИНДЕКСА,  РАВНО  50,  ТО
ДАННОЕ ИЗМЕРЕНИЕ СОДЕРЖИТ 50 ПОЗИЦИЙ.  ИНДЕКСЫ  МОГУТ  БЫТЬ
КОНСТАНТАМИ ИЛИ ПЕРЕМЕННЫМИ. ПЕРЕМЕННЫЕ ИНДЕКСЫ ИСПОЛЬЗУЮТ-
СЯ ДЛЯ ОПРЕДЕЛЕНИЯ МАССИВОВ С ПЕРЕМЕННЫМИ ГРАНИЦАМИ.  ЧИСЛО
ЭЛЕМЕНТОВ В МАССИВЕ РАВНО  ПРОИЗВЕДЕНИЮ  ЧИСЕЛ  ПОЗИЦИЙ  ВО
ВСЕХ ИЗМЕРЕНИЯХ.

     ИДЕНТИФИКАТОР МАССИВА МОЖЕТ ВСТРЕЧАТЬСЯ ТОЛЬКО В ОДНОМ
ОПИСАТЕЛЕ МАССИВА ВНУТРИ ПРОГРАММНОЙ ЕДИНИЦЫ.


     3.5.2. СПИСКИ ИНДЕКСОВ


     ИДЕНТИФИКАТОР МАССИВА МОЖЕТ ДОПОЛНЯТЬСЯ СПИСКОМ ИНДЕК-
СОВ. СПИСОК ИНДЕКСОВ ПРЕДСТАВЛЯЕТ СОБОЙ ПЕРЕЧЕНЬ  ИНДЕКСНЫХ
ВЫРАЖЕНИЙ, ЗАКЛЮЧЕННЫХ В КРУГЛЫЕ  СКОБКИ,  КОТОРЫЙ  ОПРЕДЕ-
ЛЯЕТ, К КАКОМУ ИМЕННО ЭЛЕМЕНТУ МАССИВА ВЫПОЛНЯЕТСЯ  ОБРАЩЕ-
НИЕ.

     СПИСОК ИНДЕКСОВ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

              (S[,S]...)

 ГДЕ

S
       - ВЫРАЖЕНИЕ ИНДЕКСА.








                            - 24 -

                      00014 - 01.35.02




     В ЛЮБОМ ОБРАЩЕНИИ К  ИНДЕКСИРОВАННОМУ  МАССИВУ  ДОЛЖНО
ПРИСУТСТВОВАТЬ ПО ОДНОМУ ИНДЕКСНОМУ ВЫРАЖЕНИЮ  ДЛЯ  КАЖДОГО
ИЗМЕРЕНИЯ. НАПРИМЕР, ЧТОБЫ  ОБРАТИТЬСЯ  К  ЭЛЕМЕНТУ  ПЕРВОЙ
СТРОКИ  ТРЕТЬЕГО  СТОЛБЦА  ВТОРОЙ  СТРАНИЦЫ  МАССИВА  "COS"
ИСПОЛЬЗУЕТСЯ СЛЕДУЮЩАЯ ЗАПИСЬ:


              COS(1,2,3)


     КАЖДОЕ ИНДЕКСНОЕ ВЫРАЖЕНИЕ МОЖЕТ БЫТЬ ЛЮБЫМ ДОПУСТИМЫМ
АРИФМЕТИЧЕСКИМ ВЫРАЖЕНИЕМ. ЕСЛИ ЗНАЧЕНИЕ ИНДЕКСНОГО ВЫРАЖЕ-
НИЯ НЕ ПРИНАДЛЕЖИТ К ТИПУ "ЦЕЛЫЙ", ТО ОНО ПЕРЕД ИСПОЛЬЗОВА-
НИЕМ ПРЕОБРАЗУЕТСЯ К ЭТОМУ ТИПУ.



     3.5.3. РАСПОЛОЖЕНИЕ МАССИВОВ ПАМЯТИ



     ОБ ИЗМЕРЕНИЯХ МАССИВОВ ПРИНЯТО ГОВОРИТЬ КАК  О  "СТРО-
КАХ", "СТОЛБЦАХ", "СТРАНИЦАХ" И  Т.Д..  ОДНАКО  ИСПОЛНЯЮЩАЯ
СИСТЕМА ФОРТРАН ВСЕГДА ЗАПОМИНАЕТ МАССИВ В  ПАМЯТИ  В  ВИДЕ
НЕПРЕРЫВНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ЗНАЧЕНИЙ. МНОГОМЕРНЫЙ МАССИВ
ХРАНИТСЯ В ПАМЯТИ ТАКИМ ОБРАЗОМ, ЧТО ЧЕМ ЛЕВЕЕ ИНДЕКС,  ТЕМ
БЫСТРЕЕ ОН ИЗМЕНЯЕТСЯ ОТ ЯЧЕЙКИ К ЯЧЕЙКЕ.

     ПРИМЕР  РАСПОЛОЖЕНИЯ  ЭЛЕМЕНТОВ  ОДНОМЕРНОГО   МАССИВА
ARC(6) В ЯЧЕЙКАХ ПАМЯТИ С УСЛОВНОЙ НУМЕРАЦИЕЙ:




      НОМЕР ЯЧЕЙКИ         ЭЛЕМЕНТ МАССИВА

           1                  ARC(1)
           2                  ARC(2)
           3                  ARC(3)
           4                  ARC(4)
           5                  ARC(5)
           6                  ARC(6)













                              - 25 -

                        00014 - 01.35.02



     ПРИМЕР  РАСПОЛОЖЕНИЯ  ЭЛЕМЕНТОВ   ДВУМЕРНОГО   МАССИВА
TAN(3,4) В ЯЧЕЙКАХ ПАМЯТИ С УСЛОВНОЙ НУМЕРАЦИЕЙ:

      НОМЕР ЯЧЕЙКИ     ЭЛЕМЕНТ МАССИВА

           1               TAN(1,1)
           2               TAN(2,1)
           3               TAN(3,1)
           4               TAN(1,2)
           5               TAN(2,2)
           6               TAN(3,2)
           7               TAN(1,3)
           8               TAN(2,3)
           9               TAN(3,3)
          10               TAN(1,4)
          11               TAN(2,4)
          12               TAN(3,4)

     ПРИМЕР  РАСПОЛОЖЕНИЯ  ЭЛЕМЕНТОВ  ТРЕХМЕРНОГО   МАССИВА
COS(3,3,3) В ЯЧЕЙКАХ ПАМЯТИ С УСЛОВНОЙ НУМЕРАЦИЕЙ:

      НОМЕР ЯЧЕЙКИ     ЭЛЕМЕНТ МАССИВА

           1               COS(1,1,1)
           2               COS(2,1,1)
           3               COS(3,1,1)
           4               COS(1,2,1)
           5               COS(2,2,1)
           6               COS(3,2,1)
           7               COS(1,3,1)
           8               COS(2,3,1)
           9               COS(3,3,1)
          10               COS(1,1,2)
          11               COS(2,1,2)
          12               COS(3,1,2)
          13               COS(1,2,2)
          14               COS(2,2,2)
          15               COS(3,2,2)
          16               COS(1,3,2)
          17               COS(2,3,2)
          18               COS(3,3,2)
          19               COS(1,1,3)
          20               COS(2,1,3)
          21               COS(3,1,3)
          22               COS(1,2,3)
          23               COS(2,2,3)
          24               COS(3,2,3)
          25               COS(1,3,3)
          26               COS(2,3,3)
          27               COS(3,3,3)


                              - 26 -

                        00014 - 01.35.02


     3.5.4. ТИП ДАННЫХ МАССИВА


     ТИП ДАННЫХ МАССИВА ОПРЕДЕЛЯЕТСЯ ТАКИМ ЖЕ ОБРАЗОМ,  КАК
И ТИП ДАННЫХ ПЕРЕМЕННОЙ, Т.Е. ЛИБО НЕЯВНО - ПО ПЕРВОЙ БУКВЕ
ИДЕНТИФИКАТОРА, ЛИБО ЯВНЫМ ОБРАЗОМ -  С  ПОМОЩЬЮ  ОПЕРАТОРА
ОПИСАНИЯ ТИПА.

     ВСЕ ВЕЛИЧИНЫ ОДНОГО МАССИВА ИМЕЮТ ОДИН И  ТОТ  ЖЕ  ТИП
ДАННЫХ.  ЛЮБОЕ  ЗНАЧЕНИЕ,  ПРИСВОЕННОЕ  ЭЛЕМЕНТУ   МАССИВА,
ПРЕОБРАЗУЕТСЯ К ТИПУ ДАННЫХ МАССИВА. ЕСЛИ, НАПРИМЕР, МАССИВ
ОПИСАН ОПЕРАТОРОМ DOUBLE PRECISION, КОМПИЛЯТОР  РЕЗЕРВИРУЕТ
ДЛЯ КАЖДОГО ЭЛЕМЕНТА МАССИВА 4 СЛОВА В ПАМЯТИ. ЕСЛИ  ЛЮБОМУ
ИЗ ЭЛЕМЕНТОВ ЭТОГО МАССИВА ПРИСВАИВАЕТСЯ  ЗНАЧЕНИЕ  КАКОГО-
НИБУДЬ ДРУГОГО ТИПА, ОНО ПРЕОБРАЗУЕТСЯ К  ТИПУ  "С  ДВОЙНОЙ
ТОЧНОСТЬЮ".

     ФОРТРАН ЗАПОМИНАЕТ ЭЛЕМЕНТЫ МАССИВА ТИПА "LOGICAL*1" В
СМЕЖНЫХ БАЙТАХ.


     3.5.5. ОБРАЩЕНИЕ К МАССИВАМ БЕЗ  ИСПОЛЬЗОВАНИЯ
            СПИСКА ИНДЕКСОВ


     НИЖЕ ПЕРЕЧИСЛЕНЫ ТИПЫ ОПЕРАТОРОВ, В КОТОРЫХ  ИДЕНТИФИ-
КАТОР МАССИВА МОЖЕТ ПОЯВЛЯТЬСЯ БЕЗ СПИСКА ИНДЕКСОВ ДЛЯ УКА-
ЗАНИЯ ТОГО, ЧТО ДОЛЖЕН БЫТЬ ИСПОЛЬЗОВАН ИЛИ ОПРЕДЕЛЕН  ВЕСЬ
МАССИВ:

       - ОПЕРАТОРЫ ОПИСАНИЯ ТИПА;
       - COMMON;
       - DATA;
       - EQUIVALENCE;
       - FUNCTION;
       - SUBROUTINE;
       - ОПЕРАТОРЫ ВВОДА/ВЫВОДА.

     ИДЕНТИФИКАТОРЫ МАССИВА БЕЗ СПИСКА ИНДЕКСОВ МОГУТ ТАКЖЕ
ИСПОЛЬЗОВАТЬСЯ В КАЧЕСТВЕ ФАКТИЧЕСКИХ ПАРАМЕТРОВ. ИСПОЛЬЗО-
ВАНИЕ НЕИНДЕКСИРОВАННЫХ ИДЕНТИФИКАТОРОВ  МАССИВОВ  ВО  ВСЕХ
ОСТАЛЬНЫХ ТИПАХ ОПЕРАТОРОВ НЕДОПУСТИМО.


     3.5.6.  МАССИВЫ С ПЕРЕМЕННЫМИ ГРАНИЦАМИ


     ПРИ СОСТАВЛЕНИИ ПОДПРОГРАММ И ПОДПРОГРАММ-ФУНКЦИЙ  ДЛЯ
ОБРАБОТКИ ФОРМАЛЬНЫХ МАССИВОВ, У КОТОРЫХ  ВЕРХНИЕ  ЗНАЧЕНИЕ
ИНДЕКСОВ ДОЛЖНЫ МЕНЯТЬСЯ ОТ  ОДНОГО  ОБРАЩЕНИЯ  К  ДРУГОМУ,
УДОБНО ПОЛЬЗОВАТЬСЯ ТАК НАЗЫВАЕМЫМИ МАССИВАМИ С ПЕРЕМЕННЫМИ
ГРАНИЦАМИ. КОНКРЕТНЫЕ ЗНАЧЕНИЯ ИНДЕКСНЫХ ГРАНИЦ ЭТИХ МАССИ-
ВОВ УСТАНАВЛИВАЮТСЯ ПРИ КАЖДОМ ОБРАЩЕНИИ К ПОДПРОГРАММЕ ИЛИ
ПОДПРОГРАММЕ-ФУНКЦИИ. ДЛЯ ЭТОГО В ОПЕРАТОРЕ  ОПИСАНИЯ  РАЗ-










                           - 27 -

                     00014 - 01.35.02



МЕРНОСТЕЙ ВЕРХНИЕ ГРАНИЦЫ ИНДЕКСОВ ЗАДАЮТСЯ ЦЕЛЫМИ ПЕРЕМЕН-
НЫМИ (А НЕ ЦЕЛЫМИ КОНСТАНТАМИ). ЭТИ ЦЕЛЫЕ ПЕРЕМЕННЫЕ ДОЛЖНЫ
БЫТЬ ФОРМАЛЬНЫМИ ПАРАМЕТРАМИ. СООТВЕТСТВУЮШИЕ ИМ  ФАКТИЧЕС-
КИЕ ПАРАМЕТРЫ ДОЛЖНЫ ИМЕТЬ ОПРЕДЕЛЕННЫЕ ЗНАЧЕНИЯ  В  МОМЕНТ
ОБРАЩЕНИЯ К ПОДПРОГРАММЕ ИЛИ К ПОДПРОГРАММЕ-ФУНКЦИИ.  ТОГДА
ПРИ ЗАМЕНЕ ФОРМАЛЬНЫХ ПАРАМЕТРОВ  ФАКТИЧЕСКИМИ  ПАРАМЕТРАМИ
(В ПРОЦЕССЕ ВЫЗОВА) ОПРЕДЕЛЯЮТСЯ ФАКТИЧЕСКИЕ ГРАНИЦЫ МАССИ-
ВОВ.

     ЗНАЧЕНИЯ ФОРМАЛЬНЫХ ПАРАМЕТРОВ, ИСПОЛЬЗУЕМЫХ В  ОПИСА-
ТЕЛЯХ МАССИВОВ С ПЕРЕМЕННЫМИ ГРАНИЦАМИ, НЕ ДОЛЖНЫ ИЗМЕНЯТЬ-
СЯ ВНУТРИ ДАННОЙ ПОДПРОГРАММЫ.

     ДЛЯ МАССИВА С ПЕРЕМЕННЫМИ ГРАНИЦАМИ  ДОЛЖНО  СУЩЕСТВО-
ВАТЬ ОПИСАНИЕ ЭТОГО МАССИВА В ГОЛОВНОЙ ПРОГРАММЕ  И  ФАКТИ-
ЧЕСКИЙ РАЗМЕР МАССИВА,  ИСПОЛЬЗУЕМОГО  В  ПОДПРОГРАММЕ,  НЕ
ДОЛЖЕН ПРЕВЫШАТЬ РАЗМЕРА, ЗАДАННОГО В ГОЛОВНОЙ ПРОГРАММЕ.

     ФУНКЦИЯ В СЛЕДУЮЩЕМ ПРИМЕРЕ ВЫЧИСЛЯЕТ СУММУ  ЭЛЕМЕНТОВ
ДВУМЕРНОГО МАССИВА. СЛЕДУЕТ ОБРАТИТЬ ВНИМАНИЕ НА УПОТРЕБЛЕ-
НИЕ ПАРАМЕТРОВ "М" И "N" ДЛЯ УПРАВЛЕНИЯ ИТЕРАЦИЕЙ.

        FUNCTION SUM(A,M,N)
        DIMENSION A(M,N)
        SUM = 0.0
        DO 10, I = 1,M
        DO 10, J = 1,N
     10 SUM = SUM + A(I,J)
        RETURN
        END

НИЖЕ ПРИВЕДЕНЫ ПРИМЕРЫ ОБРАЩЕНИЯ К "SUM":

        DIMENSION A1(10,35), A2(3,56)
        SUM1 = SUM(A1,10,35)
        SUM2 = SUM(A2,3,56)
        SUM3 = SUM(A1,10,10)










                        - 28 -

                  00014 - 01.35.02


                  4. ВЫРАЖЕНИЯ


     ВЫРАЖЕНИЕ МОЖЕТ БЫТЬ КОНСТАНТОЙ ИЛИ  ПЕРЕМЕННОЙ,  ЛИБО
КОМБИНАЦИЕЙ ИЗ ЭТИХ КОМПОНЕНТ И  ОДНОГО  ИЛИ  БОЛЕЕ  ЗНАКОВ
ОПЕРАЦИЙ.

     ЗНАКИ  ОПЕРАЦИЙ  ПОКАЗЫВАЮТ,  КАКИЕ   ВЫЧИСЛЕНИЯ   НАД
ОСНОВНЫМИ КОМПОНЕНТАМИ  ДОЛЖНЫ  БЫТЬ  ВЫПОЛНЕНЫ  ДЛЯ  ТОГО,
ЧТОБЫ ПОЛУЧИТЬ ЗНАЧЕНИЕ ВЫРАЖЕНИЯ.

     В ФОРТРАН РАЗЛИЧАЮТСЯ ТРИ КЛАССА ВЫРАЖЕНИЙ:

       - АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ;
       - ВЫРАЖЕНИЯ ОТНОШЕНИЯ;
       - ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ.

     РЕЗУЛЬТАТОМ   ВЫЧИСЛЕНИЯ   АРИФМЕТИЧЕСКОГО   ВЫРАЖЕНИЯ
ЯВЛЯЕТСЯ ЧИСЛО. ВЫРАЖЕНИЯ ОТНОШЕНИЙ И ЛОГИЧЕСКИЕ  ВЫРАЖЕНИЯ
МОГУТ БЫТЬ  ИСТИННЫМИ  ИЛИ  ЛОЖНЫМИ  (Т.Е.  ИХ  РЕЗУЛЬТАТОМ
ЯВЛЯЮТСЯ ЛОГИЧЕСКИЕ ВЕЛИЧИНЫ).


     4.1. АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ


     АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ ФОРМИРУЮТСЯ ИЗ АРИФМЕТИЧЕСКИХ
ЭЛЕМЕНТОВ  И  ЗНАКОВ  АРИФМЕТИЧЕСКИХ  ОПЕРАЦИЙ.   ЗНАЧЕНИЕМ
ТАКОГО ВЫРАЖЕНИЯ ЯВЛЯЕТСЯ ЧИСЛО.

     К АРИФМЕТИЧЕСКИМ ЭЛЕМЕНТАМ ОТНОСЯТСЯ СЛЕДУЮЩИЕ:

       - ЧИСЛОВАЯ КОНСТАНТА;
       - ЧИСЛОВАЯ ПЕРЕМЕННАЯ;
       - ЭЛЕМЕНТ ЧИСЛОВОГО МАССИВА;
       - АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ В СКОБКАХ;
       - ОБРАЩЕНИЕ К АРИФМЕТИЧЕСКОЙ ФУНКЦИИ.

     ЗНАКИ  АРИФМЕТИЧЕСКИХ   ОПЕРАЦИЙ   ОПРЕДЕЛЯЮТ,   КАКИЕ
ВЫЧИСЛЕНИЯ НАДО  ВЫПОЛНИТЬ  НАД  ЗНАЧЕНИЯМИ  АРИФМЕТИЧЕСКИХ
ЭЛЕМЕНТОВ; В РЕЗУЛЬТАТЕ ВЫПОЛНЕНИЯ ЭТИХ ОПЕРАЦИЙ ПОЛУЧАЕТСЯ
ЧИСЛОВОЕ  ЗНАЧЕНИЕ.  В   ФОРТРАН   ИСПОЛЬЗУЮТСЯ   СЛЕДУЮЩИЕ
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ:

      **     (ВОЗВЕДЕНИЕ В СТЕПЕНЬ)
      *      (УМНОЖЕНИЕ)
      /      (ДЕЛЕНИЕ)
      +      (СЛОЖЕНИЕ И УНАРНЫЙ ПЛЮС)
      -      (ВЫЧИТАНИЕ И УНАРНЫЙ МИНУС)

     ВЫШЕПЕРЕЧИСЛЕННЫЕ   ОПЕРАЦИИ   НАЗЫВАЮТСЯ    БИНАРНЫМИ
ОПЕРАЦИЯМИ, ТАК КАК КАЖДАЯ ИЗ НИХ ИСПОЛЬЗУЕТСЯ В  СОЧЕТАНИИ
С ДВУМЯ ЭЛЕМЕНТАМИ. СИМВОЛЫ "+"  И  "-"  МОГУТ  КРОМЕ  ТОГО
ИСПОЛЬЗОВАТЬСЯ  КАК  ЗНАКИ  УНАРНЫХ  ОПЕРАЦИЙ,  КОГДА   ОНИ









                       - 29 -

                 00014 - 01.35.02


ПОМЕЩАЮТСЯ НЕПОСРЕДСТВЕННО ПЕРЕД АРИФМЕТИЧЕСКИМ ЭЛЕМЕНТОМ.

     ЛЮБАЯ АРИФМЕТИЧЕСКАЯ ОПЕРАЦИЯ МОЖЕТ БЫТЬ  ИСПОЛЬЗОВАНА
В СОЧЕТАНИИ С ЛЮБЫМ ДОПУСТИМЫМ АРИФМЕТИЧЕСКИМ ЭЛЕМЕНТОМ, ЗА
ИСКЛЮЧЕНИЕМ НЕКОТОРЫХ ОГРАНИЧЕНИЙ, УКАЗАННЫХ НИЖЕ.

     ПЕРЕМЕННОЙ ИЛИ ЭЛЕМЕНТУ МАССИВА ДОЛЖНО БЫТЬ  ПРИСВОЕНО
ЗНАЧЕНИЕ ПЕРЕД ТЕМ, КАК ИХ  ИСПОЛЬЗОВАТЬ  В  АРИФМЕТИЧЕСКОМ
ВЫРАЖЕНИИ.

     ТАБЛ. 2 ИЛЛЮСТРИРУЕТ ДОПУСТИМЫЕ СОЧЕТАНИЯ ТИПОВ ДАННЫХ
ОСНОВАНИЯ И ПОКАЗАТЕЛЯ СТЕПЕНИ  (ЭКСПОНЕНТЫ)  ДЛЯ  ОПЕРАЦИИ
ВОЗВЕДЕНИЯ В СТЕПЕНЬ.

                                              ТАБЛИЦА 2
 --------------------------------------------------------
                !      ПОКАЗАТЕЛЬ СТЕПЕНИ
 ОСНОВАНИЕ      !----------------------------------------
                !ЦЕЛЫЙ!ВЕШЕСТВ.!  ДВ.ТОЧН.!КОМПЛЕКСНЫЙ
 --------------------------------------------------------
 ЦЕЛОЕ          ! ДА  !  НЕТ   !   НЕТ    !    НЕТ
 ВЕЩЕСТВЕННОЕ   ! ДА  !  ДА    !   ДА     !    НЕТ
 С ДВ.ТОЧНОСТЬЮ ! ДА  !  ДА    !   ДА     !    НЕТ
 КОМПЛЕКСНОЕ    ! ДА  !  НЕТ   !   НЕТ    !    НЕТ

     ОТРИЦАТЕЛЬНЫЙ ЭЛЕМЕНТ МОЖНО ВОЗВОДИТЬ ТОЛЬКО  В  ЦЕЛУЮ
СТЕПЕНЬ;  ЭЛЕМЕНТ,   ИМЕЮЩИЙ   НУЛЕВОЕ   ЗНАЧЕНИЕ,   НЕЛЬЗЯ
ВОЗВОДИТЬ В НУЛЕВУЮ СТЕПЕНЬ.

     В ЛЮБОМ ДОПУСТИМОМ СТЕПЕННОМ ВЫРАЖЕНИИ РЕЗУЛЬТАТ ИМЕЕТ
ВСЕГДА ТАКОЙ ЖЕ ТИП ДАННЫХ, ЧТО И ОСНОВАНИЕ, ЗА ИСКЛЮЧЕНИЕМ
СЛУЧАЯ ОПЕРАЦИИ С  ВЕЩЕСТВЕННЫМ  ОСНОВАНИЕМ  И  ПОКАЗАТЕЛЕМ
СТЕПЕНИ, ИМЕЮЩИМ ДВОЙНУЮ ТОЧНОСТЬ. В ЭТОМ СЛУЧАЕ  РЕЗУЛЬТАТ
ИМЕЕТ ДВОЙНУЮ ТОЧНОСТЬ.

     АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ ВЫЧИСЛЯЮТСЯ В ПОРЯДКЕ  УБЫВА-
НИЯ ПРИОРИТЕТНОСТИ ОПЕРАЦИЙ: "**" ИМЕЕТ  ПЕРВЫЙ  ПРИОРИТЕТ,
"*" И "/" - ВТОРОЙ ПРИОРИТЕТ, "+" И "-" - ТРЕТИЙ ПРИОРИТЕТ.

     В ТЕХ СЛУЧАЯХ, КОГДА ИМЕЕТСЯ ДВЕ ИЛИ БОЛЕЕ ОПЕРАЦИЙ  С
ОДИНАКОВЫМ ПРИОРИТЕТОМ (ТАКИЕ, НАПРИМЕР, КАК  "+"  И  "-"),
ОНИ  МОГУТ  ВЫПОЛНЯТЬСЯ   В   ЛЮБОМ   ПОРЯДКЕ,   ВЫБИРАЕМОМ
КОМПИЛЯТОРОМ (ДЛЯ  ОБЕСПЕЧЕНИЯ  ОПТИМАЛЬНОСТИ  ВЫЧИСЛЕНИЯ).
ЭКСПОНЕНЦИАЛЬНЫЕ  ВЫРАЖЕНИЯ,  ОДНАКО,   ВЫЧИСЛЯЮТСЯ   СЛЕВА
НАПРАВО. НАПРИМЕР, "А ** В ** С" ВЫЧИСЛЯЕТСЯ, КАК "(А **  В)
** С".


     4.1.1. ПРИМЕНЕНИЕ СКОБОК


     ДЛЯ  ИЗМЕНЕНИЯ  ОБЫЧНОГО  ПОРЯДКА   ВЫЧИСЛЕНИЙ   МОГУТ
ИСПОЛЬЗОВАТЬСЯ СКОБКИ.  ВЫРАЖЕНИЕ,  ЗАКЛЮЧЕННОЕ  В  СКОБКИ,
РАССМАТРИВАЕТСЯ КАК ОТДЕЛЬНЫЙ АРИФМЕТИЧЕСКИЙ  ЭЛЕМЕНТ.  ЭТО
ОЗНАЧАЕТ, ЧТО ВНАЧАЛЕ ВЫЧИСЛЯЕТСЯ ЕГО ЗНАЧЕНИЕ, А ЗАТЕМ ЭТО
ЗНАЧЕНИЕ  ИСПОЛЬЗУЕТСЯ   В   ВЫЧИСЛЕНИИ   ВЫРАЖЕНИЯ.   НИЖЕ
ПРИВЕДЕНЫ ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СКОБОК.  ЦИФРЫ  ПОД  ЗНАКОМ









                         - 30 -

                   00014 - 01.35.02

ОПЕРАЦИЙ   УКАЗЫВАЮТ   ПОРЯДОК,   В   КОТОРОМ   ВЫПОЛНЯЮТСЯ
ВЫЧИСЛЕНИЯ.

              4 + 3 * 2 - 6 / 2 = 7
                3   1   4   2

              (4 + 3) * 2 - 6 / 2 = 11
                 1    2   4   3

              (4 + 3 * 2 - 6) / 2 = 2
                 2   1   3    4

              ((4 + 3) * 2 - 6) / 2 = 4
                  1    2   3    4

     ВЫЧИСЛЕНИЕ   ВЫРАЖЕНИЙ,   НАХОДЯЩИХСЯ    В    СКОБКАХ,
ПОДЧИНЯЕТСЯ ОБЫЧНОМУ ПОРЯДКУ ПРИОРИТЕТОВ.

     НЕСУЩЕСТВЕННЫЕ СКОБКИ, ТАКИЕ КАК В ВЫРАЖЕНИИ "4 + (3 *
2) - (6/2)" НЕ ОКАЗЫВАЮТ  НИКАКОГО  ВЛИЯНИЯ  НА  ВЫЧИСЛЕНИЕ
ВЫРАЖЕНИЯ.

     ИСПОЛЬЗОВАНИЕ   СКОБОК   ДЛЯ    ОПРЕДЕЛЕНИЯ    ПОРЯДКА
ВЫЧИСЛЕНИЙ ЧАСТО ОКАЗЫВАЕТСЯ ВАЖНЫМ В ПРОГРАММАХ  ОБРАБОТКИ
ЧИСЕЛ  С  ВЫСОКОЙ  СТЕПЕНЬЮ  ТОЧНОСТИ.   ПОСЛЕДОВАТЕЛЬНОСТИ
ВЫЧИСЛЕНИЙ, АЛГЕБРАИЧЕСКИ ЭКВИВАЛЕНТНЫЕ ДРУГ  ДРУГУ,  МОГУТ
БЫТЬ  НЕЭКВИВАЛЕНТНЫМИ  ПО  СТЕПЕНИ   ТОЧНОСТИ   ВЫЧИСЛЕНИЙ
(ВСЛЕДСТВИИ ПЕРЕНОСОВ И ПОТЕРЬ МЛАДШИХ РАЗРЯДОВ).


     4.1.2. ТИП ЗНАЧЕНИЯ АРИФМЕТИЧЕСКОГО ВЫРАЖЕНИЯ


     ЕСЛИ ВСЕ ЭЛЕМЕНТЫ АРИФМЕТИЧЕСКОГО ВЫРАЖЕНИЯ ИМЕЮТ ОДИН
И ТОТ ЖЕ ТИП, ТО РЕЗУЛЬТАТ ВЫРАЖЕНИЯ БУДЕТ  ИМЕТЬ  ЭТОТ  ЖЕ
ТИП. ЕСЛИ В ВЫРАЖЕНИИ ИМЕЮТСЯ ЭЛЕМЕНТЫ РАЗЛИЧНЫХ ТИПОВ,  ТО
ВЫЧИСЛЕНИЕ ЭТОГО ВЫРАЖЕНИЯ И  ТИП  РЕЗУЛЬТИРУЮЩЕЙ  ВЕЛИЧИНЫ
ЗАВИСЯТ ОТ РАНГА, СООТВЕТСТВУЮЩЕГО ТИПУ ДАННЫХ. РАНГИ ТИПОВ
ДАННЫХ СЛЕДУЮЩИЕ:

          ЛОГИЧЕСКИЙ =1 (НИЗКИЙ);
               ЦЕЛЫЙ =2;
        ВЕЩЕСТВЕННЫЙ =3;
 С ДВОЙНОЙ ТОЧНОСТЬЮ =4;
         КОМПЛЕКСНЫЙ =5 (ВЫСОКИЙ).

     ТИП  РЕЗУЛЬТАТА  ОПЕРАЦИИ  НАД  ДВУМЯ  АРИФМЕТИЧЕСКИМИ
ЭЛЕМЕНТАМИ РАЗЛИЧНОГО ТИПА ТАКОЙ ЖЕ, КАК  И  У  ЭЛЕМЕНТА  С
НАИБОЛЕЕ ВЫСОКИМ РАНГОМ. ТИП ЗНАЧЕНИЯ ВЫРАЖЕНИЯ  ТАКОЙ  ЖЕ,
КАК  И  ТИП  РЕЗУЛЬТАТА  ПОСЛЕДНЕЙ  ОПЕРАЦИИ  В  ВЫЧИСЛЕНИИ
ДАННОГО  ВЫРАЖЕНИЯ.  СПОСОБ   ОПРЕДЕЛЕНИЯ   ТИПА   ЗНАЧЕНИЯ
ВЫРАЖЕНИЯ ЗАКЛЮЧАЕТСЯ В СЛЕДУЮЩЕМ:

 ЦЕЛЫЕ ОПЕРАЦИИ

       - ЦЕЛЫЕ  ОПЕРАЦИИ  ВЫПОЛНЯЮТСЯ  ТОЛЬКО  НАД   ЦЕЛЫМИ
         ЭЛЕМЕНТАМИ;  КОГДА  В   АРИФМЕТИЧЕСКОМ   КОНТЕКСТЕ
                               - 31 -

                           00014-01.35.02


                ВСТРЕЧАЮТСЯ   ВОСЬМЕРИЧНЫЕ   КОНСТАНТЫ И ЛОГИЧЕСКИЕ
                ОБ'ЕКТЫ ,   ОНИ   РАССМАТРИВАЮТСЯ   КАК   ЦЕЛЫЕ;  В
                АРИФМЕТИКЕ   ЦЕЛЫХ   ЧИСЕЛ   ЛЮБАЯ   ДРОБНАЯ ЧАСТЬ,
                КОТОРАЯ    МОЖЕТ    БЫТЬ    РЕЗУЛЬТАТОМ     ДЕЛЕНИЯ
                ОТБРАСЫВАЕТСЯ,   А   НЕ  ОКРУГЛЯЕТСЯ;     НАПРИМЕР,
                ЗНАЧЕНИЕ ВЫРАЖЕНИЯ

                        1/3  +  1/3  +  1/3

                 РАВНО НУЛЮ, А НЕ ЕДИНИЦЕ;

ВЕЩЕСТВЕННЫЕ ОПЕРАЦИИ

              - ВЕЩЕСТВЕННЫЕ   ОПЕРАЦИИ   ВЫПОЛНЯЮТСЯ   ТОЛЬКО  НАД
                ВЕЩЕСТВЕННЫМИ ЭЛЕМЕНТАМИ ЛИБО  НАД  КОМБИНАЦИЕЙ  ИЗ
                ВЕЩЕСТВЕННЫХ И ЦЕЛЫХ ЭЛЕМЕНТОВ;  ВСЕ ПРИСУТСТВУЮЩИЕ
                ЦЕЛЫЕ ЭЛЕМЕНТЫ ПРЕОБРАЗУЮТСЯ  К  ВЕЩЕСТВЕНОМУ  ТИПУ
                ДОБАВЛЕНИЕМ К КАЖДОМУ ИЗ НИХ  ДРОБНОЙ ЧАСТИ, РАВНОЙ
                НУЛЮ; ДНАКО НЕОБХОДИМО ЗАМЕТИТЬ,  ЧТО  В  ОПЕРАТОРЕ
                "Y = (I/J)*Х" НАД ВЕЛИЧИНАМИ "I" И  "J" ВЫПОЛНЯЕТСЯ
                ОПЕРАЦИЯ ЦЕЛОГО ДЕЛЕНИЯ, А НАД РЕЗУЛЬТАТОМ  ДЕЛЕНИЯ
                И   ПЕРЕМЕННОЙ   "Х"    ВЫПОЛНЯЕТСЯ    ВЕЩЕСТВЕННОЕ
                УМНОЖЕНИЕ;

ОПЕРАЦИИ С ДВОЙНОЙ ТОЧНОСТЬЮ

              - ЛЮБОЙ ВЕЩЕСТВЕННЫЙ ИЛИ ЦЕЛЫЙ ЭЛЕМЕНТ В  ОПЕРАЦИИ  С
                ДВОЙНОЙ ТОЧНОСТЬЮ ПРЕОБРАЗУЕТСЯ К  ТИПУ  С  ДВОЙНОЙ
                ТОЧНОСТЬЮ, ПРИЧЕМ  ИМЕЮЩИЙСЯ   ЭЛЕМЕНТ   СТАНОВИТСЯ
                СТАРШЕЙ   ЗНАЧАЩЕЙ    ЧАСТЬЮ   ДАННЫХ   С   ДВОЙНОЙ
                ТОЧНОСТЬЮ,  А  МЛАДШАЯ  ЗНАЧАЩАЯ  ЧАСТЬ ЗАПОЛНЯЕТСЯ
                НУЛЯМИ;   ПОСЛЕ  ЭТОГО   ВЫПОЛНЯЕТСЯ  ВЫЧИСЛЕНИЕ  С
                ДВОЙНОЙ ТОЧНОСТЬЮ.

        ПРИМЕЧАНИЕ. ПРЕОБРАЗОВАНИЕ   ВЕЩЕСТВЕННОГО    ЭЛЕМЕНТА    К
ТИПУ  ДВОЙНОЙ  ТОЧНОСТИ   ВОВСЕ  НЕ  УВЕЛИЧИВАЕТ  СТЕПЕНЬ  ТОЧНОСТИ
ВЫЧИСЛЕНИЯ   ЭТОГО   ЭЛЕМЕНТА.    НАПРИМЕР,   ВЕЩЕСТВЕННОЕ    ЧИСЛО
0.3333333         ПОСЛЕ      ПРЕОБРАЗОВАНИЯ      СТАНЕТ      ЧИСЛОМ
0.3333333000000000,   А   НЕ  ЧИСЛОМ    0.3333333333333333.   НУЖНО
ТАКЖЕ ОТМЕТИТЬ,    ЧТО   ВЕЩЕСТВЕННЫЕ   ЭЛЕМЕНТЫ     С      ДВОЙНОЙ
ТОЧНОСТЬЮ   ЯВЛЯЮТСЯ   ТОЛЬКО   ПРИБЛИЗИТЕЛЬНЫМИ    ПРЕДСТАВЛЕНИЯМИ
ФАКТИЧЕСКИХ  ЧИСЕЛ.     РЕЗУЛЬТИРУЮЩИЕ    ЗНАЧЕНИЯ     ВЕЩЕСТВЕННЫХ
ВЫРАЖЕНИЙ     ИЛИ     ВЫРАЖЕНИЙ    С    ДВОЙНОЙ     ТОЧНОСТЬЮ     В
ДЕЙСТВИТЕЛЬНОСТИ ТОЧНЫ  ЛИШЬ   НАСТОЛЬКО,    НАСКОЛЬКО    ПОЗВОЛЯЕТ
СТЕПЕНЬ ТОЧНОСТИ ЭТОГО ТИПА ДАННЫХ;

 КОМПЛЕКСНЫЕ ОПЕРАЦИИ

              - В ОПЕРАЦИЯХ, СОДЕРЖАЩИХ  ЛЮБОЙ КОМПЛЕКСНЫЙ ЭЛЕМЕНТ,
                ЦЕЛЫЕ ЭЛЕМЕНТЫ  ПРЕОБРАЗУЮТСЯ К ВЕЩЕСТВЕННОМУ ТИПУ,
                КАК   УКАЗАНО   ВЫШЕ;  ЭЛЕМЕНТЫ С ДВОЙНОЙ ТОЧНОСТЬЮ
                ПРЕОБРАЗУЮТСЯ   К   ВЕЩЕСТВЕННОМУ  ТИПУ ОКРУГЛЕНИЕМ
                МЛАДШЕЙ ЗНАЧАЩЕЙ ЧАСТИ;     ПОСЛЕ  ЭТОГО ПОЛУЧЕННЫЙ
                ВЕЩЕСТВЕННЫЙ   ЭЛЕМЕНТ         РАССМАТРИВАЕТСЯ  КАК
                ДЕЙСТВИТЕЛЬНАЯ   ЧАСТЬ   КОМПЛЕКСНОГО ЧИСЛА; МНИМАЯ
                ЧАСТЬ   ЭТОГО   ЧИСЛА   РАВНА   НУЛЮ;   ПОСЛЕ ЭТОГО
                ВЫРАЖЕНИЕ ВЫЧИСЛЯЕТСЯ С ИСПОЛЬЗОВАНИЕМ   АРИФМЕТИКИ
                КОМПЛЕКСНЫХ ЧИСЕЛ И РЕЗУЛЬТИРУЮЩЕЕ  ЗНАЧЕНИЕ  БУДЕТ




                              - 32 -

                          00014-01.35.02


                ТАКЖЕ КОМПЛЕКСНОГО ТИПА.



        4.2. ВЫРАЖЕНИЯ ОТНОШЕНИЙ


        ВЫРАЖЕНИЕ   ОТНОШЕНИЯ  СОСТОИТ   ИЗ   ДВУХ   АРИФМЕТИЧЕСКИХ
ВЫРАЖЕНИЙ,    РАЗДЕЛЕННЫХ    ОПЕРАЦИЕЙ    ОТНОШЕНИЯ.       ЗНАЧЕНИЕ
ДАННОГО    ВЫРАЖЕНИЯ   ЕСТЬ    ЛИБО   "ИСТИНА" , ЛИБО  "ЛОЖЬ"     В
ЗАВИСИМОСТИ   ОТ  ТОГО,  ВЫПОЛНЯЕТСЯ  ИЛИ  НЕТ  УКАЗАННОЕ ОТНОШЕНИЕ.

        ОПЕРАЦИИ ОТНОШЕНИЯ СЛЕДУЮЩИЕ:

           ЗНАК ОПЕРАЦИИ        ОТНОШЕНИЕ

             .LT.            МЕНЬШЕ
             .LE.            МЕНЬШЕ ИЛИ РАВНО
             .EQ.            РАВНО
             .NE.            НЕ РАВНО
             .GT.            БОЛЬШЕ
             .GE.            БЛЬШЕ ИЛИ РАВНО

        ОГРАНИЧИВАЮЩИЕ  ТОЧКИ  -  ЭТО  ЧАСТЬ  ЗНАКА  ОПЕРАЦИИ ОТНО-
ШЕНИЯ И ИХ НАЛИЧИЕ В ТЕКСТЕ ОБЯЗАТЕЛЬНО.

        К  КОМПЛЕКСНЫМ  ВЫРАЖЕНИЯМ    ПРИМЕНИМЫ  ТОЛЬКО   ОТНОШЕНИЯ
.EQ. И  .NE. .   ЕСЛИ   ПРИСУТСТВУЕТ   ОДНО  КОМПЛЕКСНОЕ ВЫРАЖЕНИЕ,
ТО   ВТОРОЕ   ВЫРАЖЕНИЕ     ПРЕОБРАЗУЕТСЯ   К   КОМПЛЕКСНОМУ  ТИПУ.
КОМПЛЕКСНЫЕ   ОБ'ЕКТЫ   РАВНЫ,    ЕСЛИ   СООТВЕТСТВЕННО   РАВНЫ  ИХ
ДЕЙСТВИТЕЛЬНЫЕ И МНИМЫЕ ЧАСТИ.

        В   ВЫРАЖЕНИИ   ОТНОШЕНИЯ    ПРЕЖДЕ    ВСЕГО    ВЫЧИСЛЯЕТСЯ
ЗНАЧЕНИЕ    АРИФМЕТИЧЕСКИХ    ВЫРАЖЕНИЙ.     ЗАТЕМ   ЭТИ   ВЕЛИЧИНЫ
СРАВНИВАЮТСЯ    ДЛЯ    ПРОВЕРКИ   ТОГО,   ВЫПОЛНЯЕТЯ ЛИ  ОТНОШЕНИЕ,
ЗАДАННОЕ ОПЕРАЦИЕЙ.   НАПРИМЕР, ВЫРАЖЕНИЕ

                APP  +  PEA .GT. PAR  +  ORA

УСТАНАВЛИВАЕТ      ОТНОШЕНИЕ      СЛЕДУЮЩЕГО     ВИДА:       "СУММА
ВЕЩЕСТВЕННЫХ    ПЕРЕМЕННЫХ   "APP"   И   "PEA"     БОЛЬШЕ     СУММЫ
ВЕЩЕСТВЕННЫХ   ПЕРЕМЕННЫХ  "PAR"   И   "ORA" .  ЕСЛИ  ЭТО СООТНОШЕ-
НИЕ  ВЫПОЛНЯЕТСЯ,   ЗНАЧЕНИЕ  ВЫРАЖЕНИЯ  РАВНО   "ИСТИНА",  А  ЕСЛИ
НЕТ - ТО "ЛОЖЬ".

        ВСЕ  ОПЕРАЦИИ   ОТНОШЕНИЯ   ИМЕЮТ   ОДИНАКОВЫЙ   ПРИОРИТЕТ.
СЛЕДОВАТЕЛЬНО,   ЕСЛИ   В   ВЫРАЖЕНИИ   ВСТРЕЧАЮТСЯ  ДВА ИЛИ  БОЛЕЕ
ВЫРАЖЕНИЙ   ОТНОШЕНИЯ,   ОПЕРАЦИИ   ОТНОШЕНИЯ   ВЫПОЛНЯЮТСЯ   СЛЕВА
НАПРАВО.    АРИФМЕТИЧЕСКИЕ    ОПЕРАЦИИ    ИМЕЮТ    БОЛЕЕ    ВЫСОКИЙ
ПРИОРИТЕТ,  ЧЕМ  ОПЕРАЦИИ  ОТНОШЕНИЯ.

        ДЛЯ    ИЗМЕНЕНИЯ    ПОРЯДКА    ВЫЧИСЛЕНИЙ    АРИФМЕТИЧЕСКИХ
ВЫРАЖЕНИЙ   В   ВЫРАЖЕНИИ   ОТНОШЕНИЯ  СКОБКИ   ИСПОЛЬЗУЕТСЯ  ТОЧНО
ТАКЖЕ,   КАК   И   В   ЛЮБОМ   ДРУГОМ   АРИФМЕТИЧЕСКОМ   ВЫРАЖЕНИИ.
ОДНАКО    ПОСКОЛЬКУ   АРИФМЕТИЧЕСКИЕ   ОПЕРАЦИИ   ВЫПОЛНЯЮТСЯ    ДО
ОПЕРАЦИИ  ОТНОШЕНИЯ,  ТО   ЗАКЛЮЧАТЬ   В    СКОБКИ   АРИФМЕТИЧЕСКОЕ
ВЫРАЖЕНИЕ   ЦЕЛИКОМ   НЕ ОБЯЗАТЕЛЬНО.


                              - 33 -

                          00014-01.35.02


        ЕСЛИ  В  ВЫРАЖЕНИИ  ОТНОШЕНИЯ   СРАВНИВАЮТЯ  ДВА  ВЫРАЖЕНИЯ
РАЗНЫХ   ТИПОВ   ДАННЫХ,   ПЕРЕД   ВЫПОЛНЕНИЕМ   СРАВНЕНИЯ ЗНАЧЕНИЯ
ВЫРАЖЕНИЯ,  ИМЕЮЩЕГО ТИП  БОЛЕЕ  НИЗКОГО   РАНГА   ПРЕОБРАЗУЕТСЯ  К
ТИПУ  БОЛЕЕ  ВЫСОКОГО  РАНГА.


        4.3. ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

        ЛОГИЧЕСКОЕ  ВЫРАЖЕНИЕ  МОЖЕТ  БЫТЬ   ОТДЕЛЬНЫМ   ЛОГИЧЕСКИМ
ЭЛЕМЕНТОМ  ИЛИ  КОМБИНАЦИЕЙ   ЛОГИЧЕСКИХ   ЭЛЕМЕНТОВ  И  ЛОГИЧЕСКИХ
ОПЕРАЦИЙ.  ЛОГИЧЕСКОЕ  ВЫРАЖЕНИЕ   ИМЕЕТ   ЗНАЧЕНИЕ  "ИСТИНА"   ИЛИ
"ЛОЖЬ".

        ЛОГИЧЕСКИЙ  ЭЛЕМЕНТ  МОЖЕТ  БЫТЬ  ОДНИМ  ИЗ   СЛЕДУЮЩИХ:

           - ЦЕЛАЯ ИЛИ ЛОГИЧЕСКАЯ КОНСТАНТА;
           - ЦЕЛАЯ ИЛИ ЛОГИЧЕСКАЯ ПЕРЕМЕННАЯ;
           - ЭЛЕМЕНТ ЦЕЛОГО ИЛИ ЛОГИЧЕСКОГО МАССИВА;
           - ВЫРАЖЕНИЕ ОТНОШЕНИЯ;
           - ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ, ЗАКЛЮЧЕННОЕ В СКОБКИ;
           - ОБРАЩЕНИЕ К ЦЕЛОЙ ИЛИ ЛОГИЧЕСКОЙ ФУНКЦИИ.

        ЛОГИЧЕСКИЕ ОПЕРАЦИИ СЛЕДУЮЩИЕ:

.AND.
      - ЛОГИЧЕСКАЯ    КОН'ЮНКЦИЯ    (ЛОГИЧЕСКОЕ    "И");  ВЫРАЖЕНИЕ
        ИСТИННО    ТОГДА   И    ТОЛЬКО   ТОГДА,  КОГДА И "А", И "В"
        ИСТИННЫ;

.OR.
      - ЛОГИЧЕСКАЯ        ДИЗ'ЮНКЦИЯ       (ЛОГИЧЕСКОЕ      "ИЛИ");
        НАПРИМЕР,      "A.OR.B";    ВЫРАЖЕНИЕ   ИСТИННО   ТОГДА   И
        ТОЛЬКО   ТОГДА,  КОГДА  ИСТИННО   ЛИБО   "A",   ЛИБО   "B",
        ЛИБО ОБА;

.ХOR.
      - ИСКЛЮЧАЮЩЕЕ   ИЛИ;     ПРИМЕР:    "A.ХOR.B";      ВЫРАЖЕНИЕ
        ИСТИННО,   ЕСЛИ   "A"   ИСТИННО,  А  "B"  ЛОЖНО, ЛИБО, ЕСЛИ
        "B"   ИСТИННО,   А   "A"   ЛОЖНО;   ВЫРАЖЕНИЕ  ЛОЖНО,  ЕСЛИ
        ОБА ЭЛЕМЕНТА ИМЕЮТ ОДИНАКОВОЕ ЗНАЧЕНИЕ;

.EQV.
      - ЛОГИЧЕСКАЯ   ЭКВИВАЛЕНТНОСТЬ;     НАПРИМЕР,      "A.EQV.B";
        ВЫРАЖЕНИЕ   ИСТИННО   ТОГДА   И   ТОЛЬКО ТОГДА,  КОГДА  "A"
        И    "B"    ИМЕЮТ     ОДИНАКОВЫЕ    ЛОГИЧЕСКИЕ    ЗНАЧЕНИЯ,
        БЕЗРАЗЛИЧНО, ИСТИНА   ИЛИ   ЛОЖЬ;

.NOT.
      - ЛОГИЧЕСКОЕ   ОТРИЦАНИЕ     (ЛОГИЧЕСКОЕ "НЕ");      НАПРИМЕР
        ".NOT.A";    ВЫРАЖЕНИЕ   ИСТИННО   ТОГДА  И  ТОЛЬКО  ТОГДА,
        КОГДА ЛОЖНО "A".

   ЕСЛИ   ВЫПОЛНЯЕТСЯ   ЛОГИЧЕСКАЯ      ОПЕРАЦИЯ   НАД  ЛОГИЧЕСКИМИ
ЭЛЕМЕНТАМИ,   РЕЗУЛЬТИРУЮЩАЯ   ВЕЛИЧИНА   БУДЕТ  ЛОГИЧЕСКОГО  ТИПА.
ЕСЛИ  ЛОГИЧЕСКАЯ   ОПЕРАЦИЯ  ВЫПОЛНЯЕТСЯ   НАД  ЦЕЛЫМИ  ЭЛЕМЕНТАМИ,



                              - 34 -

                          00014-01.35.02


ТО   ЕЕ   ВЫПОЛНЕНИЕ   ПРОИСХОДИТ  ПОРАЗРЯДНО НАД  СООТВЕТСТВУЮЩИМИ
РАЗРЯДАМИ      ВНУТРЕННЕГО   (ДВОИЧНОГО)    ПРЕДСТАВЛЕНИЯ     ЦЕЛЫХ
ЭЛЕМЕНТОВ.     РЕЗУЛЬТИРУЮЩАЯ    ВЕЛИЧИНА     ОТНОСИТСЯ    К   ТИПУ
"ЦЕЛЫЙ".       ЕСЛИ     В ЛОГИЧЕСКОЙ ОПЕРАЦИИ ЕСТЬ     ОПЕРАНДЫ КАК
ЦЕЛОГО,   ТАК   И   ЛОГИЧЕСКОГО   ТИПА,     ТО  ВНАЧАЛЕ  ЛОГИЧЕСКАЯ
ВЕЛИЧИНА   ПРЕОБРАЗУЕТСЯ   К   ЦЕЛОЙ   ВЕЛИЧИНЕ, А ЗАТЕМ   ОПЕРАЦИЯ
ВЫПОЛНЯЕТСЯ  ТАК  ЖЕ,   КАК  И  В   СЛУЧАЕ   ДВУХ  ЦЕЛЫХ ЭЛЕМЕНТОВ.
РЕЗУЛЬТАТ ИМЕЕТ ЦЕЛЫЙ ТИП.

        ВЫЧИСЛЕНИЕ    ЛОГИЧЕСКОГО    ВЫРАЖЕНИЯ  ПРОИСХОДИТ СОГЛАСНО
СТАРШИНСТВУ    ЕГО    ОПЕРАЦИЙ.    НЕКОТОРЫЕ   ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ
МОГУТ    БЫТЬ     ВЫЧИСЛЕНЫ   БЕЗ ВЫЧИСЛЕНИЯ ВСЕХ ПОДВЫРАЖЕНИЙ.
ПРИМЕР,    ЕСЛИ     "А"    РАВНО     ".FALSE.",    ТО     ВЫРАЖЕНИЕ
"A.AND.(F(Х,Y).GT.2.0).AND.W"     РАВНО     ".FALSE.".     ЗНАЧЕНИЕ
ЭТОГО     ВЫРАЖЕНИЯ     МОЖЕТ БЫТЬ  ОПРЕДЕЛЕНО ТОЛЬКО ПРОВЕРКОЙ "A"
БЕЗ     ВЫЧИСЛЕНИЯ   F(Х,Y).   ПРИ  ТАКОМ  МЕТОДЕ   ВЫЧИСЛЕНИЙ   НЕ
ТРЕБУЕТСЯ    ВЫЗОВ   ПОДПРОГРАММЫ   ФУНКЦИИ  "F",  И НЕ БУДУТ ИМЕТЬ
МЕСТА ДЕЙСТВИЯ, СВЯЗАННЫЕ С ВЫЗОВОМ.

        НИЖЕ   ПРИВЕДЕН   ПЕРЕЧЕНЬ   ВСЕХ   ОПЕРАЦИЙ, КОТОРЫЕ МОГУТ
ВСТРЕЧАТЬСЯ   В   ЛОГИЧЕСКОМ   ВЫРАЖЕНИИ,   И ПОРЯДОК,   В  КОТОРОМ
ОНИ ВЫПОЛНЯЮТСЯ.

        ОПЕРАЦИЯ              ВЫПОЛНЯЕТСЯ

          **                    ПЕРВОЙ
          *,/                   ВТОРОЙ
          +,-                   ТРЕТЬЕЙ
   ОПЕРАЦИЯ ОТНОШЕНИЯ           ЧЕТВЕРТОЙ
          .NOT.                 ПЯТОЙ
          .AND.                 ШЕСТОЙ
          .OR.                  СЕДЬМОЙ
       .XOR.,.EQV.              ВОСЬМОЙ


        ОПЕРАЦИИ   С   ОДИНАКОВЫМ   ПРИОРИТЕТОМ  ВЫПОЛНЯЮТСЯ  СЛЕВА
НАПРАВО.        НИЖЕ     ПРИВЕДЕН   ПРИМЕР   ЛОГИЧЕСКОГО ВЫРАЖЕНИЯ,
СОДЕРЖАЩЕГО ВЫРАЖЕНИЯ ОТНОШЕНИЙ.

        A*B + C*ABC.EQ.X*Y + DM*ZZ.AND. .NOT.K*B.GT.TT

        ЭТО ВЫРАЖЕНИЕ ВЫЧИСЛЯЕТСЯ В СЛЕДУЮЩЕМ ПОРЯДКЕ:

(((A*B)+(C*ABC)).EQ.((X*Y)+(DM*ZZ))).AND.(.NOT.((K*B)
.GT.TT))

        КАК   И   В    АРИФМЕТИЧЕСКИХ    ВЫРАЖЕНИЯХ  ДЛЯ  ИЗМЕНЕНИЯ
ОБЫЧНОГО    ПОРЯДКА    ВЫПОЛНЕНИЯ    ОПЕРАЦИЙ  МОГУТ ИСПОЛЬЗОВАТЬСЯ
СКОБКИ.

        ДВА   ЗНАКА   ЛОГИЧЕСКИХ   ОПЕРАЦИЙ  НЕ МОГУТ РАСПОЛАГАТЬСЯ
ПОДРЯД,   ЗА   ИСКЛЮЧЕНИЕМ   ТОГО   СЛУЧАЯ,   КОГДА ВТОРАЯ ОПЕРАЦИЯ
ЕСТЬ ".NOT." .


                               - 35 -

                          00014-01.35.02


                  5. ОПЕРАТОРЫ ЯЗЫКА ФОРТРАН-иж



        5.1. ОПЕРАТОРЫ ПРИСВАИВАНИЯ


        ОПЕНРАТОРЫ ПРИСВАИВАНИЯ ОПРЕДЕЛЯЮТ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ
ИЛИ ЭЛЕМЕНТА  МАССИВА  ПУТЕМ  ВЫЧИСЛЕНИЯ  НЕКОТОРОГО ВЫРАЖЕНИЯ
И ПРИСВАИВАНИЯ  РЕЗУЛЬТИРУЮЩЕГО  ЗНАЧЕНИЯ  ПЕРЕМЕННОЙ ИЛИ ЭЛЕ-
МЕНТУ МАССИВА.

        СУЩЕСТВУЕТ ТРИ ТИПА ОПЕРАТОРА ПРИСВАИВАНИЯ:

           - АРИФМЕТИЧЕСКИЙ;

           - ЛОГИЧЕСКИЙ;

           - ОПЕРАТОР "ассигн".



        5.1.1. АРИФМЕТИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАНИЯ

        АРИФМЕТИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАЕТ  ЗНАЧЕНИЕ  ВЫРАЖЕ-
НИЯ, РАСПОЛОЖЕННОГО   СПРАВА   ОТ  ЗНАКА РАВЕНСТВА, ПЕРЕМЕННОЙ
ИЛИ ЭЛЕМЕНТУ МАССИВА,   НАХОДЯЩЕМУСЯ   СЛЕВА ОТ ЗНАКА РАВЕНСТ-
ВА. ЕСЛИ У ПЕРЕМЕННОЙ   ДО   ЭТОГО БЫЛО КАКОЕ-ТО ЗНАЧЕНИЕ, ОНО
ТЕРЯЕТСЯ.

        АРИФМЕТИЧЕСКИЙ   ОПЕРАТОР ПРИСВАИВАНИЯ ИМЕЕТ СЛЕДУЮЩИЙ
ВИД:

                          в = а

ГДЕ

в
       - ИДЕНТИФИКАТОР   ЧИСЛОВОЙ   ПЕРЕМЕННОЙ ИЛИ ИДЕНТИФИКА-
         ТОР МАССИВА;

а
       - ВЫРАЖЕНИЕ.

        ЗНАК РАВЕНСТВА ЗДЕСЬ НЕ ОЗНАЧАЕТ "РАВНО", КАК ОБЫЧНО В
МАТЕМАТИКЕ. ОН ОЗНАЧАЕТ "ЗАМЕНЯЕТСЯ". ТАКИМ ОБРАЗОМ,    ОПЕРА-
ТОР   и=и+1   ОЗНАЧАЕТ:   "ТЕКУЩЕЕ  ЗНАЧЕНИЕ  ЦЕЛОЙ ПЕРЕМЕННОЙ
"и"  ЗАМЕНЯЕТСЯ  СУММОЙ  ЭТОГО ТЕКУЩЕГО ЗНАЧЕНИЯ И ЦЕЛОЙ КОНС-
ТАНТЫ "1".

        ХОТЯ  ИДЕНТИФИКАТОР  СЛЕВА ОТ ЗНАКА РАВЕНСТВА МОЖЕТ НЕ
БЫТЬ  ПРЕДВАРИТЕЛЬНО  ОПРЕДЕЛЕН,   ВСЕМ ИДЕНТИФИКАТОРАМ СПРАВА
ОТ   ЗНАКА   РАВЕНСТВА,  К КОТОРЫМ ИМЕЮТСЯ ОБРАЩЕНИЯ В ВЫРАЖЕ-



                              - 36 -

                          00014-01.35.02


НИИ, ПРЕДВАРИТЕЛЬНО ДОЛЖНЫ БЫТЬ ПРИСВОЕНЫ ЗНАЧЕНИЯ.

        РЕЗУЛЬТАТОМ ВЫРАЖЕНИЯ ДОЛЖНО БЫТЬ ЗНАЧЕНИЕ, УДОВЛЕТВО-
РЯЮЩЕЕ  ТРЕБОВАНИЯМ  ТИПА  ПЕРЕМЕННОЙ  ИЛИ  ЭЛЕМЕНТА  МАССИВА,
КОТОРЫМ ОНО ПРИСВАИВАЕТСЯ.    НАПРИМЕР,   ВЕЩЕСТВЕННОЕ ВЫРАЖЕ-
НИЕ,   РЕЗУЛЬТАТОМ   КОТОРОГО   ЯВЛЯЕТСЯ ВЕЛИЧИНА, ПРЕВЫШАЮЩАЯ
32767,   НЕДОПУСТИМО,   ЕСЛИ ОБ'ЕКТОМ СЛЕВА ОТ ЗНАКА РАВЕНСТВА
ЯВЛЯЕТСЯ ПЕРЕМЕННАЯ ТИПА "интегер*2".

        ЕСЛИ ТИП ПЕРЕМЕННОЙ ИЛИ ЭЛЕМЕНТА МАССИВА, НАХОДЯЩЕГОСЯ
СЛЕВА  ОТ  ЗНАКА   РАВЕНСТВА,  ТОЧНО ТАКОЙ ЖЕ, КАК У ВЫРАЖЕНИЯ
СПРАВА, ОПЕРАТОР НЕПОСРЕДСТВЕННО  ВЫПОЛНЯЕТ ПРИСВАИВАНИЕ.
ЕСЛИ   ТИПЫ   РАЗЛИЧАЮТСЯ,    ТО  ПЕРЕД ПРИСВАИВАНИЕМ ЗНАЧЕНИЕ
ВЫРАЖЕНИЯ   ПРЕОБРАЗУЮТСЯ  К  ТИПУ ОБ'ЕКТА, НАХОДЯЩЕГОСЯ СЛЕВА
ОТ ЗНАКА РАВЕНСТВА.

        ПРАВИЛА   ПРЕОБРАЗОВАНИЯ   ДЛЯ ОПЕРАТОРОВ ПРИСВАИВАНИЯ
СЛЕДУЮЩИЕ:

 ПЕРЕМЕННАЯ ИЛИ ЭЛЕМЕНТ МАССИВА "в" - ЦЕЛАЯ:

        - ЕСЛИ    РЕЗУЛЬТАТОМ   ВЫРАЖЕНИЯ  "а" ЯВЛЯЕТСЯ ЦЕЛАЯ,
          ЛОГИЧЕСКАЯ  ИЛИ  ВОСЬМЕРИЧНАЯ   КОНСТАНТА,  ТО   "в"
          ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ "а";

        - ЕСЛИ РЕЗУЛЬТАТОМ ВЫРАЖЕНИЯ  "а" ЯВЛЯЕТСЯ  ВЕЩЕСТВЕН-
          НАЯ КОНСТАНТА, ТО ЗНАЧЕНИЕ "а" УСЕКАЕТСЯ  ДО  ЦЕЛОГО
          И ПРИСВАИВАЕТСЯ "в";

        - ЕСЛИ  РЕЗУЛЬТАТОМ  ВЫРАЖЕНИЯ  "а" ЯВЛЯЕТСЯ КОНСТАНТА
          С ДВОЙНОЙ ТОЧНОСТЬЮ,  ТО  ЗНАЧЕНИЕ  "а" УСЕКАЕТСЯ ДО
          ЦЕЛОГО И ПРИСВАИВАЕТСЯ "в";

        - ЕСЛИ  РЕЗУЛЬТАТОМ  ВЫРАЖЕНИЯ  "а" ЯВЛЯЕТСЯ КОМПЛЕКС-
          НОЕ ЧИСЛО, ТО ДЕЙСТВИТЕЛЬНАЯ  ЧАСТЬ  "а"   УСЕКАЕТСЯ
          ДО ЦЕЛОГО  И  ПРИСВАИВАЕТСЯ "в". МНИМАЯ ЧАСТЬ "а" НЕ
          ИСПОЛЬЗУЕТСЯ;

 ПЕРЕМЕННАЯ ИЛИ ЭЛЕМЕНТ МАССИВА "в" - ВЕЩЕСТВЕННАЯ:

        - ЕСЛИ   РЕЗУЛЬТАТОМ   ВЫРАЖЕНИЯ  "а"  ЯВЛЯЕТСЯ ЦЕЛАЯ,
          ЛОГИЧЕСКАЯ   ИЛИ  ВОСМЕРИЧНАЯ КОНСТАНТА, ТО К ЗНАЧЕ-
          НИЮ   "а"   ДОБАВЛЯЕТСЯ  ДРОБНАЯ  ЧАСТЬ  (.0), И ОНО
          ПРИСВАИВАЕТСЯ "в";

        - ЕСЛИ  РЕЗУЛЬТАТОМ ВЫРАЖЕНИЯ  "а" ЯВЛЯЕТСЯ ВЕЩЕСТВЕН-
          НАЯ  КОНСТАНТА,  ТО  "в" ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ "а";

        - ЕСЛИ  РЕЗУЛЬТАТОМ  ВЫРАЖЕНИЯ  "а"  ЯВЛЯЕТСЯ  ЧИСЛО С
          ДВОЙНОЙ  ТОЧНОСТЬЮ,  ТО  "в"  ПРИСВАИВАЕТСЯ  СТАРШАЯ
          ЗНАЧАЩАЯ ЧАСТЬ "а";  МЛАДШАЯ ЧАСТЬ  "а" ОКРУГЛЯЕТСЯ;

        - ЕСЛИ  РЕЗУЛЬТАТОМ  ВЫРАЖЕНИЯ  "а" ЯВЛЯЕТСЯ КОМПЛЕКС-
          НОЕ   ЧИСЛО,  ТО  ДЕЙСТВИТЕЛЬНАЯ  ЧАСТЬ "а" ПРИСВАИ-
          ВАЕТСЯ "в"; МНИМАЯ ЧАСТЬ "а" НЕ ИСПОЛЬЗУЕТСЯ;

 ПЕРЕМЕННАЯ ИЛИ ЭЛЕМЕНТ МАССИВА "в" - С ДВОЙНОЙ ТОЧНОСТЬЮ:

        - ЕСЛИ  РЕЗУЛЬТАТОМ   ВЫРАЖЕНИЯ  "а"  ЯВЛЯЕТСЯ  ЦЕЛАЯ,


                              - 37 -

                          00014-01.35.02


          ЛОГИЧЕСКАЯ ИЛИ ВОСЬМЕРИЧНАЯ КОНСТАНТА,  ТО К ЗНАЧЕ-
          НИЮ "а" ДОБАВЛЯЕТСЯ   ДРОБНАЯ ЧАСТЬ   (.0),  И  ОНО
          ПРИСВАИВАЕТСЯ СТАРШЕЙ ЗНАЧАЩЕЙ ЧАСТИ "в" ;  МЛАДШАЯ
          ЗНАЧАЩАЯ ЧАСТЬ "в" РАВНА НУЛЮ;

        - ЕСЛИ РЕЗУЛЬТАТОМ ВЫРАЖЕНИЯ "а" ЯВЛЯЕТСЯ  ВЕЩЕСТВЕН-
          НАЯ КОНСТАНТА, ТО "а" ПРИСВАИВАЕТСЯ СТАРШЕЙ  ЗНАЧА-
          ЩЕЙ ЧАСТИ "в". МЛАДШАЯ ЗНАЧАЩАЯ ЧАСТЬ РАВНА НУЛЮ;

        - ЕСЛИ   РЕЗУЛЬТАТОМ   ВЫРАЖЕНИЯ "а" ЯВЛЯЕТСЯ ЧИСЛО С
          ДВОЙНОЙ  ТОЧНОСТЬЮ,   ТО "в" ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ
          "а";

        - ЕСЛИ  РЕЗУЛЬТАТОМ  ВЫРАЖЕНИЯ "а" ЯВЛЯЕТСЯ КОМПЛЕКС-
          НОЕ  ЧИСЛО,   ТО  ДЕЙСТВИТЕЛЬНАЯ ЧАСТЬ "а" ПРИСВАИ-
          ВАЕТСЯ СТАРШЕЙ ЧАСТИ "в".   МЛАДШАЯ  ЗНАЧАЩАЯ ЧАСТЬ
          "в" РАВНА НУЛЮ; МНИМАЯ ЧАСТЬ "а" НЕ ИСПОЛЬЗУЕТСЯ;

 ПЕРЕМЕННАЯ ИЛИ ЭЛЕМЕНТ МАССИВА "в" - КОМПЛЕКСНАЯ:

        - ЕСЛИ  РЕЗУЛЬТАТОМ   ВЫРАЖЕНИЯ  "а"  ЯВЛЯЕТСЯ ЦЕЛАЯ,
          ЛОГИЧЕСКАЯ   ИЛИ   ВОСЬМЕРИЧНАЯ   КОНСТАНТА, ТО "а"
          СНАБЖАЕТСЯ   ДРОБНОЙ   ЧАСТЬЮ (.0)  И ПРИСВАИВАЕТСЯ
          ДЕЙСТВИТЕЛЬНОЙ   ЧАСТИ  "в"; МНИМАЯ ЧАСТЬ "в" РАВНА
          0.0;

        - ЕСЛИ  РЕЗУЛЬТАТОМ ВЫРАЖЕНИЯ "а" ЯВЛЯЕТСЯ ВЕЩЕСТВЕН-
          НАЯ  КОНСТАНТА, ТО ОНА ПРИСВАИВАЕТСЯ ДЕЙСТВИТЕЛЬНОЙ
          ЧАСТИ "в" ; МНИМАЯ ЧАСТЬ "в" РАВНА 0.0;

        - ЕСЛИ   РЕЗУЛЬТАТОМ   ВЫРАЖЕНИЯ "а" ЯВЛЯЕТСЯ ЧИСЛО С
          ДВОЙНОЙ ТОЧНОСТЬЮ,   ТО  СТАРШАЯ ЗНАЧАЩАЯ ЧАСТЬ "а"
          ПРИСВАИВАЕТСЯ   ДЕЙСТВИТЕЛЬНОЙ   ЧАСТИ "в"; МЛАДШАЯ
          ЗНАЧАЩАЯ  ЧАСТЬ  "а"  ОКРУГЛЯЕТСЯ. МНИМАЯ ЧАСТЬ "в"
          РАВНА 0.0;

        - ЕСЛИ  РЕЗУЛЬТАТОМ  ВЫРАЖЕНИЯ "а" ЯВЛЯЕТСЯ КОМПЛЕКС-
          НОЕ ЧИСЛО,   ТО "в" ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ "а".

        ПРИМЕРЫ ЗАПИСИ ДОПУСТИМЫХ ОПЕРАТОРОВ:

  бета = -1./(2.*ь) + а*а/(4.*(ь*ь))
  п1 = 3.14159
  сум = сум + 1

        ПРИМЕРЫ ЗАПИСИ НЕДОПУСТИМЫХ ОПЕРАТОРОВ:

  3.14 = а - б   (ОБ'ЕКТ  В   ЛЕВОЙ  ЧАСТИ  ДОЛЖЕН БЫТЬ ПЕРЕ-
                  МЕННОЙ ИЛИ ЭЛЕМЕНТОМ МАССИВА);
  -й =1**4       (ОБ'ЕКТ  В   ЛЕВОЙ   ЧАСТИ  НЕ ДОЛЖЕН  ИМЕТЬ
                  ЗНАКА);
  алпха  = ((ь+6)*б*б/(ь-ы) (ЧИСЛО    ОТКРЫВАЮЩИХСЯ    СКОБОК
                  НЕ РАВНО ЧИСЛУ ЗАКРЫВАЮЩИХСЯ СКОБОК).



                              - 38 -

                          00014-01.35.02


        5.1.2. ЛОГИЧЕСКИЕ ОПЕРАТОРЫ ПРИСВАИВАНИЯ

        ЛОГИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАНИЯ ПОДОБЕН АРИФМЕТИЧЕС-
КОМУ  ОПЕРАТОРУ   ПРИСВАИВАНИЯ, НО ОН ОПЕРИРУЕТ С ЛОГИЧЕСКИМИ
ДАННЫМИ.   ЛОГИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАНИЯ ВЫЧИСЛЯЕТ ВЫРАЖЕ-
НИЕ, НАХОДЯЩЕЕСЯ   СПРАВА   ОТ ЗНАКА РАВЕНСТВА, И ПРИСВАИВАЕТ
РЕЗУЛЬТИРУЮЩУЮ ЛОГИЧЕСКУЮ    ВЕЛИЧИНУ ПЕРЕМЕННОЙ ИЛИ ЭЛЕМЕНТУ
МАССИВА, РАСПОЛОЖЕННОМУ СЛЕВА ОТ ЗНАКА РАВЕНСТВА.

        ЛОГИЧЕСКИЙ ОПЕРАТОР ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                      в = а

 ГДЕ

 в
      - ПЕРЕМЕННАЯ ИЛИ ЭЛЕМЕНТ МАССИВА ЛОГИЧЕСКОГО ТИПА;

 а
      - ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ.

        ПЕРЕМЕННАЯ ИЛИ ЭЛЕМЕНТ МАССИВА, СТОЯЩИЕ СЛЕВА ОТ ЗНАКА
РАВЕНСТВА,   ОБЯЗАНЫ ПРИНАДЛЕЖАТЬ К ТИПУ "логицал", ИХ ЗНАЧЕ-
НИЕ МОЖЕТ БЫТЬ  И НЕ ОПРЕДЕЛЕНО ЗАРАНЕЕ.

        ВСЕМ   ИДЕНТИФИКАТОРАМ,   ПРИСУТСТВУЮЩИМ  В ВЫРАЖЕНИИ,
ДОЛЖНЫ БЫТЬ ПРЕДВАРИТЕЛЬНО ПРИСВОЕНЫ ЧИСЛОВЫЕ   ИЛИ   ЛОГИЧЕС-
КИЕ ЗНАЧЕНИЯ. РЕЗУЛЬТАТ   ВЫЧИСЛЕНИЯ   ДОЛЖЕН  БЫТЬ ЛОГИЧЕСКОЙ
ВЕЛИЧИНОЙ.

 ПРИМЕРЫ:

        пагенд =.фалсе.
        пулл = лине.ле.132.анд..нот.робин
        билл = а.гт.б.анд.  а.гт. ц .анд. а



        5.1.3. ОПЕРАТОР "ассигн"



        ОПЕРАТОР   "ассигн" ИСПОЛЬЗУЕТСЯ ДЛЯ ПРИСВОЕНИЯ  ЦЕЛОЙ
ПЕРЕМЕННОЙ   МЕТКИ  ОПЕРАТОРА. ЗАТЕМ ЭТА ПЕРЕМЕННАЯ МОЖЕТ БЫТЬ
ИСПОЛЬЗОВАНА   ДЛЯ   УКАЗАНИЯ МЕСТА ПЕРЕДАЧИ УПРАВЛЕНИЯ В ПОС-
ЛЕДУЮЩЕМ ОПЕРАТОРЕ ПЕРЕХОДА ПО ПРЕДПИСАНИЮ "гото" .

        ОПЕРАТОР "ассигн" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                ассигн  с то в

 ГДЕ

с
      - МЕТКА    ВЫПОЛНЯЕМОГО   ОПЕРАТОРА ИЗ ТОГО ЖЕ  ПРОГРАМ-
        МНОГО МОДУЛЯ, ЧТО И ОПЕРАТОР "ассигн"    (ОНА НЕ МОЖЕТ
        БЫТЬ МЕТКОЙ ОПЕРАТОРА "формат");



                              - 39 -

                          00014-01.35.02


 в
        - ЦЕЛАЯ ПЕРЕМЕННАЯ.

        ОПЕРАТОР "ассигн" ПРИСВАИВАЕТ ПЕРЕМЕННЫЙ НОМЕР  ОПЕРА-
ТОРА   ТАКИМ ЖЕ   ОБРАЗОМ,   КАК ЭТО ДЕЛАЕТСЯ В АРИФМЕТИЧЕСКОМ
ОПЕРАТОРЕ   ПРИСВАИВАНИЯ.    ПЕРЕМЕННАЯ,  ПОЛУЧИВШАЯ  ЗНАЧЕНИЕ
МЕТКИ НЕ МОЖЕТ   БЫТЬ   ИСПОЛЬЗОВАНА  КАК  ПЕРЕМЕННАЯ, ИМЕЮЩАЯ
ЧИСЛОВОЕ ЗНАЧЕНИЕ,   ДО ТЕХ ПОР,   ПОКА  ОНА  ЕГО НЕ ПОЛУЧИТ В
АРИФМЕТИЧЕСКОМ   ОПЕРАТОРЕ   ПРИСВАИВАНИЯ ИЛИ В ОПЕРАТОРЕ ВВО-
ДА.

        ОПЕРАТОР

           ассигн 100 то нумбер

СТАВИТ  В   СООТВЕТСТВИЕ   ПЕРЕМЕННОЙ "нумбер" МЕТКУ ОПЕРАТОРА
100. ПОСЛЕ ЭТОГО АРИФМЕТИЧЕСКИЕ   ОПЕРАЦИИ   НАД ЭТОЙ ПЕРЕМЕН-
НОЙ ТАКИЕ, КАК В ОПЕРАТОРЕ

           нумбер = нумбер + 1

БУДУТ   НЕДОПУСТИМЫМИ,   ТАК КАК МЕТКА ОПЕРАТОРА НЕ МОЖЕТ БЫТЬ
ИЗМЕНЕНА. ОПЕРАТОР

           нумбер = 10

ПРИСВАИВАЕТ   ПЕРЕМЕННОЙ   "нумбер"   ЗНАЧЕНИЕ 10 И ВОЗВРАЩАЕТ
ЭТУ ПЕРЕМЕННУЮ   В   ЕЕ   ИСХОДНОЕ  СОСТОЯНИЕ В КАЧЕСТВЕ ЦЕЛОЙ
ПЕРЕМЕННОЙ.    ТЕПЕРЬ ЭТА ПЕРЕМЕННАЯ НЕ МОЖЕТ БЫТЬ ИСПОЛЬЗОВА-
НА В ОПЕРАТОРЕ ПЕРЕХОДА ПО ПРЕДПИСАНИЮ.

        ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА "ассигн":

           ассигн 10 то нстарт
           ассигн 9999 то нстоп
           ассигн 350 то ерас    (ерас ДОЛЖНА БЫТЬ ОПРЕДЕЛЕНА
                                  КАК ЦЕЛАЯ ПЕРЕМЕННАЯ)


        5.2. ОПЕРАТОРЫ УПРАВЛЕНИЯ


        ОПЕРАТОРЫ,  КАК  ПРАВИЛО, ВЫПОЛНЯЮТСЯ В ТОМ ПОРЯДКЕ, В
КАКОМ ОНИ ЗАПИСАНЫ.   ОДНАКО  ИНОГДА НЕОБХОДИМО ПРЕРВАТЬ ОБЫЧ-
НЫЙ ПОРЯДОК ВЫПОЛНЕНИЯ   ПРОГРАММЫ   ПЕРЕДАЧЕЙ    УПРАВЛЕНИЯ В
ДРУГУЮ СЕКЦИЮ ПРОГРАММЫ   ИЛИ  ПОДПРОГРАММУ. ПЕРЕДАЧА УПРАВЛЕ-
НИЯ ИЗ ЗАДАННОЙ   ТОЧКИ  ПРОГРАММЫ МОЖЕТ БЫТЬ ВЫПОЛНЕНА ВСЯКИЙ
РАЗ, КОГДА   ЭТА  ТОЧКА ВСТРЕТИТСЯ В ПРОЦЕССЕ ВЫПОЛНЕНИЯ ПРОГ-
РАММЫ.   ВОЗМОЖЕН  ТАКЖЕ  ВАРИАНТ,   КОГДА ПЕРЕДАЧА УПРАВЛЕНИЯ
БУДЕТ   КАЖДЫЙ  РАЗ  ОСУЩЕСТВЛЯТЬСЯ В ОДНУ И ТУ ЖЕ ТОЧКУ ПРОГ-
РАММЫ.

        ПЕРЕДАЧА   УПРАВЛЕНИЯ,  КАК ВНУТРИ ОДНОГО ПРОГРАММНОГО
МОДУЛЯ,  ТАК  И  В  ДРУГОЙ ПРОГРАММНЫЙ МОДУЛЬ, ВЫПОЛНЯЕТСЯ ПРИ
ПОМОЩИ ОПЕРАТОРОВ   УПРАВЛЕНИЯ.    КРОМЕ ТОГО,   ЭТИ ОПЕРАТОРЫ
УПРАВЛЯЮТ   ИТЕРАЦИОННОЙ  ОБРАБОТКОЙ, ПРИОСТАНОВКОЙ ВЫПОЛНЕНИЯ
ПРОГРАММЫ   И  ПРЕКРАЩЕНИЕМ ВЫПОЛНЕНИЯ ПРОГРАММЫ. ИМЕЮТСЯ СЛЕ-


                              - 41 -

                           00014-01.35.02


       5.2.1.2. ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА "GO TO"


       ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА ПЕРЕДАЕТ УПРАВЛЕНИЕ  ОПЕ-
   РАТОРУ, ОПРЕДЕЛЯЕМОМУ  ПО  ЗНАЧЕНИЮ  ВЫРАЖЕНИЯ, ВХОДЯЩЕГО В
   ОПЕРАТОР "GO TO".

       ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА  "GO TO"  ИМЕЕТ СЛЕДУЮЩИЙ
   ВИД:

       GO TO (K1,K2,...KN)[,] M

   ГДЕ

   K1,K2,...,KN
       - МЕТКИ ВЫПОЛНЯЕМЫХ ОПЕРАТОРОВ; СПИСОК МЕТОК  НАЗЫВАЕТСЯ
         СПИСКОМ ПЕРЕХОДОВ;

   M   - АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ, ЗНАЧЕНИЕМ КОТОРОГО  ЯВЛЯЕТСЯ
         ЦЕЛОЕ ЧИСЛО, ЛЕЖАЩЕЕ ВНУТРИ ИНТЕРВАЛА ОТ 1 ДО N (N -ЭТО
         ЧИСЛО МЕТОК ОПЕРАТОРОВ В СПИСКЕ ПЕРЕХОДОВ).

       ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА  ВЫЧИСЛЯЕТ  ВЫРАЖЕНИЕ  "М".
   ПОСЛЕ ЭТОГО ОПЕРАТОР "GO TO" ПЕРЕДАЕТ УПРАВЛЕНИЕ  МЕТКЕ  ОПЕ-
   РАТОРА, ПОРЯДКОВЫЙ НОМЕР КОТОРОЙ  В  СПИСКЕ  ПЕРЕХОДОВ  РАВЕН
   ПОЛУЧЕННОМУ ЗНАЧЕНИЮ ВЫРАЖЕНИЯ. НАПРИМЕР, ЕСЛИ  СПИСОК  ИМЕЕТ
   ВИД (30,20,50,40), А  ЗНАЧЕНИЕ  ВЫРАЖЕНИЯ  "М"  РАВНО "2", ТО
   ОПЕРАТОР "GO TO" ПЕРЕДАСТ УПРАВЛЕНИЕ НА ОПЕРАТОР С МЕТКОЙ "20".

       ЕСЛИ ЗНАЧЕНИЕ  ВЫРАЖЕНИЯ  МЕНЬШЕ  ЕДИНИЦЫ ИЛИ БОЛЬШЕ, ЧЕМ
   ЧИСЛО МЕТОК В СПИСКЕ ПЕРЕХОДОВ,  УПРАВЛЕНИЕ  ПЕРЕДАЕТСЯ  ПЕР-
   ВОМУ ВЫПОЛНЯЕМОМУ ОПЕРАТОРУ, СЛЕДУЮЩЕМУ ЗА ВЫЧИСЛЯЕМЫМ ОПЕРА-
   ТОРОМ ПЕРЕХОДА "GO TO".

   ПРИМЕРЫ:

       GO TO (17,25,36), KEND
       GO TO (340,360,500,700) SITU(J,K)+1


         5.2.1.3. ОПЕРАТОР ПЕРЕХОДА ПО ПРЕДПИСАНИЮ "GO TO"

         ОПЕРАТОР ПЕРЕХОДА ПО ПРЕДПИСАНИЮ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

          GO TO V[[,](K1,K2,...,KN)]

   ГДЕ

   V
       - ЦЕЛАЯ ПЕРЕМЕННАЯ;




                           - 42 -

                      00014-01.35.02


   K1,K2,...,KN
           - МЕТКИ ВЫПОЛНЯЕМЫХ ОПЕРАТОРОВ.

          ОПЕРАТОР  ПЕРЕХОДА ПО ПРЕДПИСАНИЮ ПЕРЕДАЕТ  УПРАВЛЕНИЕ
   ОПЕРАТОРУ, МЕТКА КОТОРОГО БЫЛА ПОСЛЕДНЕЙ  ПРИСВОЕНА  ПЕРЕМЕН-
   НОЙ "V" ОПЕРАТОРОМ "ASSIGN".

          ПЕРЕМЕННАЯ "V" ДОЛЖНА БЫТЬ ПЕРЕМЕННОЙ ЦЕЛОГО ТИПА И ЕЙ
   ДОЛЖНО БЫТЬ ПРИСВОЕНО ЗНАЧЕНИЕ МЕТКИ НЕКОТОРОГО  ОПЕРАТОРА  С
   ПОМОЩЬЮ ОПЕРАТОРА "ASSIGN" (А  НЕ  АРИФМЕТИЧЕСКОГО  ОПЕРАТОРА
   ПРИСВОЕНИЯ) ДО ВЫПОЛНЕНИЯ ОПЕРАТОРА "GO TO".

          ОПЕРАТОР ПЕРЕХОДА ПО ПРЕДПИСАНИЮ И СООТВЕТСТВУЮЩИЙ ОПЕ-
   РАТОР  (ИЛИ  ОПЕРАТОРЫ)  "ASSIGN"  ДОЛЖНЫ  БЫТЬ   РАСПОЛОЖЕНЫ
   ВНУТРИ ОДНОГО  И  ТОГО  ЖЕ  ПРОГРАММНОГО  МОДУЛЯ.  ОПЕРАТОРЫ,
   КОТОРЫМ ПЕРЕДАЕТСЯ УПРАВЛЕНИЕ, ТАКЖЕ ДОЛЖНЫ БЫТЬ РАСПОЛОЖЕНЫ
   В ТОМ ЖЕ ПРОГРАММНОМ МОДУЛЕ.

     ПРИМЕРЫ:

            GO TO IGO
            GO TO INDEX, (300,400,1000,700)


          5.2.2. ОПЕРАТОРЫ "IF"


          ОПЕРАТОР "IF" ВЫЗЫВАЕТ УСЛОВНУЮ ПЕРЕДАЧУ УПРАВЛЕНИЯ ИЛИ
   УСЛОВНОЕ ВЫПОЛНЕНИЕ НЕКОТОРОГО  ОПЕРАТОРА. ИМЕЕТСЯ  ДВА   ТИПА
   ОПЕРАТОРОВ "IF":

          - АРИФМЕТИЧЕСКИЙ ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА "IF";

          - ЛОГИЧЕСКИЙ УСЛОВНЫЙ ОПЕРАТОР "IF".

        В ОБОИХ СЛУЧАЯХ РЕШЕНИЕ О ПЕРЕДАЧЕ УПРАВЛЕНИЯ ИЛИ О ВЫПОЛ-
   НЕНИИ ОПЕРАТОРА ОСНОВЫВАЕТСЯ НА РЕЗУЛЬТАТЕ ВЫЧИСЛЕНИЯ ВЫРАЖЕНИЯ,
   ВХОДЯЩЕГО В СОСТАВ ОПЕРАТОРА "IF".


          5.2.2.1. АРИФМЕТИЧЕСКИЙ  ОПЕРАТОР  УСЛОВНОГО
                   ПЕРЕХОДА "IF"

        АРИФМЕТИЧЕСКИЙ ОПЕРАТОР  УСЛОВНОГО  ПЕРЕХОДА  "IF"  ИМЕЕТ
   СЛЕДУЮЩИЙ ВИД:

          IF (M) К1,К2,К3

   ГДЕ

   М
         - АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ,



                            - 43 -

                       00014-01.35.02

   K1,K2,K3
         - МЕТКИ ВЫПОЛНЯЕМЫХ ОПЕРАТОРОВ, РАССПОЛОЖЕННЫХ  В ТОЙ ЖЕ
           САМОЙ ПРОГРАММНОЙ ЕДИНИЦЕ.

        В ЗАПИСИ ОПЕРАТОРА ДОЛЖНЫ ПРИСУТСТВОВАТЬ ВСЕ  ТРИ  МЕТКИ.
   ЭТИ МЕТКИ НЕОБЯЗАТЕЛЬНО ДОЛЖНЫ ОТНОСИТЬСЯ К ТРЕМ РАЗНЫМ ОПЕРА-
   ТОРАМ. ЕСЛИ НЕОБХОДИМО, ОДНА ИЛИ ДВЕ МЕТКИ МОГУТ ОТНОСИТЬСЯ  К
   ОДНОМУ ОПЕРАТОРУ.

        ПРИ ВЫПОЛНЕНИИ АРИФМЕТИЧЕСКОГО ОПЕРАТОРА УСЛОВНОГО  ПЕРЕ-
   ХОДА ПРЕЖДЕ ВСЕГО ВЫЧИСЛЯЕТСЯ  ВЫРАЖЕНИЕ  В  СКОБКАХ, А  ЗАТЕМ
   УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ОПЕРАТОРУ С МЕТКОЙ "K1", "K2"  ИЛИ "К3",
   ЕСЛИ ЗНАЧЕНИЕ ВЫРАЖЕНИЯ "M" СООТВЕТСТВЕННО МЕНЬШЕ,  РАВНО  ИЛИ
   БОЛЬШЕ НУЛЯ.

    ПРИМЕРЫ:

           IF(GAMMA-CHI) 50,50,100

   ЭТОТ ОПЕРАТОР ПЕРЕДАЕТ УПРАВЛЕНИЕ ОПЕРАТОРУ 50, ЕСЛИ ВЕЩЕСТВЕН-
   НАЯ ПЕРЕМЕННАЯ "GAMMA" МЕНЬШЕ ИЛИ РАВНА ВЕЩЕСТВЕННОЙ ПЕРЕМЕННОЙ
   "CHI". УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ОПЕРАТОРУ 100 ТОЛЬКО В ТОМ  СЛУ-
   ЧАЕ, КОГДА "GAMMA" БОЛЬШЕ, ЧЕМ "CHI".

           IF(NUMBER/2*2-NUMBER)20,40,20

   ЭТОТ ОПЕРАТОР ПЕРЕДАЕТ УПРАВЛЕНИЕ ОПЕРАТОРУ 40, ЕСЛИ ЗНАЧЕНИЕ
   ЦЕЛОЙ ПЕРЕМЕННОЙ "NUMBER" ЧЕТНО, И ОПЕРАТОРУ 20, ЕСЛИ ОНО НЕ-
   ЧЕТНО. В ЭТОМ СЛУЧАЕ ТРЕТЬЯ МЕТКА ОПЕРАТОРА ОБЯЗАНА ПРИСУТСТ-
   ВОВАТЬ, ХОТЯ ОНА НИКОГДА НЕ ИСПОЛЬЗУЕТСЯ; ЗНАЧЕНИЕ  ВЫРАЖЕНИЯ
   БУДЕТ ЛИБО НУЛЕМ, ЛИБО ОТРИЦАТЕЛЬНЫМ ЧИСЛОМ.



          5.2.2.2. ЛОГИЧЕСКИЙ УСЛОВНЫЙ ОПЕРАТОР "IF"


        ЛОГИЧЕСКИЙ УСЛОВНЫЙ ОПЕРАТОР "IF" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

          IF (E) S

   ГДЕ

   Е
          - ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ;

   S      - ОПЕРАТОР ФОРТРАН, ЗА ИСКЛЮЧЕНИЕМ ОПЕРАТОРА "DO" ИЛИ
            ДРУГОГО ЛОГИЧЕСКОГО УСЛОВНОГО ОПЕРАТОРА "IF".

        ПРИ ВЫПОЛНЕНИИ ЛОГИЧЕСКОГО УСЛОВНОГО ОПЕРАТОРА ПРЕЖДЕ ВСЕ-
   ГО ВЫЧИСЛЯЕТСЯ ЗНАЧЕНИЕ ЛОГИЧЕСКОГО ВЫРАЖЕНИЯ. ЕСЛИ ЭТО  ЗНАЧЕ-
   НИЕ РАВНО ".TRUE.", ТО ПРОИСХОДИТ  ВЫПОЛНЕНИЕ   ОПЕРАТОРА  "S".
   ЕСЛИ ЗНАЧЕНИЕ ВЫРАЖЕНИЯ РАВНО ".FALSE.", УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ
   ПЕРВОМУ ВЫПОЛНЯЕМОМУ ОПЕРАТОРУ, СЛЕДУЮЩИЙ  ЗА  ОПЕРАТОРОМ  "IF"
   (ПРИ ЭТОМ ОПЕРАТОР "S" НЕ ВЫПОЛНЯЕТСЯ).


                            - 44 -

                       00014-01.35.02

   ПРИМЕРЫ:

        IF (J.GT.4.OR.J.LT.1) GO TO 200
        IF (REC(J,K).NE.HOLD) REC(J,K)=REC(J,K)*2
        IF (ENDRUN) CALL EXIT


        5.2.3. ОПЕРАТОР "DO"


        ОПЕРАТОР  "DO"  ИСПОЛЬЗУЕТСЯ  ДЛЯ  ЗАДАНИЯ   ИТЕРАЦИОННОЙ
   ОБРАБОТКИ. ОПЕРАТОР  "DO"  ПОЗВОЛЯЕТ   ПОВТОРИТЬ  ОПРЕДЕЛЕННОЕ
   ЧИСЛО РАЗ ВЫПОЛНЕНИЕ ОПЕРАТОРОВ, НАХОДЯЩИХСЯ  В  ОБЛАСТИ   ЕГО
   ДЕЙСТВИЯ.

        ОПЕРАТОР "DO" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

           DO S [,] I=E1,E2[,E3]

   ГДЕ

   S
        - МЕТКА ПОСЛЕДНЕГО ВЫПОЛНЯЕМОГО ОПЕРАТОРА. ЭТОТ  ОПЕРАТОР
          ДОЛЖЕН ФИЗИЧЕСКИ РАСПОЛАГАТЬСЯ ПОСЛЕ ОПЕРАТОРА  "DO"  В
          ТОЙ ЖЕ САМОЙ ПРОГРАММНОЙ ЕДИНИЦЕ;

   I
        - ЦЕЛАЯ ПЕРЕМЕННАЯ;

   E1,E2,E3
        - ЦЕЛЫЕ ВЫРАЖЕНИЯ.

        ПЕРЕМЕННАЯ "I" НАЗЫВАЕТСЯ СЧЕТЧИКОМ ЦИКЛА, А "E1",  "E2",
   "E3" НАЗЫВАЮТСЯ СООТВЕТСТВЕННО НАЧАЛЬНЫМ ПАРАМЕТРОМ, КОНЕЧНЫМ
   ПАРАМЕТРОМ И ШАГОМ ИТЕРАЦИИ. ЕСЛИ ШАГ ОПУЩЕН, ОН  ПРИНИМАЕТСЯ
   РАВНЫМ "1".

        ПОСЛЕДНИЙ  ОПЕРАТОР,  ВКЛЮЧЕННЫЙ  В  ЦИКЛ, УКАЗЫВАЕТСЯ С
   ПОМОЩЬЮ МЕТКИ В ЗАПИСИ ОПЕРАТОРА ЦИКЛА "DO". ЭТИМ  ОПЕРАТОРОМ
   НЕ ДОЛЖЕН БЫТЬ НИ ОПЕРАТОР "GO TO",НИ АРИФМЕТИЧЕСКИЙ ОПЕРАТОР
   УСЛОВНОГО ПЕРЕХОДА "IF", НИ ОПЕРАТОР  "RETURN"  И  НИ  ДРУГОЙ
   ОПЕРАТОР "DO". В КАЧЕСТВЕ  ПОСЛЕДНЕГО   ОПЕРАТОРА   ДОПУСТИМО
   ИСПОЛЬЗОВАНИЕ ЛОГИЧЕСКОГО УСЛОВНОГО ОПЕРАТОРА "IF".

        ВСЕ ОПЕРАТОРЫ, КОТОРЫЕ СЛУДУЮТ ЗА ОПЕРАТОРОМ "DO" ВПЛОТЬ
   ДО ПОСЛЕДНЕГО ОПЕРАТОРА (ВКЛЮЧАЯ ЕГО), ОБРАЗУЮТ ОБЛАСТЬ  ДЕЙ-
   СТВИЯ ОПЕРАТОРА "DO" (ОБЛАСТЬ ЦИКЛА).

        ПРИ ВЫПОЛНЕНИИ ОПЕРАТОРА "DO" ПРЕЖДЕ ВСЕГО   ВЫЧИСЛЯЮТСЯ
   ВЫРАЖЕНИЯ "E1", "E2" И "E3" ДЛЯ ОПРЕДЕЛЕНИЯ ЗНАЧЕНИЙ  НАЧАЛЬ-
   НОГО И КОНЕЧНОГО ПАРАМЕТРОВ И ШАГА. ПОСЛЕ  ЭТОГО  УПРАВЛЯЮЩЕЙ
   ПЕРЕМЕННОЙ ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ НАЧАЛЬНОГО ПАРАМЕТРА. ЗАТЕМ
   ПРОИСХОДИТ МНОГОКРАТНОЕ ВЫПОЛНЕНИЕ ВСЕХ ВЫПОЛНЯЕМЫХ  ОПЕРАТО-
   РОВ, ЛЕЖАЩИХ В ОБЛАСТИ ДЕЙСТВИЯ ОПЕРАТОРА "DO".



                           - 45 -

                      00014-01.35.02


       ЕСЛИ  ШАГ  ПОЛОЖИТЕЛЕН,  ЗНАЧЕНИЕ  КОНЕЧНОГО ПАРАМЕТРА НЕ
   ДОЛЖНО БЫТЬ МЕНЬШЕ ЗНАЧЕНИЯ НАЧАЛЬНОГО ПАРАМЕТРА. И НАОБОРОТ,
   ЕСЛИ ШАГ ОТРИЦАТЕЛЕН, ЗНАЧЕНИЕ КОНЕЧНОГО ПАРАМЕТРА  НЕ ДОЛЖНО
   БЫТЬ БОЛЬШЕ, ЧЕМ НАЧАЛЬНОГО. ЗНАЧЕНИЕ  ШАГА  НЕ  ДОЛЖНО  БЫТЬ
   НУЛЕМ.

       ЧИСЛО ВЫПОЛНЕНИЙ ОПЕРАТОРОВ ИЗ ОБЛАСТИ ДЕЙСТВИЯ ОПЕРАТОРА
   ЦИКЛА, НАЗЫВАЕМОЕ ЧИСЛОМ ИТЕРАЦИИ, ОПРЕДЕЛЯЕТСЯ ПО ФОРМУЛЕ:

       [(E2 - E1)/E3]+ 1

   ВЕЛИЧИНА В КВАДРАТНЫХ СКОБКАХ ПРЕДСТАВЛЯЕТ  НАИБОЛЬШЕЕ  АБСО-
   ЛЮТНОЕ ЦЕЛОЕ ЗНАЧЕНИЕ ВЫРАЖЕНИЯ.

       ЕСЛИ ЧИСЛО ИТЕРАЦИЙ РАВНО НУЛЮ ИЛИ ОТРИЦАТЕЛЬНО, ЦИКЛ ВЫ-
   ПОЛНЯЕТСЯ ТОЛЬКО ОДИН РАЗ.


       5.2.3.1. УПРАВЛЕНИЕ ИТЕРАЦИЕЙ


       ДЛЯ КАЖДОЙ ИТЕРАЦИИ ВСЛЕД ЗА ВЫПОЛНЕНИЕМ ПОСЛЕДНЕГО ОПЕРА-
   ТОРА ТЕЛА ЦИКЛА ВЫПОЛНЯЮТСЯ СЛЕДУЮЩИЕ УПРАВЛЯЮЩИЕ ДЕЙСТВИЯ:

       - К ЗНАЧЕНИЮ УПРАВЛЯЮЩЕЙ ПЕРЕМЕННОЙ АЛГЕБРАИЧЕСКИ  ПРИБАВ-
         ЛЯЕТСЯ ЗНАЧЕНИЕ ШАГА;

       - УМЕНЬШЯАЕТСЯ СЧЕТЧИК ИТЕРАЦИЙ;

       - ЕСЛИ СЧЕТЧИК ИНТЕРАЦИЙ БОЛЬШЕ НУЛЯ, УПРАВЛЕНИЕ ПЕРЕДАЕТ-
         СЯ ПЕРВОМУ ВЫПОЛНЯЕМОМУ  ОПЕРАТОРУ,  РАСПОЛОЖЕННОМУ   ЗА
         ОПЕРАТОРОМ "DO", ДЛЯ ОЧЕРЕНОГО ПОВТОРЕНИЯ ОПЕРАТОРОВ  ИЗ
         ОБЛАСТИ ДЕЙСТВИЯ ЦИКЛА;

       - ЕСЛИ СЧЕТЧИК ИНТЕРАЦИЙ РАВЕН НУЛЮ, ВЫПОЛНЕНИЕ ЦИКЛА ПРЕК-
         РАЩАЕТСЯ.

       ВЫПОЛНЕНИЕ ЦИКЛА МОЖЕТ БЫТЬ  ТАКЖЕ  ПРЕКРАЩЕНО  С  ПОМОЩЬЮ
   ОПЕРАТОРА, НАХОДЯЩЕГОСЯ В ОБЛАСТИ ДЕЙСТВИЯ ЦИКЛА, КОТОРЫЙ  ПЕ-
   РЕДАЕТ УПРАВЛЕНИЕ ЗА ПРЕДЕЛЫ ЦИКЛА. ПРИ  ЭТОМ  У   УПРАВЛЯЮЩЕЙ
   ПЕРЕМЕННОЙ ОСТАЕТСЯ ЗНАЧЕНИЕ, РАВНОЕ ЕЕ ТЕКУЩЕМУ ЗНАЧЕНИЮ.

       ЕСЛИ ПОСЛЕДНИЙ ОПЕРАТОР ЦИКЛА ВХОДИТ И  В  ДРУГИЕ   ЦИКЛЫ,
   ТО ПО ОКОНЧАНИЮ ВНУТРЕННЕГО ЦИКЛА УПРАВЛЕНИЕ   ПЕРЕДАЕТСЯ  НА
   САМЫЙ ВНУТРЕННИЙ ИЗ ОСТАВШИХСЯ ВНЕШНИХ ЦИКЛОВ. ЕСЛИ ЭТОТ ПОС-
   ЛЕДНИЙ ОПЕРАТОР НЕ ВХОДИТ НИ В КАКИЕ ДРУГИЕ ЦИКЛЫ, ЛИБО  ЕСЛИ
   ДАННЫЙ ЦИКЛ БЫЛ САМЫМ ВНЕШНИМ, УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ  ПЕРВОМУ
   ВЫПОЛНЯЕМОМУ ОПЕРАТОРУ, СЛЕДУЮЩЕМУ ЗА   ПОСЛЕДНИМ  ОПЕРАТОРОМ
   ЦИКЛА.

       ЗНАЧЕНИЯ УПРАВЛЯЮЩЕЙ ПЕРЕМЕННОЙ, КОНЕЧНОГО   ПАРАМЕТРА  И
   ШАГА НЕ МОГУТ ИЗМЕНИТЬСЯ ВНУТРИ ОБЛАСТИ ДЕЙСТВИЯ ОПЕРАТОРА "DO".
   ВНУТРИ ЭТОЙ ОБЛАСТИ ДОПУСКАЕТСЯ ОБРАЩЕНИЕ К УПРАВЛЯЮЩЕЙ ПЕРЕ-
   МЕННОЙ КАК К ОБЫЧНОЙ ПЕРЕМЕННОЙ.

                              - 46 -

                         00014-01.35.02


        В ОБЛАСТИ ДЕЙСТВИЯ  ОПЕРАТОРА   "DO"  МОГУТ  НАХОДИТЬСЯ
     ДРУГИЕ ОПЕРАТОРЫ "DO" ПРИ УСЛОВИИ, ЧТО  ОНИ  УДОВЛЕТВОРЯЮТ
     ОПРЕДЕЛЕННЫМ ТРЕБОВАНИЯМ.

        ВОЗМОЖНА ПЕРЕДАЧА УПРАВЛЕНИЯ ИЗ ТЕЛА ЦИКЛА  ВО  ВНЕ, НО
     НЕЛЬЗЯ ПЕРЕДАТЬ УПРАВЛЕНИЕ В ТЕЛО ЦИКЛА ИЗ КАКОГО-ЛИБО ДРУ-
     ГОГО МЕСТА ПРОГРАММЫ, ЕСЛИ ЭТОТ ЦИКЛ ЕЩЕ НЕ НАЧАТ, ИЛИ  ОН
     УЖЕ ЗАКОНЧЕН.


        ПРИМЕРЫ.

     DO 100 K=1,50,2   (25 ИТЕРАЦИЙ; K=49 ВО ВРЕМЯ ПОСЛЕДНЕЙ
                       ИТЕРАЦИИ)
     DO 350 J=50,-2,-2 (27 ИТЕРАЦИЙ; J=-2 ВО ВРЕМЯ ПОСЛЕДНЕЙ
                       ИТЕРАЦИИ)
     DO 25 IVAR=1,5    (5 ИТЕРАЦИЙ; IVAR=5 ВО ВРЕМЯ ПОСЛЕДНЕЙ
                       ИТЕРАЦИИ)


        5.2.3.2. ВЛОЖЕННОСТЬ ОПЕРАТОРОВ "DO"


        ОБЛАСТЬ ОПЕРАТОРА  "DO"  МОЖЕТ СОДЕРЖАТЬ ОДИН ИЛИ БОЛЕЕ
     ДРУГИХ ОПЕРАТОРОВ "DO". ОБЛАСТЬ ДЕЙСТВИЯ ВНУТРЕННОГО  ВЛО-
     ЖЕННОГО ЦИКЛА ДОЛЖНА ПОЛНОСТЬЮ ЛЕЖАТЬ ВНУТРИ ОБЛАСТИ ДЕЙСТ-
     ВИЯ ОХВАТЫВАЮЩЕГО ЕГО ЦИКЛА (ИЛИ  САМОГО   ВНУТРЕННЕГО  ИЗ
     ОХВАТЫВАЮЩИХ). ТАКАЯ СОВОКУПНОСТЬ  ОПЕРАТОРОВ  "DO"  И  ИХ
     ОБЛАСТЕЙ НАЗЫВАЕТСЯ  ПОЛНОСТЬЮ  ВЛОЖЕННОЙ. ЦИКЛЫ  В  ЦИКЛЕ
     МОГУТ ИМЕТЬ ОДИН И ТОТ ЖЕ ПОСЛЕДНИЙ ОПЕРАТОР.

     ПРИМЕР ДОПУСТИМОЙ ВЛОЖЕННОСТИ ОПЕРАТОРОВ "DO":

       !-           DO 90 K=1,10
       !                 ...
       !                 ...
       !
       !!-          DO 35 L=2,50,2
       !!                ...
       !!                ...
       !!-             35 CONTINUE
       !
       !                 ...
       !                 ...
       !
       !!-          DO 90 M=1,20
       !!
       !!                ...
       !!                ...
       !!-             90 CONTINUE
       !-


                              - 47 -

                         00014-01.35.02



      ПРИМЕР НЕДОПУСТИМОЙ ВЛОЖЕННОСТИ ОПЕРАТОРОВ "DO":

       !-      DO 80 K=1,10
       !           ...
       !           ...
       !
     !-!       DO 25 I=1,20
     ! !           ...
     ! !           ...
     ! !-  80  CONTINUE
     !
     !             ...
     !             ...
     !
     ! !-      DO 30 M=1,15
     ! !           ...
     ! !           ...
     !-!   25  CONTINUE
       !
       !           ...
       !           ...
       !-  30  CONTINUE


       5.2.3.3. ПЕРЕДАЧА УПРАВЛЕНИЯ ВО ВЛОЖЕННЫХ "DO"


       ВНУТРИ ВЛОЖЕННОЙ СТРУКТУРЫ "DO" УПРАВЛЕНИЕ  МОЖЕТ  ПЕРЕДА-
    ВАТЬСЯ ИЗ ВНУТРЕННЕГО ЦИКЛА ВО  ВНЕШНИЙ. ПЕРЕДАЧИ  УПРАВЛЕНИЯ
    ИЗ ВНЕШНЕГО ЦИКЛА ВО ВНУТРЕННИЙ ЗАПРЕЩЕНЫ.

       ЕСЛИ ДВА ИЛИ БОЛЕЕ ВЛОЖЕННЫХ ЦИКЛОВ ИМЕЮТ ОДИН  И  ТОТ  ЖЕ
    ПОСЛЕДНИЙ ОПЕРАТОР, УПРАВЛЕНИЕ ЭТОМУ ОПЕРАТОРУ МОЖЕТ БЫТЬ ПЕ-
    РЕДАНО ТОЛЬКО ИЗ ОБЛАСТИ ДЕЙСТВИЯ САМОГО  ВНУТРЕННЕГО  ЦИКЛА.
    ЛЮБАЯ ДРУГАЯ ПЕРЕДАЧА УПРАВЛЕНИЯ ЭТОМУ ОПЕРАТОРУ  БУДЕТ  РАС-
    СМАТРИВАТЬСЯ КАК ПЕРЕДАЧА УПРАВЛЕНИЯ ИЗ  ВНЕШНЕГО  ЦИКЛА   ВО
    ВНУТРЕННИЙ, ТАК КАК ЭТОТ ОБЩИЙ ОПЕРАТОР ЯВЛЯЕТСЯ ЧАСТЬЮ ОБЛАС-
    ТИ ДЕЙСТВИЯ САМОГО ВНУТРЕННЕГО ЦИКЛА.


       5.2.3.4. РАСШИРЕННАЯ ОБЛАСТЬ ДЕЙСТВИЯ

       ОБ ОПЕРАТОРЕ ЦИКЛА "DO" ГОВОРЯТ, ЧТО ОН ИМЕЕТ  РАСШИРЕННУЮ
    ОБЛАСТЬ ДЕЙСТВИЯ, ЕСЛИ ОБЛАСТЬ ЦИКЛА СОДЕРЖИТ ОПЕРАТОР УПРАВ-
    ЛЕНИЯ, КОТОРЫЙ ПЕРЕДАЕТ УПРАВЛЕНИЕ ЗА ПРЕДЕЛЫ ОБЛАСТИ  ЦИКЛА,
    И, ЕСЛИ ПОСЛЕ ВЫПОЛНЕНИЯ ОДНОГО  ИЛИ  НЕСКОЛЬКИХ  ОПЕРАТОРОВ,
    ДРУГОЙ ОПЕРАТОР УПРАВЛЕНИЯ ВОЗВРАЩАЕТ УПРАВЛЕНИЕ НАЗАД В ЦИКЛ.
    ТАКИМ ОБРАЗОМ ОБЛАСТЬ ЦИКЛА БУДЕТ РАСШИРЕНА ЗА СЧЕТ ВКЛЮЧЕНИЯ
    ВСЕХ ВЫПОЛНЯЕМЫХ ОПЕРАТОРОВ, РАСПОЛОЖЕННЫХ МЕЖДУ  ОПЕРАТОРОМ,
    КОТОРЫЙ ПОЛУЧИЛ УПРАВЛЕНИЕ ИЗ ЦИКЛА,  И   ОПЕРАТОРОМ, КОТОРЫЙ
    ВЕРНУЛ УПРАВЛЕНИЕ В ЦИКЛ.



                            - 48 -

                       00014-01.35.02


      ПРИМЕР ДОПУСТИМЫХ ПЕРЕДАЧ УПРАВЛЕНИЯ С РАСШИРЕННОЙ ОБЛАСТЬЮ
      ДЕЙСТВИЯ:

      !-     DO 35 K=1,10
      !         . . .
      !
      !!-    DO 15 L=2,20
      !!        . . .
      !!     GO TO 20      -I
      !!        . . .       I
      !!-   15 CONTINUE     I
      !                     I
      !         . . .       I
      !     20 A=B+C   <--- I
      !         . . .
      !
      !!-    DO 35 M=1,15
      !!        . . .
      !!     GO TO 50      -I
      !!        . . .       I
      !!    30 X=A*D        I<--I
      !!-   35 CONTINUE     I   I
      !-                    I   I
                            I   I
                . . .       I   I
                . . .       I   I
                            I   I
            50 D=E/F    <---I   I
    РАСШИ-      . . .           I
    РЕННАЯ      . . .           I
    ОБЛАСТЬ     . . .           I
             GO TO 30   --------I



                            - 49 -

                       00014-01.35.02


          ПРИМЕР НЕДОПУСТИМЫХ ПЕРЕДАЧ УПРАВЛЕНИЯ:


                        G0 TO 70         --I
                           . . .           I
                                           I
            !-          DO 50 K=1,10       I
            !              . . .           I
            !        70 A=B+C          <---I
            !              . . .
            !
            !!-         DO 35 L=2,20
            !!             . . .
            !!       30 D=E/F          <---I
            !!             . . .           I
            !!-      35 CONTINUE           I
            !                              I
            !              . . .           I
            !           GO TO 40       ---II
            !              . . .          II
            !!-         DO 45 M=1,15      II
            !!             . . .          II
            !!       40 X=A*D          <--II
            !!             . . .           I
            !!-      45 CONTINUE           I
            !                              I
            !              . . .           I
            !-       50 CONTINUE           I
            !-                             I
                           . . .           I
                        GO TO 30       ----I



       ИСПОЛЬЗОВАНИЕ  РАСШИРЕННОЙ  ОБЛАСТИ  ДЕЙСТВИЯ ОПЕРАТОРА
   "DO" ПОДЧИНЯЕТСЯ СЛЕДУЮЩИМ ПРАВИЛАМ:

        - ПЕРЕДАЧА УПРАВЛЕНИЯ  В  ОБЛАСТИ  ДЕЙСТВИЯ  ОПЕРАТОРА
          "DO" РАЗРЕШАЕТСЯ ТОЛЬКО ТОГДА,  КОГДА  ЭТА  ПЕРЕДАЧА
          УПРАВЛЕНИЯ  ПРОИЗВОДИТСЯ  ИЗ   РАСШИРЕННОЙ   ОБЛАСТИ
          ДЕЙСТВИЯ ЭТОГО ОПЕРАТОРА "DO";

        - В РАСШИРЕННОЙ ОБЛАСТИ ДЕЙСТВИЯ ОПЕРАТОРА  "DO"  ЗАП-
          РЕЩАЕТСЯ ИЗМЕНЕНИЕ  УПРАВЛЯЮЩЕЙ  ПЕРЕМЕННОЙ, ШАГА, А
          ТАКЖЕ НАЧАЛЬНОГО И КОНЕЧНОГО ПАРАМЕТРОВ.


        5.2.4. ОПЕРАТОР "CONTINUE"


        ОПЕРАТОР  "CONTINUE"  ПЕРЕДАЕТ  УПРАВЛЕНИЕ  СЛЕДУЮЩЕМУ
   ВЫПОЛНЯЕМОМУ ОПЕРАТОРУ. ОН ГЛАВНЫМ ОБРАЗОМ ИСПОЛЬЗУЕТСЯ КАК
   ПОСЛЕДНИЙ ОПЕРАТОР В ОБЛАСТИ ДЕЙСТВИЯ ОПЕРАТОРА "DO" В  ТЕХ
   СЛУЧАЯХ, КОГДА ПОСЛЕДНИЙ  ОПЕРАТОР  НЕ  МОЖЕТ  ИМЕТЬ  МЕТКИ
   ЗАВЕРШЕНИЯ ЦИКЛА (ЯВЛЯЕТСЯ ЛИБО ОПЕРАТОРОМ  "GO TO",   ЛИБО
   АРИФМЕТИЧЕСКИМ ОПЕРАТОРОМ  УСЛОВНОГО  ПЕРЕХОДА  "IF",  ЛИБО
   ДРУГИМ ЗАПРЕЩЕННЫМ ОПЕРАТОРОМ УПРАВЛЕНИЯ).

        ОПЕРАТОР "CONTINUE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:



                            - 50 -

                       00014-01.35.02


        CONTINUE


      5.2.5. ОПЕРАТОР "CALL"


      ОПЕРАТОР "CALL" ВЫЗЫВАЕТ ВЫПОЛНЕНИЕ ПРОГРАММЫ И ОПРЕДЕЛЯЕТ
   СПИСОК ФАКТИЧЕСКИХ ПАРАМЕТРОВ, ПЕРЕДАВАЕМЫХ В ПОДПРОГРАММУ.

      ОПЕРАТОР "CALL" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

      CALL S[([P]  [,[P]]...)]

   ГДЕ

   S
      - ИМЯ ПОДПРОГРАММЫ, НАПИСАННОЙ НА ЯЗЫКЕ  ФОРТРАН  ИЛИ  НА
        ЯЗЫКЕ МАКРОАССЕМБЛЕРА, ИЛИ ОДНОЙ  ИЗ СИСТЕМНЫХ ПОДПРОГ-
        РАММ;

   P
      - ФАКТИЧЕСКИЙ ПАРАМЕТР, СООТВЕТСТВУЮЩИЙ ОДНОМУ ИЗ ФОРМАЛЬ-
        НЫХ ПАРАМЕТРОВ В ВЫШЕПЕРЕЧИСЛЕННЫХ ПОДПРОГРАММАХ.

      ОПЕРАТОР "CALL" УСТАНАВЛИВАЕТ СООТВЕТСТВИЕ МЕЖДУ ЗНАЧЕНИЯ-
   МИ  СПИСКА  ПАРАМЕТРОВ  (ЕСЛИ СПИСОК ПРИСУТСТВУЕТ) И ФОРМАЛЬ-
   НЫМИ  ПАРАМЕТРАМИ  В  ПОДПРОГРАММЕ И ЗАТЕМ ПЕРЕДАЕТ  УПРАВЛЕ-
   НИЕ ПЕРВОМУ ВЫПОЛНЯЕМОМУ ОПЕРАТОРУ ПОДПРОГРАММЫ.


      ПАРАМЕТРЫ,  УКАЗАННЫЕ  В  ОПЕРАТОРЕ  "CALL",  ДОЛЖНЫ   ПО
   СВОЕМУ КОЛИЧЕСТВУ, ПОРЯДКУ СЛЕДОВАНИЯ И  ТИПУ  ДАННЫХ  СООТ-
   ВЕТСТВОВАТЬ ФОРМАЛЬНЫМ ПАРАМЕТРАМ В ОПРЕДЕЛЕНИИ ПОДПРОГРАММЫ.
   В КАЧЕСТВЕ ФАКТИЧЕСКИХ ПАРАМЕТРОВ ДОПУСКАЕТСЯ  ИСПОЛЬЗОВАНИЕ
   ПЕРЕМЕННЫХ, МАССИВОВ, ЭЛЕМЕНТОВ МАССИВА, КОНСТАНТ,ВЫРАЖЕНИЙ,
   БУКВЕННО-ЦИФРОВЫХ ЛИТЕРАЛОВ ИЛИ ИДЕНТИФИКАТОРОВ ПОДПРОГРАММ,
   ЕСЛИ ЭТИ ИДЕНТИФИКАТОРЫ БЫЛИ ОПИСАНЫ В ОПЕРАТОРЕ "EXTERNAL".
   ИДЕНТИФИКАТОР МАССИВА БЕЗ СПИСКА ИНДЕКСОВ,  РАСПОЛОЖЕННЫЙ  В
   СПИСКЕ ПАРАМЕТРОВ, ОТНОСИТСЯ КО ВСЕМУ МАССИВУ В ЦЕЛОМ.

      ПРИМЕРЫ.

             CALL PROCENT(BPL,3.14159+X,Y,LIMIT,R(LT+2))
             CALL CALVE(A,B)
             CALL EXIT


      5.2.6. ОПЕРАТОР "RETURN"


      ОПЕРАТОР "RETURN" ИСПОЛЬЗУЕТСЯ ДЛЯ ВОЗВРАТА УПРАВЛЕНИЯ ИЗ
   ПОДПРОГРАММЫ В ВЫЗЫВАЮЩИЙ ПРОГРАММНЫЙ МОДУЛЬ.

                              - 51 -

                         00014-01.35.02



      ОПЕРАТОР "RETURN" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

         RETURN

      ПРИ  ВЫПОЛНЕНИИ  ОПЕРАТОРА   "RETURN"  В   ПОДПРОГРАММЕ-
    ФУНКЦИИ ОН ПЕРЕДАЕТ УПРАВЛЕНИЕ ОПЕРАТОРУ,СОДЕРЖАЩЕМУ ОБРА-
    ЩЕНИЕ К ФУНКЦИИ. ПРИ ВЫПОЛНЕНИИ В  ПОДПРОГРАММЕ  ОПЕРАТОРА
    "RETURN" УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ПЕРВОМУ ВЫПОЛНЯЕМОМУ ОПЕРА-
    ТОРУ, СЛЕДУЮЩЕМУ  НЕПОСРЕДСТВЕННО  ЗА  ОПЕРАТОРОМ  "CALL",
    КОТОРЫЙ ВЫЗВАЛ ВЫПОЛНЕНИЕ ПОДПРОГРАММЫ.

      ОПЕРАТОР "RETURN" НЕ ДОЛЖЕН  ПРИСУТСТВОВАТЬ  В  ОСНОВНОМ
    ПРОГРАММНОМ МОДУЛЕ.

      ПРИМЕР.

        SUBROUTINE CART(N,A,DATA,P,K)
        DIMENSION DATA(N), P(N)
        IF(N.LT.10) GO TO 200
        DATA(K+2)=N-(N/10)*N
        N=N/10
        DATA(K+1)=N
        P(K+2)=A(DATA(K+2)+1)
        P(K+1)=A(DATA(K+1)+1)
        RETURN
   200  P(K+2)=A(N+1)
        RETURN
        END


      5.2.7. ОПЕРАТОР "PAUSE"


      ОПЕРАТОР  "PAUSE"  ВРЕМЕННО  ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ
   ПРОГРАММЫ, ПОЗВОЛЯЯ ОПЕРАТОРУ ЗА ПУЛЬТОМ  ВЫПОЛНИТЬ  КАКИЕ-
   ЛИБО НЕОБХОДИМЫЕ ДЕЙСТВИЯ.

      ОПЕРАТОР "PAUSE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

         PAUSE [N]


   ГДЕ

   N
     - ПОСЛЕДОВАТЕЛЬНОСТЬ  ДЕСЯТИЧНЫХ   ЦИФР,  СОДЕРЖАЩАЯ  ОТ
       ОДНОЙ ДО ПЯТИ  ЦИФР, ЛИБО  БУКВЕННО-ЦИФРОВОЙ  ЛИТЕРАЛ,
       ЛИБО ВОСЬМЕРИЧНАЯ КОНСТАНТА.

     ОПЕРАТОР "PAUSE" ВЫВОДИТ СООБЩЕНИЕ НА  ТЕРМИНАЛ  ПОЛЬЗО-
   ВАТЕЛЯ (ЕСЛИ ЭТО ОПРЕДЕЛЕНО), ПРИОСТАНАВЛИВАЕТ  ВЫПОЛНЕНИЕ
   ПРОГРАММЫ И ОЖИДАЕТ РЕАКЦИИ ПОЛЬЗОВАТЕЛЯ. ПОСЛЕ ТОГО,  КАК
   ПОЛЬЗОВАТЕЛЬ ВВЕДЕТ  СООТВЕТСТВУЮЩУЮ  КОМАНДУ  УПРАВЛЕНИЯ,
   ВЫПОЛНЕНИЕ ПРОГРАММЫ ПРОДОЛЖАЕТСЯ С  ПЕРВОГО  ВЫПОЛНЯЕМОГО
   ОПЕРАТОРА, СЛЕДУЮЩЕГО ЗА ОПЕРАТОРОМ "PAUSE".




                            - 52 -

                       00014-01.35.02


     ПРИМЕРЫ.

        PAUSE "12345
        PAUSE 'УСТАНОВИТЬ КАССЕТУ'


     5.2.8. ОПЕРАТОР "STOP"



     ОПЕРАТОР "STOP" ИСПОЛЬЗУЕТСЯ ДЛЯ ПРЕКРАЩЕНИЯ  ВЫПОЛНЕНИЯ
   ПРОГРАММЫ.

     ОПЕРАТОР "STOP" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

        STOP [N]

   ГДЕ

   N
        - ПОСЛЕДОВАТЕЛЬНОСТЬ  ДЕСЯТИЧНЫХ  ЦИФР, СОДЕРЖАЩАЯ  ОТ
          ОДНОЙ ДО ПЯТИ  ЦИФР, БУКВЕННО-ЦИФРОВОЙ  ЛИТЕРАЛ  ИЛИ
          ВОСЬМЕРИЧНАЯ КОНСТАНТА.

     ОПЕРАТОР "STOP" ВЫВОДИТ СООБЩЕНИЕ НА ТЕРМИНАЛ ПОЛЬЗОВАТЕ-
   ЛЯ (ЕСЛИ ЭТО ОПРЕДЕЛЕНО), ПРЕКРАЩАЕТ ВЫПОЛНЕНИЕ ПРОГРАММЫ И
   ВОЗВРАЩАЕТ УПРАВЛЕНИЕ ОПЕРАЦИОННОЙ СИСТЕМЕ.

    ПРИМЕРЫ.
           STOP 73
           STOP "7777
     1999  STOP
           STOP 'КОНЕЦ ПРОГРАММЫ'


       5.2.9. ОПЕРАТОР "END"

       ОПЕРАТОР  "END"  ОТМЕЧАЕТ  КОНЕЦ  ПРОГРАММНОЙ   ЕДИНИЦЫ.
    ОПЕРАТОР "END" ДОЛЖЕН БЫТЬ ПОСЛЕДНЕЙ ВХОДНОЙ СТРОКОЙ ЛЮБОГО
    ПРОГРАММНОГО МОДУЛЯ.

       ОПЕРАТОР "END" ИМЕЕТ ВИД:

           END

       В ОСНОВНОЙ ПРОГРАММЕ ПЕРЕДАЧА УПРАВЛЕНИЯ ОПЕРАТОРУ "END"
    ВЫЗЫВАЕТ ПРЕКРАЩЕНИЕ ВЫПОЛНЕНИЯ ПРОГРАММЫ, А В ПОДПРОГРАМ-
    МЕ - ВЫПОЛНЕНИЕ ОПЕРАТОРА "RETURN".



                            - 53 -

                       00014-01.35.02



       5.3. ВВОД/ВЫВОД ДАННЫХ


       ВЫВОД ДАННЫХ ПРОГРАММОЙ ФОРТРАН ВЫПОЛНЯЕТСЯ  С  ПОМОЩЬЮ
    ОПЕРАТОРОВ "READ"  И  "ACCEPT". ВЫВОД  ДАННЫХ  ВЫПОЛНЯЕТСЯ
    ОПЕРАТОРАМИ "WRITE", "TYPE" И "PRINT". НЕКОТОРЫЕ  ИЗ  ЭТИХ
    ОПЕРАТОРОВ ИСПОЛЬЗУЮТСЯ В СОЧЕТАНИИ СО СПЕЦИФИКАЦИЯМИ ФОР-
    МАТА, КОТОРЫЕ УПРАВЛЯЮТ РЕДАКТИРОВАНИЕМ И  ПРЕОБРАЗОВАНИЕМ
    ДАННЫХ ИЗ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ В СИМВОЛЬНУЮ  ФОРМУ  И
    НАОБОРОТ.

       КАЖДЫЙ ОПЕРАТОР "READ" ИЛИ  "WRITE"  СОДЕРЖИТ  УКАЗАНИЕ
    ЛОГИЧЕСКОГО УСТРОЙСТВА, С КОТОРОГО ИЛИ НА  КОТОРОЕ  ДОЛЖНА
    БЫТЬ ОСУЩЕСТВЛЕНА ПЕРЕДАЧА  ДАННЫХ. ЛОГИЧЕСКОЕ  УСТРОЙСТВО
    МОЖЕТ СООТВЕТСТВОВАТЬ ЛИБО ВНЕШНЕМУ УСТРОЙСТВУ, ЛИБО ФАЙЛУ.
    В ОПЕРАТОРАХ "TYPE" И "ACCEPT" ТАКИХ УКАЗАНИЙ  НЕ  ИМЕЕТСЯ,
    ПОСКОЛЬКУ  ОНИ  ВЫЗЫВАЮТ ПЕРЕДАЧУ ДАННЫХ С ИЛИ НА ТЕРМИНАЛ.
    АНАЛОГИЧНО, ОПЕРАТОР "PRINT" СЛУЖИТ ДЛЯ ВЫВОДА  ДАННЫХ  НА
    УСТРОЙСТВО ПЕЧАТИ.

       ОПЕРАТОРЫ "READ" И "WRITE" МОГУТ ПРИНАДЛЕЖАТЬ  К  ОДНОЙ
    ИЗ СЛЕДУЮЩИХ КАТЕГОРИЙ:

    НЕФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД
       - ПРИ ВЫПОЛНЕНИИ ОПЕРАТОРОВ НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬ-
         НОГО ВВОДА/ВЫВОДА ОСУЩЕСТВЛЯЕТСЯ  ПЕРЕДАЧА  ДВОИЧНЫХ
         ДАННЫХ БЕЗ ПРЕОБРАЗОВАНИЯ;

    ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД
       - ПРИ ВЫПОЛНЕНИИ ОПЕРАТОРОВ ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬ-
         НОГО ВВОДА/ВЫВОДА ОСУЩЕСТВЛЯЕТСЯ ПЕРЕДАЧА  СИМВОЛЬ-
         НЫХ ДАННЫХ, ПРИЧЕМ ДЛЯ ПРЕОБРАЗОВАНИЯ ДАННЫХ В СИМ-
         ВОЛЫ ПРИ ВЫВОДЕ И ВО  ВНУТРЕННЮЮ  ФОРМУ  ПРИ  ВВОДЕ
         ИСПОЛЬЗУЕТСЯ СПЕЦИФИКАЦИИ ФОРМАТА;

    НЕФОРМАТНЫЙ ВВОД/ВЫВОД С ПРЯМЫМ ДОСТУПОМ
       - ОПЕРАТОРЫ НЕФОРМАТНОГО ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУ-
         ПОМ СЛУЖАТ ДЛЯ ПЕРЕДАЧИ ДАННЫХ  БЕЗ  ПРЕОБРАЗОВАНИЯ
         НА УСТРОЙСТВАХ ПРЯМОГО ДОСТУПА;

    НЕПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД ПОД УПРАВЛЕНИЕМ СПИСКА
       - ОПЕРАТОРЫ ПОСЛЕДОВАТЕЛЬНОГО ВВОДА/ВЫВОДА ПОД УПРАВ-
         ЛЕНИЕМ СПИСКА ПЕРЕДАЮТ СИМВОЛЬНЫЕ  ДАННЫЕ. ПРЕОБРА-
         ЗОВАНИЕ ДАННЫХ ВО ВНУТРЕННЮЮ ФОРМУ ПРИ  ВВОДЕ  И  В
         СИМВОЛЫ ПРИ ВЫВОДЕ ОСУЩЕСТВЛЯЕТСЯ  ПО  ТИПУ  ДАННЫХ
         СООТВЕТСТВУЮЩЕГО ЭЛЕМЕНТА СПИСКА ВВОДА/ВЫВОДА.

     ОПЕРАТОР "READ" ИЛИ "WRITE" ЛЮБОГО ВИДА МОЖЕТ  ПЕРЕДАТЬ
   УПРАВЛЕНИЕ ДРУГОМУ ОПЕРАТОРУ, ЕСЛИ ПРИ ЕГО ВЫПОЛНЕНИИ БУ-
   ДЕТ ОБНАРУЖЕН КОНЕЦ ФАЙЛА ИЛИ ОШИБОЧНОЕ СОСТОЯНИЕ.

     ВСПОМОГАТЕЛЬНЫЕ ОПЕРАТОРЫ ВВОДА/ВЫВОДА "REWIND", "FIND"
   И "BACKSPACE" НЕ ВЫПОЛНЯЮТ ПЕРЕДАЧИ ДАННЫХ, А СЛУЖАТ ДЛЯ
   УПРАВЛЕНИЯ ПОЛОЖЕНИЕМ УКАЗАТЕЛЕЙ ФАЙЛА. ОПЕРАТОР "ENDFILE"
   ЗАПИСЫВАЕТ СПЕЦИАЛЬНУЮ ЗАПИСЬ,  КОТОРАЯ  БУДЕТ  ЯВЛЯТЬСЯ
   ПРИЗНАКОМ КОНЦА ФАЙЛА (И ПЕРЕДАЧИ УПРАВЛЕНИЯ "END=").
   ОПЕРАТОР "DEFINE FILE" ОПИСЫВАЕТ  ЛОГИЧЕСКОЕ  УСТРОЙСТВО
   КАК  ФАЙЛ  НА  УСТРОЙСТВЕ  ПРЯМОГО  ДОСТУПА И ОПРЕДЕЛЯЕТ



                           - 54 -

                      00014-01.35.02



   ХАРАКТЕРИСТИКИ ЭТОГО ФАЙЛА. ОПЕРАТОРЫ "ENCODE" И "DECODE"
   ВЫПОЛНЯЮТ ПРЕОБРАЗОВАНИЕ ДАННЫХ В ОПЕРАТИВНОЙ ПАМЯТИ.

     ИМЕЮТСЯ ЕЩЕ ДВА ВСПОМОГАТЕЛЬНЫХ ОПЕРАТОРА ВВОДА/ВЫВОДА:
   "OPEN" И "CLOSE". ОПЕРАТОР "OPEN" УСТАНАВЛИВАЕТ СООТВЕТ-
   СТВИЕ МЕЖДУ ЛОГИЧЕСКИМ УСТРОЙСТВОМ И ФАЙЛОМ ИЛИ ФИЗИЧЕС-
   КИМ УСТРОЙСТВОМ И ОПИСЫВАЕТ ХАРАКТЕРИСТИКИ,  ТРЕБУЮЩИЕСЯ
   ДЛЯ ВЫПОЛНЕНИЯ   "READ"   И   "WRITE". ОПЕРАТОР  "CLOSE"
   ОТМЕНЯЕТ СООТВЕТСТВИЕ МЕЖДУ ФАЙЛОМ ИЛИ ФИЗИЧЕСКИМ УСТРОЙ-
   СТВОМ И ЛОГИЧЕСКИМ УСТРОЙСТВОМ.



               5.3.1. НОМЕРА ЛОГИЧЕСКИХ УСТРОЙСТВ
                      ВВОДА/ВЫВОДА



     ФОРТРАН  ОС  БК-11  МОЖЕТ  ПОЛЬЗОВАТЬСЯ  ВСЕМИ  ВНЕШНИМИ
   УСТРОЙСТВАМИ, ПОДДЕРЖИВАЕМЫМИ ОПЕРАЦИОННОЙ СИСТЕМОЙ. ОПЕРА-
   ТОРЫ ВВОДА/ВЫВОДА ОБРАЩАЮТСЯ К УСТРОЙСТВАМ  ВВОДА/ВЫВОДА С
   ПОМОЩЬЮ НОМЕРОВ ЛОГИЧЕСКИХ  УСТРОЙСТВ.  НОМЕР  ЛОГИЧЕСКОГО
   УСТРОЙСТВА ПРЕДСТАВЛЯЕТ СОБОЙ ЦЕЛУЮ КОНСТАНТУ ИЛИ ПЕРЕМЕН-
   НУЮ С ПОЛОЖИТЕЛЬНЫМ ЗНАЧЕНИЕМ.

     В НЕКОТОРЫХ ВИДАХ ОПЕРАТОРОВ ВВОДА/ВЫВОДА НЕ УКАЗЫВАЕТСЯ
   НОМЕР ЛОГИЧЕСКОГО   УСТРОЙСТВА. ЭТИ  ОПЕРАТОРЫ  ИСПОЛЬЗУЮТ
   НЕЯВНЫЙ НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА, КОТОРЫЙ ОПЕРЕДЕЛЯЕТ-
   СЯ САМОЙ СИСТЕМОЙ.


                5.3.2. УКАЗАТЕЛИ ФОРМАТА


     УКАЗАТЕЛИ ФОРМАТА ИСПОЛЬЗУЮТСЯ В  ОПЕРАТОРАХ  ФОРМАТНОГО
   ВВОДА/ВЫВОДА. УКАЗАТЕЛЬ ФОРМАТА - ЭТО ЛИБО МЕТКА ОПЕРАТОРА
   "FORMAT", ЛИБО ИМЯ МАССИВА, СОДЕРЖАЩЕГО ТЕКСТОВЫЕ  ДАННЫЕ,
   ИНТЕРПРЕТИРУЕМЫЕ КАК ОПИСАНИЕ ФОРМАТА.

     УКАЗАТЕЛЬ ФОРМАТА МОЖЕТ БЫТЬ ТАКЖЕ ЗВЕЗДОЧКОЙ  (*),  ЧТО
   УКАЗЫВАЕТ НА ПРЕОБРАЗОВАНИЯ ПОД УПРАВЛЕНИЕМ СПИСКА.


                5.3.3. ЕДИНИЦЫ ВВОДА/ВЫВОДА


     ОБМЕН  ИНФОРМАЦИЕЙ  С  ПОМОЩЬЮ  ОПЕРАТОРОВ  ВВОДА/ВЫВОДА
   ВЕДЕТСЯ ОПРЕДЕЛЕННЫМИ ПОРЦИЯМИ, КОТОРЫЕ НАЗЫВАЮТСЯ ЗАПИСЯ-
   МИ. КОЛИЧЕСТВО  ИНФОРМАЦИИ, КОТОРОЕ  МОЖЕТ  СОДЕРЖАТЬСЯ  В
   ОДНОЙ ЗАПИСИ, А ТАКЖЕ СПОСОБЫ РАЗДЕЛЕНИЯ ЭТИХ ЗАПИСЕЙ ЗАВИ-
   СЯТ ОТ ИСПОЛЬЗУЕМОГО НОСИТЕЛЯ ИНФОРМАЦИИ.

     ДЛЯ НЕФОРМАТНОГО ВВОДА/ВЫВОДА КОЛИЧЕСТВО ДАННЫХ, КОТОРОЕ
   ДОЛЖНО    БЫТЬ    ПЕРЕДАНО,   ОПРЕДЕЛЯЕТСЯ      ОПЕРАТОРОМ


                           - 55 -

                      00014-01.35.02


   ВВОДА/ВЫВОДА. В СЛУЧАЕ ЖЕ ФОРМАТНОГО ВВОДА/ВЫВОДА КОЛИЧЕСТ-
   ВО ПЕРЕДАВАЕМОЙ ИНФОРМАЦИИ ОПРЕДЕЛЯЕТСЯ СОВМЕСТНО ОПЕРАТОРОМ
   ВВОДА/ВЫВОДА И СПЕЦИФИКАЦИЯМИ  В  СООТВЕТСТВУЮЩЕМ  ОПИСАНИИ
   ФОРМАТА.

     НАЧАЛО   ВЫВОЛНЕНИЯ   ОПЕРАТОРА  ВВОДА/ВЫВОДА  ИНИЦИИРУЕТ
   ПЕРЕДАЧУ НОВОЙ ЗАПИСИ. ЕСЛИ ОПЕРАТОР ВВОДА ПОТРЕБОВАЛ ТОЛЬ-
   КО ЧАСТЬ ЗАПИСИ, ОСТАЛЬНАЯ ЧАСТЬ ЗАПИСИ ТЕРЯЕТСЯ. В  СЛУЧАЕ
   ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВВОДА/ВЫВОДА ОТДЕЛЬНЫМ  ОПЕРА-
   ТОРОМ ВВОДА/ВЫВОДА МОЖЕТ БЫТЬ ПЕРЕДАНО НЕСКОЛЬКО ЗАПИСЕЙ.



                5.3.4. СПИСКИ ВВОДА/ВЫВОДА

     СПИСОК ВВОДА/ВЫВОДА ОПРЕДЕЛЯЕТ ЭЛЕМЕНТЫ ДАННЫХ, С КОТОРЫМИ
   БУДЕТ МАНИПУЛИРОВАТЬ ОПЕРАТОР, СОДЕРЖАЩИЙ СПИСОК. ЭТОТ СПИ-
   СОК СОДЕРЖИТ ИМЕНА ПЕРЕМЕННЫХ, МАССИВОВ И ЭЛЕМЕНТОВ МАССИВОВ,
   ЗНАЧЕНИЯ КОТОРЫХ ДОЛЖНЫ  БЫТЬ  ПЕРЕДАНЫ. КРОМЕ  ТОГО  СПИСОК
   ОПЕРАТОРА ВЫВОДА МОЖЕТ СОДЕРЖАТЬ КОНСТАНТЫ И ВЫРАЖЕНИЯ.

     СПИСОК ВВОДА/ВЫВОДА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

       S[,S]...

   ГДЕ

   S
      - ПРОСТОЙ СПИСОК ИЛИ СПИСОК С НЕЯВНЫМ ЦИКЛОМ.

      ОПЕРАТОР ВВОДА/ВЫВОДА ПРИСВАИВАЕТ ВВОДИМЫЕ ЗНАЧЕНИЯ ЭЛЕМЕН-
   ТАМ СПИСКА ИЛИ ВЫВОДИТ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ СПИСКА В ТОЙ ПОСЛЕДО-
   ВАТЕЛЬНОСТИ, В КАКОЙ ОНИ ВСТРЕЧАЮТСЯ В СПИСКЕ (СЛЕВА НАПРАВО).


              5.3.4.1. ПРОСТЫЕ СПИСКИ

      ПРОСТОЙ ЭЛЕМЕНТ СПИСКА ВВОДА/ВЫВОДА СОСТОИТ  ИЗ  ОТДЕЛЬНОЙ
   ПЕРЕМЕННОЙ, ОБРАЩЕНИЯ К МАССИВУ, ЭЛЕМЕНТА МАССИВА,  КОНСТАНТЫ
   ИЛИ ВЫРАЖЕНИЯ. ПРОСТОЙ СПИСОК ВВОДА/ВЫВОДА СОДЕРЖИТ ИЛИ ПРОС-
   ТОЙ ЭЛЕМЕНТ СПИСКА ВВОДА/ВЫВОДА ИЛИ ГРУППЫ ИЗ ДВУХ ИЛИ БОЛЕЕ
   ТАКИХ ЭЛЕМЕНТОВ, РАЗДЕЛЕННЫХ ЗАПЯТЫМИ.

      ЕСЛИ В СПИСКЕ ВВОДА/ВЫВОДА ВСТРЕЧАЕТСЯ ИДЕНТИФИКАТОР  МАС-
   СИВА БЕЗ СПИСКА ИНДЕКСОВ, ТО ОПЕРАТОРЫ "READ"   ИЛИ  "ACCEPT"
   ВВЕДУТ СТОЛЬКО ДАННЫХ, СКОЛЬКО НУЖНО, ЧТОБЫ ЗАПОЛНИТЬ КАЖДЫЙ
   ЭЛЕМЕНТ МАССИВА; ОПЕРАТОРЫ "WRITE", "TYPE" ИЛИ "PRINT" ВЫВЕ-
   ДУТ ЗНАЧЕНИЯ ВСЕХ ЭЛЕМЕНТОВ МАССИВА. ПЕРЕДАЧА ДАННЫХ НАЧИНАЕТ-
   СЯ С НАЧАЛЬНОГО ЭЛЕМЕНТА МАССИВА  И  ВЫПОЛНЯЕТСЯ  В   ПОРЯДКЕ
   ИНДЕКСНОЙ ПРОГРЕССИИ; ПРИ ЭТОМ, ЧЕМ ЛЕВЕЕ  НАХОДИТСЯ  ИНДЕКС,
   ТЕМ БЫСТРЕЕ ОН ИЗМЕНЯЕТСЯ. НАПРИМЕР, ЕСЛИ ИДЕНТИФИКАТОР МАС-
   СИВА,   ОПРЕДЕЛЕННОГО   КАК



                              - 56 -

                         00014-01.35.02


        ARRAY (3,3)

    ВСТРЕТИТСЯ БЕЗ СПИСКА ИНДЕКСОВ В ОПЕРАТОРЕ "READ", ТО ЭТОТ
    ОПЕРАТОР ПРИСВОИТ ЗНАЧЕНИЯ ИЗ ВВДЕДЕННОЙ ЕДИНИЦЫ (ИЛИ ЕДИ-
    НИЦ) ЗАПИСИ ЭЛЕМЕНТАМ ARRAY(1,1), ARRAY(2,1),  ARRAY(3,1),
    ARRAY(1,2) И ТАК ДАЛЕЕ, ВПЛОТЬ ДО ARRAY(3,3).

      В ОПЕРАТОРАХ "READ" И  "ACCET"  ПЕРЕМЕННЫЕ,  НАХОДЯЩИЕСЯ
    В СПИСКЕ, МОГУТ БЫТЬ ИСПОЛЬЗОВАНЫ КАК ИНДЕКСЫ МАССИВА, ИМЯ
    КОТОРОГО СОДЕРЖИТСЯ ДАЛЕЕ В  ЭТОМ  СПИСКЕ. НАПРИМЕР,  ЕСЛИ
    ВЫПОЛНЯЕТСЯ ОПЕРАТОР

         READ (1,250) J,K,ARRAY(J,K)

    250 FORMAT (I1,X,I1,F6.2)

    А ВХОДНАЯ ЕДИНИЦА ЗАПИСИ СОДЕРЖИТ СЛЕДУЮЩИЕ ВЕЛИЧИНЫ:

         1, 3, 921.33

    ТО  ЗНАЧЕНИЕ  "921.33"  БУДЕТ  ПРИСВОЕНО  ЭЛЕМЕНТУ МАССИВА
    ARRAY(1,3). ПЕРВАЯ ВВЕДЕННАЯ ВЕЛИЧИНА ПРИСВАИВАЕТСЯ  ПЕРЕ-
    МЕННОЙ "J", ВТОРАЯ - ПЕРЕМЕННОЙ "K" И, ТАКИМ ОБРАЗОМ, УСТА-
    НАВЛИВАЮТСЯ ФАКТИЧЕСКИЕ  ЗНАЧЕНИЯ  ИНДЕКСОВ  ДЛЯ  ЭЛЕМЕНТА
    ARRAY(J,K). ПЕРЕМЕННЫЕ, КОТОРЫЕ ПРЕДНАЗНАЧАЮТСЯ ДЛЯ ИСПОЛЬ-
    ЗОВАНИЯ ИХ В КАЧЕСТВЕ  ИНДЕКСОВ ВЫШЕОПИСАННЫМ СПОСОБОМ,ОБЯ-
    ЗАНЫ НАХОДИТЬСЯ В  СПИСКЕ  ВВОДА/ВЫВОДА  СЛЕВА  ОТ  СПИСКА
    ИНДЕКСОВ МАССИВА, В КОТОРОМ ОНИ ИСПОЛЬЗУЮТСЯ.

      В СПИСОК ОПЕРАТОРА ВЫВОДА МОЖЕТ БЫТЬ ВКЛЮЧЕНО ЛЮБОЕ ДОПУ-
    СТИМОЕ ВЫРАЖЕНИЕ. ОДНАКО, ЭТО ВЫРАЖЕНИЕ НЕ ДОЛЖНО  ВЫЗЫВАТЬ
    ПОПЫТОК ВЫПОЛНИТЬ ДАЛЬНЕЙШИЕ ОПЕРАЦИИ ВВОДА/ВЫВОДА.ПРИМЕРОМ
    ТАКОГО НЕПРАВИЛЬНОГО ИСПОЛЬЗОВАНИЯ ВЫРАЖЕНИЯ ЯВЛЯЕТСЯ ОБРА-
    ЩЕНИЕ В ВЫРАЖЕНИИ ИЗ СПИСКА ОПЕРАТОРА ВЫВОДА К ПОДПРОГРАМ-
    МЕ-ФУНКЦИИ, КОТОРАЯ САМА ВЫПОЛНЯЕТ ВВОД/ВЫВОД.

      ЗАПРЕЩАЕТСЯ ВКЛЮЧЕНИЕ ВЫРАЖЕНИЙ В СПИСОК ОПЕРАТОРА ВВОДА,
    ЗА ИСКЛЮЧЕНИЕМ ВЫРАЖЕНИЯ ИНДЕКСА В ОБРАЩЕНИИ К МАССИВУ.


            5.3.4.2. СПИСКИ С ЦИКЛАМИ


      СПИСКИ С ЦИКЛАМИ ИСПОЛЬЗУЮСЯ ДЛЯ ОПРЕДЕЛЕНИЯ ПОВТОРЕНИЙ В
    СПИСКЕ ВВОДА/ВЫВОДА, ДЛЯ ПЕРЕДАЧИ ТОЛЬКО  ЧАСТИ  НЕКОТОРОГО
    МАССИВА ИЛИ ДЛЯ ПЕРЕДАЧИ ЭЛЕМЕНТОВ МАССИВА В ПОСЛЕДОВАТЕЛЬ-
    НОСТИ, ОТЛИЧНОЙ ОТ ИНДЕКСНОЙ ПРОГРЕССИИ. ЭТОТ ТИП  ЭЛЕМЕНТА
    СПИСКА РАБОТАЕТ  ТАК, КАК  БУДТО  ИМЕЕСЯ  ЧАСТЬ   ОПЕРАТОРА
    ВВОДА/ВЫВОДА, ПОМЕЩЕННАЯ В ОБЛАСТЬ ДЕЙСТВИЯ ОПЕРАТОРА "DO",
    И УПРАВЛЯЮЩАЯ ПЕРЕМЕННАЯ ЭТОГО  ПОДРАЗУМЕВАЕМОГО  ОПЕРАТОРА
    ИСПОЛЬЗУЕТСЯ ДЛЯ ОПРЕДЕЛЕНИЯ ЗНАЧЕНИЯ (ИЛИ ЗНАЧЕНИЙ),КОТО-
    РЫЕ ДОЛЖНЫ БЫТЬ ПЕРЕДАНЫ ВО ВРЕМЯ ИТЕРАЦИИ ЦИКЛА.

      СПИСОК С ЦИКЛОМ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

            (K, I=E1,E2[,E3])


                           - 57 -

                      00014-01.35.02



     ГДЕ

     K
         - СПИСОК ВВОДА/ВЫВОДА;

     I
         - ОПРЕДЕЛЕНИЕ УПРАВЛЯЮЩЕЙ ПЕРЕМЕННОЙ.

        ВЕЛИЧИНЫ I, E1, E2, E3 ИМЕЮТ ТАКОЙ ЖЕ САМЫЙ  ВИД, КАК  В
     ОПЕРАТОРЕ "DO". ПРАВИЛА ДЛЯ НАЧАЛЬНОГО И КОНЕЧНОГО ПАРАМЕТ-
     РОВ, А ТАКЖЕ ДЛЯ ШАГА И УПРАВЛЯЮЩЕЙ ПЕРЕМЕННОЙ СПИСКА С ЦИК-
     ЛОМ ОСТАЮТСЯ ТАКИМИ ЖЕ, КАК И В  СЛУЧАЕ  ОПЕРАТОРА  "DO". В
     ТОЙ ЖЕ СТЕПЕНИ, В КАКОЙ ПОЗВАЛЯЮТ ПРАВИЛА ПОЛЬЗОВАНИЯ ОПЕРА-
     ТОРОМ "DO",ВМЕСТО ЗНАЧЕНИЙ НАЧАЛЬНОГО И КОНЕЧНОГО ПАРАМЕТРОВ,
     А  ТАКЖЕ  ВМЕСТО  ШАГА, МОГУТ   ИСПОЛЬЗОВАТЬСЯ    ВЫРАЖЕНИЯ.
     СПИСОК МОЖЕТ СОДЕРЖАТЬ ОБРАЩЕНИЯ  К  УПРАВЛЯЮЩЕЙ  ПЕРЕМЕННОЙ
     ПРИ УСЛОВИИ, ЧТО ЕЕ ЗНАЧЕНИЕ НЕ ИЗМЕНЯЕТСЯ. ОБЛАСТЬЮ  ДЕЙСТ-
     ВИЯ НЕЯВНОГО ЦИКЛА ЯВЛЯЕТСЯ СПИСОК.

          НАПРИМЕР:

                WRITE (4,500) (A,B,C, F=1,3)
                WRITE (6,70) L M,(I,(J,P(I),Q(I,J),J=1,L),I=1,M)
                READ (1,100)(((ARAY(M,N,I),I=2,9),N=2,9),M=2,9)

        ОПРЕДЕЛЕНИЕ ПЕРВОЙ  УПРАВЛЯЮЩЕЙ  ПЕРЕМЕННОЙ  ЭКВИВАЛЕНТНО
     САМОМУ ВНУТРЕННЕМУ ОПЕРАТОРУ  "DO"  ИЗ  МНОЖЕСТВА  ВЛОЖЕННЫХ
     ЦИКЛОВ, И , СЛЕДОВАТЕЛЬНО, ЭТА ПЕРЕМЕННАЯ  БУДЕТ  ИЗМЕНЯТЬСЯ
     ЧАЩЕ. НАПРИМЕР, ОПЕРАТОРЫ:

                WRITE (5,150) ((FAST(K,L),L=1,10)K=1,10,2)
            150 FORMAT (F10.2)

     АНАЛОГИЧНЫ СЛЕДУЮЩИМ ОПЕРАТОРАМ

                DO 50 K=1,10,2
                DO 50 L=1,10
                WRITE (5,150) FAST(K,L)
            150 FORMAT (F10.2)
             50 CONTINUE

     ТАК КАК ВНУТРЕННИЙ ЦИКЛ ВЫПОЛНЯЕТСЯ ДЕСЯТЬ РАЗ  ДЛЯ  КАЖДОЙ
     ИТЕРАЦИИ ВНЕШНЕГО ЦИКЛА, ВТОРОЙ ИНДЕКС "L" ПРОБЕГАЕТ ЗНАЧЕНИЯ
     ОТ ОДНОГО ДО ДЕСЯТИ ДЛЯ  КАЖДОГО  ЗНАЧЕНИЯ  ПЕРВОГО  ИНДЕКСА.
     ЭТО ЯВЛЯЕТСЯ ОБРАТНЫМ ПОРЯДКОМ ПО ОТНОШЕНИЮ К ИНДЕКСНОЙ ПРО-
     ГРЕССИИ. КРОМЕ ТОГО, Т.К. "К" УВЕЛИЧИВАЕТСЯ  НА  "2",  БУДУТ
     ВЫВЕДЕНЫ  ТОЛЬКО  ЧЕТНЫЕ  ОБРАЗЦЫ  МАССИВА. ПЕРЕД  ОЧЕРЕДНЫМ
     УВЕЛИЧЕНИЕМ УПРАВЛЯЮЩЕЙ ПЕРЕМЕННОЙ ВЫПОЛНЯЕТСЯ ПЕРЕДАЧА ВСЕГО
     СПИСКА С НЕЯВНЫМ ЦИКЛОМ. НАПРИМЕР:

                 READ (5,1000) (P(I),(Q(I,J),J=1,10),I=1,5)

     ПРИСВАИВАЕТ ВВЕДЕННЫЕ ЗНАЧЕНИЯ ЭЛЕМЕНТАМ МАССИВОВ "P" И "Q"
     В СЛЕДУЮЩЕЙ ПОСЛЕДОВАТЕЛЬНОСТИ:

                 P(1), Q(1,1), Q(1,2),...,Q(1,10)
                 P(2), Q(2,1), Q(2,2),...,Q(2,10)

                  .       .      .     .     .
                  .       .      .     .     .



                            - 58 -

                       00014-01.35.02


              P(5), Q(5,1), Q(5,2),...,Q(5,10)

          ПРИ ОБРАБОТКЕ МНОГОМЕРНЫХ МАССИВОВ ДОПУСКАЕТСЯ ИСПОЛЬ-
     ЗОВАНИЕ КОМБИНАЦИИ ИЗ ФИКСИРОВАННЫХ ИНДЕКСОВ  И  ИНДЕКСОВ,
     ИЗМЕНЯЮЩИХСЯ ПО НЕЯВНОМУ ЦИКЛУ. НАПРИМЕР, ОПЕРАТОР

              READ(3,2222) (BOX(1,J), J=1,10)

     ПРИСВАИВАЕТ  ВВОДИМЫЕ  ЗНАЧЕНИЯ  ЭЛЕМЕНТАМ   МАССИВА   ОТ
     BOX(1,1) ДО BOX(1,10), А ЗАТЕМ ПРЕКРАЩАЕТ ВВОД, НЕ ЗАТРА-
     ГИВАЯ ДРУГИХ ЭЛЕМЕНТОВ ДАННОГО МАССИВА.

          МОЖНО ТАКЖЕ ВЫВЕСТИ НЕПОСРЕДСТВЕННО ЗНАЧЕНИЯ УПРАВЛЯ-
     ЮЩЕЙ ПЕРЕМЕННОЙ, КАК, НАПРИМЕР, В ОПЕРАТОРЕ

              WRITE (6,3300) (I,I=1,20)

     КОТОРЫЙ ВЫВОДИТ НА ПЕЧАТЬ ЦЕЛЫЕ ЧИСЛА ОТ ОДНОГО ДО ДВАДЦА-
     ТИ.

              5.3.5. НЕФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД

          НЕФОРМАТНЫЙ ВВОД/ВЫВОД  ПРЕДСТАВЛЯЕТ  СОБОЙ  ПЕРЕДАЧУ
     ДАННЫХ ВО ВНУТРЕННЕМ (ДВОИЧНОМ) ФОРМАТЕ БЕЗ  ПРЕОБРАЗОВАНИЯ
     ИЛИ РЕДАКТИРОВАНИЯ. НЕФОРМАТНЫЙ ВВОД/ВЫВОД ОБЫЧНО  ИСПОЛЬ-
     ЗУЕТСЯ, КОГДА ВЫВЕДЕННЫЕ   ДАННЫЕ  ИЗ  НЕКОТОРОЙ  ПРОГРАММЫ
     ВПОСЛЕДСТВИИ ДОЛЖНЫ БЫТЬ ВВЕДЕНЫ В ЭТУ ЖЕ ПРОГРАММУ (ИЛИ ЕЙ
     ПОДОБНУЮ). ПРИ НЕФОРМАТНОМ  ВВОДЕ/ВЫВОДЕ  ЭКОНОМИТСЯ  ВРЕМЯ
     ВЫПОЛНЕНИЯ ЗА СЧЕТ ОТКАЗА ОТ ПРОЦЕССА ПРЕОБРАЗОВАНИЯ ДАННЫХ,
     ОБЕСПЕЧИВАЕТСЯ БОЛЬШАЯ  ТОЧНОСТЬ  ВЫВЕДЕННЫХ  ДАННЫХ И, КАК
     ПРАВИЛО, ЭКОНОМИТСЯ МЕСТО, ТРЕБУЮЩЕЕСЯ ДЛЯ  ХРАНЕНИЯ  ФАЙЛА
     ДАННЫХ.

              5.3.5.1. ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
                       ВВОДА "READ"


          ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВВОДА  "READ"
     ВВОДИТ ОДНУ НЕФОРМАТНУЮ ЗАПИСЬ С ОПРЕДЕЛЕННОГО ЛОГИЧЕСКОГО
     УСТРОЙСТВА И ПРИСВАИВАЕТ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ ЗАПИСИ ЭЛЕМЕН-
     ТАМ СПИСКА ВВОДА/ВЫВОДА БЕЗ ПРЕОБРАЗОВАНИЯ В ТОЙ ПОСЛЕДОВА-
     ТЕЛЬНОСТИ, В КОТОРОЙ ОНИ РАСПОЛОЖЕНЫ, СЛЕВА НАПРАВО. КОЛИ-
     ЧЕСТВО ДАННЫХ, ПРИСВАИВАЕМЫХ КАЖДОМУ ЭЛЕМЕНТУ, ОПРЕДЕЛЯЕТСЯ
     ЕГО ТИПОМ ДАННЫХ.

          ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВВОДА "READ"
     ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                 READ (U[,END=S][,ERR=S]9) [K]

     ГДЕ

                            - 59 -

                       00014-01.35.02

     U
        - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

     S
        - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

     К
        - СПИСОК ВВОДА.

        ОПЕРАТОР  НЕФОРМАТНОГО   ПОСЛЕДОВАТЕЛЬНОГО  ВВОДА  "READ"
     СЧИТЫВАЕТ РОВНО ОДНУ ЗАПИСЬ. ЕСЛИ СПИСОК ВВОДА НЕ ИСПОЛЬЗУЕТ
     ВСЕХ ЗНАЧЕНИЙ ИЗ ЭТОЙ ЗАПИСИ, ОСТАЛЬНАЯ ЧАСТЬ  ЗАПИСИ ОТБРА-
     СЫВАЕТСЯ. ЕСЛИ ВСЕ СОДЕРЖИМОЕ ЗАПИСИ БУДЕТ ИСПОЛЬЗОВАНО  ЕЩЕ
     ДО ТОГО, КАК ЗАКОНЧИТСЯ СПИСОК, БУДЕТ ЗАФИКСИРОВАНА ОШИБКА.

        ЕСЛИ ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВВОДА "READ"
     НЕ СОДЕРЖИТ СПИСКА ВВОДА, ОН ВЫЗЫВАЕТ ПРОПУСК ОДНОЙ ЗАПИСИ.

        ОПЕРАТОР НЕФОРМАТНОГО  ПОСЛЕДОВАТЕЛЬНОГО   ВВОДА  "READ"
     МОЖЕТ БЫТЬ ИСПОЛЬЗОВАН ДЛЯ ЧТЕНИЯ ТОЛЬКО ТЕХ ЗАПИСЕЙ, КОТО-
     РЫЕ БЫЛИ ВЫВЕДЕНЫ С ПОМОЩЬЮ ОПЕРАТОРОВ НЕФОРМАТНОГО  ПОСЛЕ-
     ДОВАТЕЛЬНОГО ВЫВОДА.

        ПРИМЕРЫ:

        READ (1) FORM111,FORM12 (СЧИТЫВАЕТ ОДНУ ЗАПИСЬ
                                С ЛОГИЧЕСКОГО УСТРОЙСТВА
                                "1", ПРИСВАИВАЕТ ЗНАЧЕНИЯ
                                ПЕРЕМЕННЫМ "FORM111" И
                                "FORM12")
        READ (9)                (ПРОДВИГАЕТ ЛОГИЧЕСКОЕ УСТ-
                                РОЙСТВО 9 НА ОДНУ ЗАПИСЬ)



              5.3.5.2. ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
                       ВЫВОДА "WRITE"


          ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВЫВОДА "WRITE"
      ВЫВОДИТ ЗНАЧЕНИЯ СПИСКА ВЫВОДА НА ОПРЕДЕЛЕННОЕ ЛОГИЧЕСКОЕ
      УСТРОЙСТВО В ВИДЕ ОДНОЙ НЕФОРМАТНОЙ ЗАПИСИ;
      ПРЕОБРАЗОВАНИЯ ДАННЫХ ПРИ ЭТОМ НЕ ПРОИСХОДИТ.

          ОПЕРАТОР НЕФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВЫВОДА "WRITE"
      ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

             WRITE (U[,ERR=S]) [K]

      ГДЕ

      U
          - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

      S
          - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;


                            - 60 -

                       00014-01.35.02



      K
          - СПИСОК ВЫВОДА

        ЕСЛИ ОПЕРАТОР НЕФОРМАТНОГО ВЫВОДА "WRITE" НЕ СОДЕРЖИТ
      СПИСКА ВЫВОДА, НА УКАЗАННОЕ УСТРОЙСТВО  ВЫВОДИТСЯ  ОДНА
      ПУСТАЯ ЗАПИСЬ.

      ПРИМЕРЫ.

      WRITE (3) (LIST(I),I=1,5)  (НА ЛОГИЧЕСКОЕ УСТРОЙСТВО 3
                                 ВЫВОДЯТСЯ С ПЕРВОГО ПО ПЯТЫЙ
                                 ЭЛЕМЕНТЫ МАССИВА "LIST")
                                 (ЗАПИСЬ ПУСТОЙ ЗАПИСИ
                                 НА ЛОГИЧЕСКОЕ УСТРОЙСТВО 4).


        5.3.6. ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД


        ОПЕРАТОРЫ ФОРМАТНОГО ВВОДА/ВЫВОДА ИСПОЛЗУЮТСЯ В СОЧЕ-
      ТАНИИ С ОПЕРАТОРАМИ "FORMAT" (ИЛИ СО СПЕЦИФИКАЦИЯМИ ФОР-
      МАТА, ХРАНЯЩИМИСЯ В МАССИВАХ) ДЛЯ ПРЕОБРАЗОВАНИЯ И РЕДАК-
      ТИРОВАНИЯ ВЫВОДИМЫХ ДАННЫХ, А ПРИ ВВОДЕ ДЛЯ ПРЕОБРАЗОВА-
      НИЯ ДАННЫХ ИЗ ВНЕШНЕГО ФОРМАТА ВО ВНУТРЕННИЙ.




        5.3.6.1. ОПЕРАТОР ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
                 ВВОДА "READ"



        ОПЕРАТОР ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВВОДА "READ" СЧИ-
      ТЫВАЕТ ДАННЫЕ С УКАЗАННОГО ЛОГИЧЕСКОГО УСТРОЙСТВА, ПРЕОБ-
      РАЗУЯ ИХ ВО ВНУТРЕНИИЙ ФОРМАТ СОГЛАСНО СПЕЦИФИКАЦИИ ФОРМА-
      ТА. ПОЛУЧЕННЫЕ ЗНАЧЕНИЯ  ПРИСВАИВАЮТСЯ  ЭЛЕМЕНТАМ  СПИСКА
      ВВОДА.
        ОПЕРАТОР   ФОРМАТНОГО  ПОСЛЕДОВАТЕЛЬНОГО  ВВОДА  "READ"
      ИМЕЕТ ВИД

            READ F [,K]

      ИЛИ

            READ (U,F[,END=S] [,ERR=S])[K]

      ГДЕ

      U
           - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

      F
           - УКАЗАТЕЛЬ ФОРМАТА;

      S
           - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
                              - 61 -

                         00014-01.35.02


      K
           - СПИСОК ВВОДА.

         ЕСЛИ ОПЕРАТОР  "FORMAT", СООТВЕТСТВУЮЩИЙ  ОПЕРАТОРУ ФОР-
      МАТНОГО ВВОДА, СОДЕРЖИТ ТЕКСТОВУЮ КОНСТАНТУ  ИЛИ  БУКВЕННО-
      ЦИФРОВОЙ ЛИТЕРАЛ, ВВОДИМЫЕ ДАННЫЕ БУДУТ СЧИТЫВАТЬСЯ И ЗАНО-
      СИТЬСЯ  НЕПОСРЕДСТВЕННО  В  СПИСОК  СПЕЦИФИКАЦИЙ. НАПРИМЕР,
      ОПЕРАТОРЫ

             READ (5,100)
         100 FORMAT (6НДАННОЕ)

      ВЫЗЫВАЮТ СЧИТЫВАНИЕ ШЕСТИ СИМВОЛОВ И ЗАПОМИНАНИЕ ИХ В СПЕ-
      ЦИФИКАЦИИ ФОРМАТА ТИПА "Н".

          ОПЕРАТОР ВИДА

             READ 150, ALPHA, BETA, CAMMA

      ВЫЗЫВАЕТ СЧИТЫВАНИЕ ДАННЫХ С СИСТЕМНОГО УСТРОЙСТВА.

          ОПЕРАТОРЫ  ФОРМАТНОГО  ВВОДА/ВЫВОДА  ЧИТАЮТ  ИЛИ  ПИШУТ
      ЗАПИСИ ОПРЕДЕЛЕННОЙ ДЛИНЫ В СООТВЕТСТВИИ С ФОРМАТОМ. ЗАПИСЬ
      СОСТОИТ ИЗ РЯДА СИМВОЛОВ КОИ-7, ПЕРЕДАВАЕМЫХ  ПОД  УПРАВЛЕ-
      НИЕМ ФОРМАТНОЙ СПИЦИФИКАЦИИ, ЗА КОТОРЫМ СЛЕДУЕТ  ЗНАК  РАЗ-
      ДЕЛЕНИЯ ЗАПИСИ.

          ЕСЛИ ЧИСЛО ЭЛЕМЕНТОВ В СПИСКЕ МЕНЬШЕ, ЧЕМ  ЧИСЛО  ПОЛЕЙ
      ВО ВВОДИМОЙ ЗАПИСИ, ОСТАВШАЯСЯ ЧАСТЬ ЗАПИСИ  ОТБРАСЫВАЕТСЯ.
      ЕСЛИ ЧИСЛО ЭЛЕМЕНТОВ В СПИСКЕ ВВОДА ПРЕВЫШАЕТ  ЧИСЛО  ПОЛЕЙ
      ВО ВВОДИМОМ СПИСКЕ, ТО БУДЕТ ЗАФИКСИРОВАНО  ОШИБОЧНОЕ  СОС-
      ТОЯНИЕ, ЕСЛИ ТОЛЬКО В СПЕЦИФИКАЦИИ ФОРМАТА НЕ  УКАЗАНО, ЧТО
      ДОЛЖНЫ БЫТЬ СЧИТАНЫ ОДНА ИЛИ БОЛЕЕ ДОПОЛНИТЕЛЬНЫХ ЗАПИСЕЙ.

          ЕСЛИ  СПИСОК  ВВОДА  ОТСУТСТВУЕТ, ВЫПОЛНЯЕТСЯ  ПЕРЕДАЧА
      ДАННЫХ МЕЖДУ ЗАПИСЬЮ И СПЕЦИФИКАЦИЕЙ ФОРМАТА.

          ПРИМЕРЫ.

                  READ (1,700) ARRAY (СЧИТЫВАЕТСЯ ЕДИНИЦА ЗАПИСИ
             700 FORMAT (20F8.2)     С ЛОГИЧЕСКОГО УСТРОЙСТВА 1;
                                     ЗНАЧЕНИЯ ПОЛЕЙ ПРИСВАИВАЮТСЯ
                                     ЭЛЕМЕНТАМ МАССИВА "ARRAY")

                  READ (5,50)
              50 FORMAT (19Н ЗАГОЛОВОК СТРАНИЦЫ)

      ПО ЭТИМ ОПЕРАТОРАМ СЧИТЫВАЕТСЯ 19  СИМВОЛОВ  С  ЛОГИЧЕСКОГО
      УСТРОЙСТВА 5 И ПОМЕЩАЮТСЯ В ОПЕРАТОР "FORMAT".


             5.3.6.2. ОПЕРАТОР ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО
                      ВЫВОДА "WRITE"

           ОПЕРАТОР ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО  ВЫВОДА  "WRITE"
      ПЕРЕДАЕТ ДАННЫЕ НА УКАЗАННОЕ ЛОГИЧЕСКОЕ  УСТРОЙСТВО. СПИСОК
      ВЫВОДА ОПРЕДЕЛЯЕТ ЗНАЧЕНИЯ, КОТОРЫЕ ПРЕОБРАЗУЮТСЯ В СИМВОЛЫ


                          - 62 -

                     00014-01.35.02


     И ВЫВОДЯТСЯ СОГЛАСНО СПЕЦИФИКАЦИИ ФОРМАТА.

           ОПЕРАТОР ФОРМАТНОГО ПОСЛЕДОВАТЕЛЬНОГО  ВЫВОДА  "WRITE"
     ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

           WRITE (U,F[ERR=S][END=S]) [K]

     ГДЕ

     U
          - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

     F
          - УКАЗАТЕЛЬ ФОРМАТА;

     S
          - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

     К
          - СПИСОК ВЫВОДА.

           ЕСЛИ СПИСОК ВЫВОДА ОТСУТСТВУЕТ, ОБМЕН ДАННЫМИ ПОЛНОСТЬЮ
     ПРОИСХОДИТ МЕЖДУ ЗАПИСЬЮ И СПЕЦИФИКАЦИЕЙ ФОРМАТА.

           ДАННЫЕ, ПЕРЕДАВАЕМЫЕ ОПЕРАТОРОМ  ФОРМАТНОГО  ПОСЛЕДОВА-
     ТЕЛЬНОГО ВЫВОДА "WRITE", ОБЫЧНО СОСТАВЛЯЮТ ОДНУ ФОРМАТНУЮ ЗА-
     ПИСЬ. ОДНАКО В СПЕЦИФИКАЦИИ ФОРМАТА МОЖЕТ  БЫТЬ  УКАЗАНО, ЧТО
     ПРИ ВЫПОЛНЕНИИ ТОГО ЖЕ САМОГО ОПЕРАТОРА "WRITE"  ДОЛЖНЫ  БЫТЬ
     ВЫВЕДЕНЫ ДОПОЛНИТЕЛЬНЫЕ ЗАПИСИ.

           ПРИ ВЫВОДЕ НА  УСТРОЙСТВО   ТТ:  ИЛИ  LP:  РАЗДЕЛИТЕЛЕМ
     ЗАПИСИ ФОРМАТНОГО ФАЙЛА ЯВЛЯЕТСЯ  СИМВОЛ  "ВОЗВРАТ  КАРЕТКИ".
     ВОЗВРАТ КАРЕТКИ МОЖЕТ БЫТЬ УКАЗАН С ПОМОЩЬЮ СИМВОЛА ФОРМАТНО-
     ГО РАЗДЕЛИТЕЛЯ "¤" В ОПЕРАТОРЕ "FORMAT".

           ЗАПИСИ, ВЫВОДИМЫЕ ОПЕРАТОРОМ ФОРМАТНОГО ВЫВОДА "WRITE",
     ДОЛЖНЫ ИМЕТЬ ДЛИНУ, НЕ  ПРЕВЫШАЮЩУЮ  ОПРЕДЕЛЕННОГО  ЗНАЧЕНИЯ,
     ХАРАКТЕРНОГО  ДЛЯ   ДАННОГО  ВНЕШНЕГО   УСТРОЙСТВА. НАПРИМЕР,
     УСТРОЙСТВА ПЕЧАТИ НЕ МОЖЕТ НАПЕЧАТАТЬ  ЗАПИСЬ, ДЛИНА  КОТОРОЙ
     ПРЕВЫШАЕТ 132 СИМВОЛА.

      ПРИМЕРЫ.

          WRITE (6,650)             (ВЫВОД СОДЕРЖИМОГО ОПЕРАТОРА
      650 FORMAT ('PROGRAM')        "FORMAT" НА ЛОГИЧЕСКОЕ-
                                    УСТРОЙСТВО 6)
          WRITE (1,95) AV,BE,CE     (ВЫВОД ОДНОЙ ЗАПИСИ,
       95 FORMAT(F8.5,F8.5,F8.5)    СОСТОЯЩЕЙ ИЗ ТРЕХ ПОЛЕЙ, НА
                                    ЛОГИЧЕСКОЕ УСТРОЙСТВО 1)
          WRITE (1,950) AV,BE,CE    (ВЫВОД ТРЕХ ОТДЕЛЬНЫХ
      950 FORMAT (F8.5)             ЗАПИСЕЙ ПО ОДНОМУ ПОЛЮ КАЖ-
                                    ДАЯ НА ЛОГИЧЕСКОЕ УСТРОЙСТВО 1)


                            - 63 -

                       00014-01.35.02



           5.3.6.3. ОПЕРАТОР ФОРМАТНОГО ВВОДА "ACCEPT"

           РАБОТА ОПЕРАТОРА  "ACCEPT"  ИДЕНТИЧНА  РАБОТЕ  ОПЕРАТОРА
      ФОРМАТНОГО ВВОДА "READ" ЗА ИСКЛЮЧЕНИЕМ  ТОГО, ЧТО  ВВОД  ОСУ-
      ЩЕСТВЛЯЕТСЯ ТОЛЬКО С ТЕРМИНАЛА.

           ОПЕРАТОР "ACCEPT" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

               ACCEPT F [,K]

      ГДЕ

      F
            - УКАЗАТЕЛЬ ФОРМАТА;

      К
            - СПИСОК ВВОДА.

            ДЛЯ ОПЕРАТОРА "ACCEPT" ДЕЙСТВИТЕЛЬНЫ ТЕ ЖЕ ПРАВИЛА ОБ-
      РАЩЕНИЯ К ФОРМАТУ И ПОСТРОЕНИЯ СПИСКА, ЧТО И ДЛЯ  ОПЕРАТОРА
      ФОРМАТНОГО ВВОДА "READ".

       ПРИМЕРЫ.

          ACCEPT  100, NUM        (ПРИЕМ ОДНОЙ ЦЕЛОЙ ВЕЛИЧИНЫ
      100 FORMAT (14)             С КЛАВИАТУРЫ ТЕРМИНАЛА)

          ACCEPT 200
      200 FORMAT ('ВВОД ДАННЫХ')  (ЧТЕНИЕ 11 СИМВОЛОВ С КЛАВИА-
                                   ТУРЫ, РАЗМЕЩЕНИЕ ИХ В ОПЕ-
                                   РАТОРЕ "FORMAT")



            5.3.6.4. ОПЕРАТОР ФОРМАТНОГО ВЫВОДА "TYPE"


          ФУНКЦИИ ОПЕРАТОРА  "TYPE"  ИДЕНТИЧНЫ  ФУНКЦИЯМ  ОПЕРАТОРА
      ФОРМАТНОГО ВЫВОДА "WRITE", ЗА ИСКЛЮЧЕНИЕМ ТОГО,ЧТО ВЫВОД ПРО-
      ИСХОДИТ НА ТЕРМИНАЛ.

          ОПЕРАТОР "TYPE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

              TYPE F[,K]

      ГДЕ

      F
          - УКАЗАТЕЛЬ ФОРМАТА;

      К
          - СПИСОК ВЫВОДА.

          ДЛЯ ОПЕРАТОРА "TYPE" ДЕЙСТВИТЕЛЬНЫ ТЕ ЖЕ ПРАВИЛА ОБРАЩЕНИЯ
      К ФОРМАТУ И ПОСТРОЕНИЯ СПИСКА, ЧТО И ДЛЯ ОПЕРАТОРА  ФОРМАТНОГО
      ВЫВОДА "WRITE".


                             - 64 -

                        00014-01.35.02


      ПРИМЕРЫ.

           TYPE FMT,HOLD          (СОДЕРЖИМОЕ "HOLD" ВЫВОДИТСЯ НА
                                  ТЕРМИНАЛ В ФОРМАТЕ,ОПРЕДЕЛЕННОМ
                                  СОДЕРЖИМЫМ МАССИВА "FMT")

           TYPE 300
       300 FORMAT ('ПЕЧАТЬ ОШИБОК')(ПЕЧАТЬ НА ТЕРМИНАЛЕ СООБЩЕНИЯ
                                    НЕПОСРЕДСТВЕННО ИЗ ОПЕРАТОРА
                                    "FORMAT")


           5.3.6.5. ОПЕРАТОР ФОРМАТНОГО ВЫВОДА "PRINT"


           РАБОТА ОПЕРАТОРА "PRINT" ПРАКТИЧЕСКИ НЕ ОТЛИЧАЕТСЯ ОТ
       РАБОТЫ ОПЕРАТОРОВ ФОРМАТНОГО ВЫВОДА "WRITE"  И "TYPE"  ЗА
       ИСКЛЮЧЕНИЕМ ТОГО, ЧТО ВЫВОД  ПРОИЗВОДИТСЯ  НА  УСТРОЙСТВО
       ПЕЧАТИ.

           ОПЕРАТОР "PRINT" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

             PRINT F [,K]

       ГДЕ

       F
           - УКАЗАТЕЛЬ ФОРМАТА;

       К   - СПИСОК ВЫВОДА.

           СПИСОК ВЫВОДА И ОБРАЩЕНИЕ К ФОРМАТУ В ОПЕРАТОРЕ "PRINT"
       ПОДЧИНЯЕТСЯ ТЕМ ЖЕ ПРАВИЛАМ, ЧТО И В СЛУЧАЕ ОПЕРАТОРА ФОР-
       МАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВЫВОДА "WRITE"

         ПРИМЕРЫ.

           PRINT 999, NCTR
       999 FORMAT(90X, 'СТРАНИЦА  ',13)

           ЭТИ ОПЕРАТОРЫ ВЫЗЫВАЮТ ПЕЧАТЬ НОМЕРА СТРАНИЦЫ В ПРАВОМ
       ВЕРХНЕМ УГЛУ НОВОЙ СТРАНИЦЫ ОПЕРАТОРЫ:

           PRINT 222
       222 FORMAT ('КОНЕЦ СПИСКА')

       ПЕЧАТАЮТ СОДЕРЖИМОЕ ОПЕРАТОРА "FORMAT" НА УСТРОЙСТВЕ ПЕЧАТИ.


                            - 65 -

                         00014-01.35.02




           5.3.7. НЕФОРМАТНЫЙ ВВОД/ВЫВОД С ПРЯМЫМ ДОСТУПОМ



           ВВОД/ВЫВОД С ПРЯМЫМ ДОСТУПОМ  ОСУЩЕСТВЛЯЕТ  ВВОД/ВЫВОД
       ДВОИЧНЫХ ЗАПИСЕЙ ФИКСИРОВАННОЙ ДЛИНЫ. ОПЕРАТОРЫ НЕФОРМАТНО-
       ГО ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ "READ" И "WRITE" ИСПОЛЬ-
       ЗУЮТСЯ ДЛЯ ВЫПОЛНЕНИЯ ВВОДА И ВЫВОДА ПРИ РАБОТЕ С  ФАЙЛОМ,
       НАХОДЯЩИМСЯ НА ВНЕШНЕМ ЗАПОМИНАЮЩЕМ  УСТРОЙСТВЕ  С  ПРЯМЫМ
       ДОСТУПОМ. ОПЕРАТОР "DEFINE FILE" ИСПОЛЬЗУЕТСЯ ДЛЯ УКАЗАНИЯ
       ЧИСЛА ЗАПИСЕЙ И РАЗМЕРА КАЖДОЙ ЗАПИСИ В ФАЙЛЕ С ПРЯМЫМ ДОС-
       ТУПОМ.
       КАЖДЫЙ ОПЕРАТОР ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ "READ"  ИЛИ
       "WRITE" СОДЕРЖИТ ЦЕЛОЕ ВЫРАЖЕНИЕ, ОПРЕДЕЛЯЮЩЕЕ НОМЕР ЗАПИ-
       СИ, К КОТОРОЙ ОСУЩЕСТВЛЯЕТСЯ  ОБРАЩЕНИЕ. НОМЕР  ЗАПИСИ  НЕ
       ДОЛЖЕН БЫТЬ МЕНЬШЕ ЕДИНИЦЫ И НЕ ДОЛЖЕН  БЫТЬ   БОЛЬШЕ, ЧЕМ
       ЧИСЛО ЗАПИСЕЙ, ОПРЕДЕЛЕННОЕ ДЛЯ ДАННОГО  ФАЙЛА.  СТРУКТУРА
       ЗАПИСИ С ПРЯМЫМ ДОСТУПОМ НЕ ЗАВИСИТ ОТ РАЗМЕРА ФИЗИЧЕСКОГО
       БЛОКА ЗАПИСИ УСТРОЙСТВА ВВОДА/ВЫВОДА. ОДНАКО, БОЛЕЕ ЭФФЕК-
       ТИВНЫЕ РЕЗУЛЬТАТЫ ПОЛУЧАЮТСЯ, ЕСЛИ РАЗМЕР ЗАПИСИ  ЯВЛЯЕТСЯ
       ДЕЛИТЕЛЕМ ИЛИ КРАТНЫМ 256 СЛОВАМ.



          5.3.7.1. ОПЕРАТОР НЕФОРМАТНОГО ВВОДА С ПРЯМЫМ
                   ДОСТУПОМ "READ"



          ОПЕРАТОР НЕФОРМАТНОГО ВВОДА  С ПРЯМЫМ  ДОСТУПОМ  "READ"
       ВЫПОЛНЯЕТ ПЕРЕДАЧУ ПОЛЕЙ ЭТОЙ ЗАПИСИ В ЭЛЕМЕНТЫ СПИСКА ВВО-
       ДА. ЭТА ПЕРЕДАЧА ОСУЩЕСТВЛЯЕТСЯ БЕЗ ПРЕОБРАЗОВАНИЯ ДАННЫХ.

          ОПЕРАТОР НЕФОРМАТНОГО ВВОДА С ПРЯМЫМ  ДОСТУПОМ  "READ"
       ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

          READ (U'N[,ERR=S]) [K]

       ГДЕ

       U
         - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

       N
         - НОМЕР ЕДИНИЦЫ ЗАПИСИ;

       S
         - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

       K
         - СПИСОК ВВОДА

         ЕСЛИ ВВОДИМАЯ ЗАПИСЬ СОДЕРЖИТ БОЛЬШЕ ПОЛЕЙ, ЧЕМ ИМЕЕТСЯ
       ЭЛЕМЕНТОВ В СПИСКЕ, ТО ОСТАЛЬНАЯ ЧАСТЬ ЗАПИСИ ОТБРАСЫ-
       ВАЕТСЯ. ЕСЛИ В ЗАПИСИ СОДЕРЖИТСЯ  НЕДОСТАТОЧНО  ДАННЫХ,
       ЧТОБЫ  УДОВЛЕТВОРИТЬ  ТРЕБОВАНИЯМ  СПИСКА,  ФИКСИРУЕТСЯ
       ОШИБОЧНОЕ СОСТОЯНИЕ.

         НОМЕР УСТРОЙСТВА В ОПЕРАТОРЕ НЕФОРМАТНОГО ВВОДА С ПРЯ-

                              - 66 -

                         00014-01.35.02


    МЫМ ДОСТУПОМ "READ" ДОЛЖЕН ОТНОСИТСЯ К УСТРОЙСТВУ, КОТОРОЕ
    БЫЛО ПРЕДВАРИТЕЛЬНО ОБ'ЯВЛЕНО ЛОГИЧЕСКИМ  УСТРОЙСТВОМ  ДЛЯ
    ОПЕРАЦИЙ С ПРЯМЫМ ДОСТУПОМ.

        ПРИМЕЧАНИЕ. ПРИ СОЗДАНИИ ФАЙЛОВ С ПРЯМЫМ ДОСТУПОМ  ПЕР-
    ВЫМ ОПЕРАТОРОМ ДОЛЖЕН БЫТЬ ОПЕРАТОР "WRITE". ЕСЛИ ОПЕРАТОРЫ
    "READ" ИЛИ "FIND" ВСТРЕЧАЮТСЯ ПЕРВЫМИ, ИСПОЛНЯЮЩАЯ  СИСТЕМА
    ВЫДАЕТ СООБЩЕНИЕ ОБ ОШИБКЕ.

        ПРИМЕРЫ.
            ОПЕРАТОР:
                RAED (1'10) LIST(1),LIST(8)

    ВЫПОЛНЯЕТ ЧТЕНИЕ ЗАПИСИ 10 ИЗ ФАЙЛА, НАХОДЯЩЕГОСЯ НА ЛОГИ-
    ЧЕСКОМ УСТРОЙСТВЕ 1, И ПРИСВОЕНИЕ ДВУХ ЦЕЛЫХ ЗНАЧЕНИЙ ЭЛЕ-
    МЕНТАМ МАССИВА "LIST".

        СЛЕДУЮЩИЙ ОПЕРАТОР:

                READ(4'58)(RHO(N),N=1,5)

    ВЫПОЛНЯЕТ ЧТЕНИЕ ЗАПИСИ 58 ИЗ ФАЙЛА, НАХОДЯЩЕГОСЯ НА ЛОГИ-
    ЧЕСКОМ УСТРОЙСТВЕ 4, И ПРИСВОЕНИЕ ПЯТИ ВЕЩЕСТВЕННЫХ ЗНАЧЕ-
    НИЙ МАССИВУ "RHO".


        5.3..2. ОПЕРАТОР НЕФОРМАТНОГО ВЫВОДА С ПРЯМЫМ
                ДОСТУПОМ "WRITE"

        ОПЕРАТОР НЕФОРМАТНОГО ВЫВОДА С ПРЯМЫМ ДОСТУПОМ "WRITE"
    ПЕРЕДАЕТ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ СПИСКА ВЫВОДА В ОТДЕЛЬНУЮ  ЗА-
    ПИСЬ ФАЙЛА С ПРЯМЫМ ДОСТУПОМ. ЗАПИСЬ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ
    ВО ВНУТРЕННЕМ ФОРМАТЕ БЕЗ ПРЕОБРАЗОВАНИЯ.

        ОПЕРАТОР НЕФОРМАТНОГО ВЫВОДА С ПРЯМЫМ  ДОСТУПОМ  ИМЕЕТ
    СЛЕДУЮЩИЙ ВИД:

          WRITE (U'N[,ERR=S]) [K]

    ГДЕ

    U
        - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

    R
        - НОМЕР ЕДИНИЦЫ ЗАПИСИ;

    S
        - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

    K
        - СПИСОК ВЫВОДА.

      ЕСЛИ КОЛИЧЕСТВО  ДАННЫХ, КОТОРЫЕ  ДОЛЖНЫ  БЫТЬ  ПЕРЕДАНЫ,
    ПРЕВЫШАЕТ РАЗМЕР ЕДИНИЦЫ ЗАПИСИ, ФИКСИРУЕТСЯ ОШИБОЧНОЕ СОС-


                            - 67 -

                       00014-01.35.02

    ТОЯНИЕ.

      ЕСЛИ ОПЕРАТОР "WRITE" НЕ ЦЕЛИКОМ ЗАПОЛНЯЕТ ЕДИНИЦУ ЗАПИСИ,
    ТО НЕИСПОЛЬЗОВАННАЯ ЧАСТЬ ЕДИНИЦЫ ЗАПИСИ ЗАПОЛНЯЕТСЯ НУЛЯМИ.

     ПРИМЕРЫ.

     WRITE (2'35)(NUM(K),K=1,10)  (ВЫВОД ДЕСЯТИ ЦЕЛЫХ ЗНАЧЕНИЙ
                                  В ЕДИНИЦУ ЗАПИСИ 35 ФАЙЛА,
                                  РАСПОЛОЖЕННОГО НА ЛОГИЧЕСКОМ
                                  УСТРОЙСТВЕ 2);
     WRITE (3'J) ARRAY            (ВЫВОД ВСЕГО СОДЕРЖИМОГО
                                  "ARRAY" В ЗАПИСЬ, УКАЗАННУЮ
                                  ЗНАЧЕНИЕМ "J", ФАЙЛА НА ЛО-
                                  ГИЧЕСКОМ УСТРОЙСТВЕ 3)




          5.3.8. ВВОД/ВЫВОД ПОД УПРАВЛЕНИЕМ СПИСКА



          ОПЕРАТОРЫ ВВОДА/ВЫВОДА ПОД  УПРАВЛЕНИЕМ СПИСКА ПРЕДОС-
     ТАВЛЯЮТ ВОЗМОЖНОСТЬ ВЫПОЛНЯТЬ ДЕЙСТВИЯ ПО ПОСЛЕДОВАТЕЛЬНОМУ
     ВВОДУ ИЛИ ВЫВОДУ БЕЗ ИСПОЛЬЗОВАНИЯ ОПЕРАТОРОВ "FORMAT".

          ПРИ  ВВОДЕ ЗНАЧЕНИЯ СЧИТЫВАЮТСЯ С УСТРОЙСТВА, ПРЕОБРА-
     ЗУЮТСЯ ВО ВНУТРЕННИЙ ФОРМАТ И ПРИСВАИВАЮТСЯ ЭЛЕМЕНТАМ СПИС-
     КА ВВОДА.

          ПРИ ВЫВОДЕ ЗНАЧЕНИЯ ИЗ СПИСКА ВЫВОДА  ПРЕОБРАЗУЮТСЯ  В
     СИМВОЛЫ И ЗАПИСЫВАЮТСЯ В ФИКСИРОВАННОМ  ФОРМАТЕ, СООТВЕТСТ-
     ВУЮЩЕМ ТИПУ ДАННЫХ ЭТИХ ЗНАЧЕНИЙ. НАЛИЧИЕ  СПИСКА  ЯВЛЯЕТСЯ
     ОБЯЗАТЕЛЬНЫМ. ЗАПИСИ, ПОСТРОЕННЫЕ  ОПЕРАТОРАМИ  ВЫВОДА  ПОД
     УПРАВЛЕНИЕМ СПИСКА, МОГУТ БЫТЬ СЧИТАНЫ  ОПЕРАТОРАМИ   ВВОДА
     ПОД УПРАВЛЕНИЕМ СПИСКА ПРИ УСЛОВИИ, ЧТО   ОНИ  НЕ  СОДЕРЖАТ
     БУКВЕННО-ЦИФРОВЫХ ЛИТЕРАЛОВ И ТЕКСТОВЫХ КОНСТАНТ.

          КАК ОПЕРАТОРЫ ФОРМАТНОГО ВВОДА/ВЫВОДА, ТАК И ОПЕРАТОРЫ
     ВВОДА/ВЫВОДА ПОД УПРАВЛЕНИЕМ СПИСКА МОГУТ ОБРАЩАТЬСЯ К ОД-
     НОМУ И ТОМУ ЖЕ УСТРОЙСТВУ. ВСЕ ОПЕРАЦИИ, ДОПУСТИМЫЕ ДЛЯ ФОР-
     МАТНОГО ПОСЛЕДОВАТЕЛЬНОГО ВВОДА/ВЫВОДА, ДОПУСКАЮТСЯ  И  ДЛЯ
     ОПЕРАТОРОВ ВВОДА/ВЫВОДА ПОД УПРАВЛЕНИЕМ СПИСКА. ОДНАКО,ПОС-
     ЛЕ ВЫПОЛНЕНИЯ ОПЕРАЦИИ ВОЗВРАТА   НА  ОДНУ  ЗАПИСЬ  ПОЗИЦИЯ
     УКАЗАТЕЛЕЙ ФАЙЛА ОСТАЕТСЯ   НЕОПРЕДЕЛЕННОЙ. ПРИ  СЧИТЫВАНИИ
     ФАЙЛОВ, СОДЕРЖАЩИХ КАК ФОРМАТНЫЕ ЗАПИСИ, ТАК И ЗАПИСИ,ПОСТ-
     РОЕННЫЕ  ПОД  УПРАВЛЕНИЕМ  СПИСКА, ПРОГРАММА   ПОЛЬЗОВАТЕЛЯ
     ДОЛЖНА ОБЕСПЕЧИТЬ ЧТЕНИЕ КАЖДОЙ  ЗАПИСИ  ОПЕРАТОРОМ  ВВОДА,
     СООТВЕТСТВУЮЩИМ ЕЕ ВИДУ.


                            - 68 -

                       00014-01.35.02


         5.3.8.1. ОПЕРАТОР "READ" ПОД УПРАВЛЕНИЕМ СПИСКА


         ОПЕРАТОР "READ" ПОД УПРАВЛЕНИЕМ СПИСКА  ПЕРЕДАЕТ  ДАННЫЕ
     С УКАЗАННОГО УСТРОЙСТВА, ПРЕОБРАЗУЕТ ИХ  ИЗ ВНЕШНЕГО ФОРМАТА
     ВО ВНУТРЕННИЙ И ПРИСВАИВАЕТ ВВОДИМЫЕ ЗНАЧЕНИЯ ЭЛЕМЕНТАМ СПИС-
     КА ВВОДА В ПОРЯДКЕ ИХ РАСПОЛОЖЕНИЯ (СЛЕВА НАПРАВО).

         ОПЕРАТОР "READ" ПОД УПРАВЛЕНИЕМ СПИСКА ИМЕЕТ СЛЕДУЮЩИЙ
     ВИД:

           READ *,K
       ИЛИ:
           READ (U,*[,END=S][,ERR=S]) K

       ГДЕ

     U
          - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

     *
          - ПРИЗНАК ЗАДАННОГО ФОРМАТА ПОД УПРАВЛЕНИЕМ СПИСКА;

     S
          - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

     К
          - СПИСОК ВВОДА.

        ЗАПИСЬ СОСТОИТ ИЗ ПОСЛЕДОВАТЕЛЬНОСТИ ВЕЛИЧИН И РАЗДЕЛИ-
     ТЕЛЬНЫХ ЗНАКОВ.

        ВЕЛИЧИНОЙ МОЖЕТ БЫТЬ:

     1) КОНСТАНТА
           - КАЖДАЯ ВВОДИМАЯ КОНСТАНТА ДОЛЖНА ИМЕТЬ ВИД, СООТ-
             ВЕТСТВУЮЩИЙ КОНСТАНТЕ ФОРТРАН; КОМПЛЕКСНАЯ  КОНС-
             ТАНТА ИМЕЕТ ВИД ПАРЫ ВЕЩЕСТВЕННЫХ ИЛИ ЦЕЛЫХ КОНС-
             ТАНТ, РАЗДЕЛЕННЫХ ЗАПЯТОЙ И ЗАКЛЮЧЕННЫХ В СКОБКИ;
             ДОПУСКАЕТСЯ НАЛИЧИЕ  ПРОБЕЛОВ  МЕЖДУ  ОТКРЫВАЮЩЕЙ
             СКОБКОЙ И ПЕРВЫМ СИМВОЛОМ,МЕЖДУ ВТОРОЙ КОНСТАНТОЙ
             И ЗАКРЫВАЮЩЕЙ СКОБКОЙ, А ТАКЖЕ ВОКРУГ ЗАПЯТОЙ;
             ЛОГИЧЕСКАЯ КОНСТАНТА - ЭТО ЛИБО "Т" ДЛЯ ".TRUE.",
             ЛИБО "F"  ДЛЯ  ".FALSE."; ИСПОЛЬЗОВАНИЕ ТЕКСТОВЫХ,
             ВОСЬМЕРИЧНЫХ  И БУКВЕННО-ЦИФРОВЫХ КОНСТАНТ НЕ  ДО-
             ПУСКАЕТСЯ;

     2) "ПУСТАЯ" КОНСТАНТА

           - ОТСУТСТВИЕ ЗНАЧЕНИЯ УКАЗЫВАЕТСЯ ДВУМЯ ПОСЛЕДОВА-
             ТЕЛЬНЫМИ ЗАПЯТЫМИ, МЕЖДУ  КОТОРЫМИ   ОТСУТСТВУЕТ
             КАКАЯ-ЛИБО  КОНСТАНТА; МЕЖДУ  ЗАПЯТЫМИ  ВОЗМОЖНО
             НАЛИЧИЕ ПРОБЕЛОВ; "ПУСТАЯ"  КОНСТАНТА  УКАЗЫВАЕТ
             НА ТО, ЧТО СООТВЕТСТВУЮЩИЙ ЭЛЕМЕНТ СПИСКА ДОЛЖЕН
             ОСТАТЬСЯ БЕЗ ИЗМЕНЕНИЯ;  "ПУСТАЯ"  КОНСТАНТА  НЕ
             МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА В КАЧЕСТВЕ КАКОЙ-ЛИБО ИЗ
             ЧАСТЕЙ КОМПЛЕКСНОЙ КОНСТАНТЫ, НО МОЖЕТ ПРЕДСТАВ-
             ЛЯТЬ ВСЮ КОМПЛЕКСНУЮ КОНСТАНТУ;


                           - 69 -

                      00014-01.35.02


     3) ПОСТРОЕНИЕ КОНСТАНТ В ВИДЕ "R*C"
           - ФОРМА "R*C" ОБОЗНАЧАЕТ  "R"  ПОВТОРЕНИЙ  КОНСТАНТЫ
             "C" ("R" - ЭТО НЕНУЛЕВАЯ ЦЕЛАЯ КОНСТАНТА БЕЗ  ЗНА-
             КА, А "C" - НЕКОТОРАЯ КОНСТАНТА); В ЭТОЙ ЗАПИСИ НЕ
             ДОПУСКАЕТСЯ ВКЛЮЧЕНИЯ ПРОБЕЛОВ, ЗА ИСКЛЮЧЕНИЕМ ПРО-
             БЕЛОВ ВНУТРИ "C", КАК УКАЗАНО ВЫШЕ;

     4) ПОВТОРЕНИЕ "ПУСТЫХ" КОНСТАНТ В ВИДЕ "R*"
           - ФОРМА "R*"  ОБОЗНАЧАЕТ   "R"  ПОВТОРЕНИЙ  "ПУСТЫХ"
             КОНСТАНТ ("R"-ЭТО ЦЕЛАЯ КОНСТАНТА БЕЗ ЗНАКА).

        РАЗДЕЛИТЕЛЬНЫМ ЗНАКОМ МОЖЕТ БЫТЬ:

           - ОДИН ИЛИ БОЛЕЕ ПРОБЕЛОВ ИЛИ ЗНАКОВ ТАБУЛЯЦИИ;

           - ЗАПЯТАЯ С ОКРУЖАЮЩИМИ ЕЕ ПРОБЕЛАМИ ИЛИ БЕЗ НИХ,ЛИБО
             СО ЗНАКАМИ ТАБУЛЯЦИИ;

           - НАКЛОННАЯ ЧЕРТА С ОКРУЖАЮЩИМИ ЕЕ ПРОБЕЛАМИ ИЛИ БЕЗ
             НИХ, ЛИБО СО ЗНАКАМИ ТАБУЛЯЦИИ. РАЗДЕЛИТЕЛЬ В ВИДЕ
             НАКЛОННОЙ ЧЕРТЫ ВЫЗЫВАЕТ  ПРЕКРАЩЕНИЕ   ВЫПОЛНЕНИЯ
             ОПЕРАТОРА ВВОДА; ВСЕ ОСТАЛЬНЫЕ ЭЛЕМЕНТЫ СПИСКА ВВО-
             ДА НЕ ИЗМЕНЯЮТСЯ.

        КОНЕЦ  ЗАПИСИ   ЭКВИВАЛЕНТЕН  СИМВОЛУ ПРОБЕЛА. ПРОБЕЛЫ В
      НАЧАЛЕ ЗАПИСИ ИГНОРИРУЮТСЯ.

        ПРИ ВВОДЕ ДОПУСКАЕТСЯ ИСПОЛЬЗОВАНИЕ СЛЕДУЮЩИХ ТИПОВ КОН-
      СТАНТ: ЦЕЛЫЕ, ВЕЩЕСТВЕННЫЕ, С ДВОЙНОЙ ТОЧНОСТЬЮ, ЛИГИЧЕС-
      КИЕ И КОМПЛЕКСНЫЕ. ТИП ВВОДИМОЙ КОНСТАНТЫ И ВИД ПРЕОБРАЗО-
      ВАНИЯ ИЗ ВНЕШНЕГО ФОРМАТА ВО ВНУТРЕННИЙ ОПЕРЕДЕЛЯЕТСЯ ВИ-
      ДОМ КОНСТАНТЫ. ЕСЛИ ТИПЫ ЭЛЕМЕНТА СПИСКА И СООТВЕТСТВУЮЩЕЙ
      КОНСТАНТЫ НЕ СОВПАДАЮТ, ТО ВЫПОЛНЯЕТСЯ ПРЕОБРАЗОВАНИЕ КОНС-
      ТАНТЫ СОГЛАСНО ПРАВИЛАМ АРИФМЕТИЧЕСКОГО ПРИСВАИВАНИЯ, ОПИ-
      САННЫМ ВЫШЕ.

        КАЖДЫЙ ОПЕРАТОР ВВОДА БУДЕТ СЧИТЫВАТЬ ОДНУ ИЛИ БОЛЕЕ ЗА-
      ПИСЕЙ ДЛЯ ТОГО, ЧТОБЫ ПОЛНОСТЬЮ УДОВЛЕТВОРИТЬ  ТРЕБОВАНИЯ
      СПИСКА ВВОДА. ЕСЛИ В ЗАПИСИ БУДЕТ ИСПОЛЬЗОВАНА ТОЛЬКО ЧАСТЬ
      ВЕЛИЧИН (ЛИБО ИЗ-ЗА ПОЯВЛЕНИЯ РАЗДЕЛИТЕЛЬНОГО ЗНАКА, ЛИБО
      ИЗ-ЗА ЗАПОЛНЕНИЯ СПИСКА), ОСТАЛЬНЫЕ ВЕЛИЧИНЫ ЗАПИСИ ТЕРЯЮТ-
      СЯ.

        ПРИМЕР.

        ЕСЛИ ПРОГРАММНЫЙ МОДУЛЬ СОСТОИТ ИЗ СЛЕДУЮЩИХ ОПЕРАТОРОВ:

             DOUBLE PRECISION T
             COMPLEX C,D
             LOGICAL L,M
             READ (U,*) I,R,C,D,L,M,J,K,S,T,A,B
              .
              .
              .
        А СЧИТЫВАЕМАЯ ЗАПИСЬ СОДЕРЖИТ:

           4 6.3 (3.4,4.2), (3,2), T,F,,3*14.6/

      ТО ЭЛЕМЕНТАМ СПИСКА БУДУТ ПРИСВОЕНЫ СЛЕДУЮЩИЕ ЗНАЧЕНИЯ:


                            - 70 -

                         00014-01.35.02



          I = 4
          R = 6.3
          C = (3.4,4.2)
          D = (3.0,2.0)
          L = .TRUE.
          M = .FALSE.
          K = 14.6
          S = 14.6
          T = 14.6 D0

     "A","B" И "J" НЕ ИЗМЕНЯЮТСЯ.


        5.3.8.2. ОПЕРАТОР "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА


        ОПЕРАТОР "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА ПЕРЕДАЕТ ЭЛЕМЕНТЫ
     ИЗ СПИСКА ВЫВОДА НА УКАЗАННОЕ УСТРОЙСТВО, ОСУЩЕСТВЛЯЯ ПРЕОБ-
     РАЗОВАНИЕ И РЕДАКТИРОВАНИЕ КАЖДОЙ ВЕЛИЧИНЫ В СООТВЕТСТВИИ  С
     ТИПОМ ДАННЫХ ЭТОЙ ВЕЛИЧИНЫ.

        ОПЕРАТОР "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА ИМЕЕТ СЛЕДУЮЩИЙ
     ВИД:

          WRITE (U*[,ERR=S][,END=S]) K

     ГДЕ

     U
         - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

     *
         - ПРИЗНАК ЗАДАНИЯ ФОРМАТА ПОД УПРАВЛЕНИЕМ СПИСКА;

     S
         - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

     К
         - СПИСОК ВЫВОДА.

         ВЫВОДИМЫЕ ВЕЛИЧИНЫ БУДУТ ИМЕТЬ ТОЧНО ТАКОЙ ЖЕ ФОРМАТ, КАК
     ЭТО ТРЕБУЕТСЯ ДЛЯ ВВОДА В СЛУЧАЕ ОПЕРАТОРА "READ" ПОД УПРАВЛЕ-
     НИЕМ СПИСКА. КРОМЕ ТОГО, РАЗРЕШАЕТСЯ ВЫВОД БУКВЕННО-ЦИФРОВЫХ
     ЛИТЕРАЛОВ И ТЕКСТОВЫХ КОНСТАНТ, ПРИЧЕМ, ЭТИ КОНСТАНТЫ ОГРАНИ-
     ЧИВАЮТСЯ  АПОСТРОФАМИ. КАЖДОЕ   ЗНАЧЕНИЕ ПЕРЕДАЕТСЯ В НЕЯВНОМ
     ФОРМАТЕ СЛЕДУЮЩИМ ОБРАЗОМ:

         ТИП ДАННЫХ             ФОРМАТ ВЫВОДА

         LOGICAL*1                 15
         LOGICAL*4                 L2
         INTEGER*2                 I7
         INTEGER*4                 I12
         REAL*4                    1PG15.7
         REAL*8                    1PG25.16
         COMPLEX*8                 1X,'(',1PG14.7,',',1PG14.7,')'
         АЛФАВИТНО-ЦИФРО-          1X,NA1 (N-ДЛИНА СТРОКИ

                             - 71 -

                        00014-01.35.02


     ВОЙ ЛИТЕРАЛ        ЛИТЕРАЛА)

        ВОСЬМЕРИЧНЫЕ ЗНАЧЕНИЯ, НУЛЕВЫЕ ЗНАЧЕНИЯ,  РАЗДЕЛИТЕЛИ  В
     ВИДЕ НАКЛОННОЙ ЧЕРТЫ И ФОРМЫ ПОВТОРЕНИЯ НЕ ВОСПРОИЗВОДЯТСЯ.
     КАЖДАЯ ВЫВОДИМАЯ ЕДИНИЦА ЗАПИСИ НАЧИНАЕТСЯ  С  ПРОБЕЛА  ДЛЯ
     УПРАВЛЕНИЯ КАРЕТКОЙ. КАЖДЫЙ ОПЕРАТОР ВЫВОДА ЗАПИСЫВАЕТ ОДНУ
     ИЛИ БОЛЕЕ ПОЛНЫХ ЗАПИСЕЙ. КАЖДАЯ ВЕЛИЧИНА ПОЛНОСТЬЮ  РАСПО-
     ЛАГАЕТСЯ ВНУТРИ ОДНОЙ  ЗАПИСИ. ИСКЛЮЧЕНИЕ  ДЕЛАЕТСЯ  ТОЛЬКО
     ДЛЯ БУКВЕННО-ЦИФРОВЫХ ЛИТЕРАЛОВ, ДЛИНА КОТОРЫХ МОЖЕТ ПРЕВЫ-
     ШАТЬ ДЛИНУ ЗАПИСИ.

      ПРИМЕР.

      ПРОГРАММНЫЙ МОДУЛЬ:

            DIMENSION C(5)
            DATA C/5*3.4/
            WRITE(1,*) 'ЗНАЧЕНИЯ МАССИВА'
            WRITE (1,*) C,5

      ВЫВОДИТ СЛЕДУЮЩИЕ ЗАПИСИ:

            ЗНАЧЕНИЯ МАССИВА

         3.400000         3.400000       3.400000    3.400000
         3.400000            5


            5.3.8.3. ОПЕРАТОР "ACCEPT" ПОД УПРАВЛЕНИЕМ
                     СПИСКА

            ФУНКЦИИ  ОПЕРАТОРА  "ACCEPT"  ПОД УПРАВЛЕНИЕМ СПИСКА
      ИДЕНТИЧНЫ ФУНКЦИЯМ ОПЕРАТОРА "READ" ПОД УПРАВЛЕНИЕМ СПИСКА,
      ЗА ИСКЛЮЧЕНИЕМ ТОГО, ЧТО ВВОД ОСУЩЕСТВЛЯЕТСЯ  С  ТЕРМИНАЛА.


            ОПЕРАТОР "ACCEPT" ПОД УПРАВЛЕНИЕМ СПИСКА ИМЕЕТ СЛЕДУЮ-
      ЩИЙ ВИД:

          ACCEPT *,K

      ГДЕ

      *
        - ПРИЗНАК ЗАДАНИЯ ФОРМАТА ПОД УПРАВЛЕНИЕМ СПИСКА;

      K
        - СПИСОК ВВОДА.

            ПРАВИЛА, КОТОРЫМ ДОЛЖНЫ УДОВЛЕТВОРЯТЬ ВНЕШНИЕ ЗАПИСИ,
      СЧИТЫВАЕМЫЕ ПО ОПЕРАТОРУ "ACCEPT" ПОД  УПРАВЛЕНИЕМ  СПИСКА,
      ТОЧНО ТАКИЕ ЖЕ, КАК И В СЛУЧАЕ ОПЕРАТОРА "READ" ПОД УПРАВ-
      ЛЕНИЕМ СПИСКА.

        ПРИМЕРЫ.

              ACCEPT *,I,J,K,A(I,J,K)
              ACCEPT *,I,L,(Q(L),L=1,I)


                            - 72 -

                       00014-01.35.02


              5.3.8.4. ОПЕРАТОР "TYPE" ПОД УПРАВЛЕНИЕМ СПИСКА

              ФУНКЦИИ ОПЕРАТОРА "TYPE" ПОД УПРАВЛЕНИЕМ СПИСКА ИДЕН-
       ТИЧНЫ ФУНКЦИЯМ ОПЕРАТОРА "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА,  ЗА
       ИСКЛЮЧЕНИЕМ ТОГО, ЧТО ДАННЫЕ ВЫВОДЯТСЯ НА ТЕРМИНАЛ.

              ОПЕРАТОР "TYPE" ПОД УПРАВЛЕНИЕМ СПИСКА ИМЕЕТ СЛЕДУЮЩИЙ
       ВИД:

                 TYPE *,K

       ГДЕ

       *
          - ПРИЗНАК ЗАДАНИЯ ФОРМАТА ПОД УПРАВЛЕНИЕМ СПИСКА;

       K
          - СПИСОК ВЫВОДА.

          ФОРМАТ ВЫВОДИМЫХ ВЕЛИЧИН В СЛУЧАЕ ОПЕРАТОРА  "TYPE"  ПОД
       УПРАВЛЕНИЕМ СПИСКА ТОЧНО ТАКОЙ ЖЕ, КАК ФОРМАТ ВЫВОДИМЫХ ВЕ-
       ЛИЧИН В СЛУЧАЕ ОПЕРАТОРА "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА.

          ПРИМЕРЫ.

                 TYPE *,'КОНЕЦ СЧЕТА',I
                 TYPE *,(I,XX(I),I=1,10)



          5.3.8.5. ОПЕРАТОР "PRINT" ПОД УПРАВЛЕНИЕМ СПИСКА


          ФУНКЦИИ ОПЕРАТОРА "PRINT" ПОД УПРАВЛЕНИЕМ СПИСКА ИДЕНТИЧ-
       НЫ ФУНКЦИЯМ ОПЕРАТОРА  "WRITE"  ПОД  УПРАВЛЕНИЕМ  СПИСКА, ЗА
       ИСКЛЮЧЕНИЕМ ТОГО, ЧТО ДАННЫЕ ВЫВОДЯТСЯ НА УСТРОЙСТВО ПЕЧАТИ.

          ОПЕРАТОР "PRINT" ПОД УПРАВЛЕНИЕМ СПИСКА  ИМЕЕТ  СЛЕДУЮЩИЙ
       ВИД:

                 PRINT *,K

       ГДЕ

       *
          - ПРИЗНАК ЗАДАНИЯ ФОРМАТА ПОД УПРАВЛЕНИЕМ СПИСКА;

       K
          - СПИСОК ВЫВОДА.

          ФОРМАТ ВЫВОДИМЫХ ВЕЛИЧИН В СЛУЧАЕ ОПЕРАТОРА "PRINT"  ПОД
       УПРАВЛЕНИЕМ СПИСКА ТОЧНО ТАКОЙ ЖЕ, КАК ФОРМАТ ВЫВОДИМЫХ ВЕ-
       ЛИЧИН В СЛУЧАЕ ОПЕРАТОРА "WRITE" ПОД УПРАВЛЕНИЕМ СПИСКА.


                            - 73 -

                       00014-01.35.02


         ПРИМЕРЫ.

               PRINT *,((QN(M,N),M=1,100),N=1,100)
               PRINT *,'ПЕЧАТЬ МАССИВА',S


          5.3.9. ПЕРЕДАЧА УПРАВЛЕНИЯ ПО КОНЦУ ФАЙЛА ИЛИ ПО ОШИБКЕ

          В ЛЮБОМ ОПЕРАТОРЕ "READ" ИЛИ "WRITE"  МОЖЕТ  СОДЕРЖАТЬСЯ
       ПАРАМЕТР, КОТОРЫЙ ВЫЗЫВАЕТ ПЕРЕДАЧУ УПРАВЛЕНИЯ ДРУГОМУ ОПЕ-
       РАТОРУ, ЕСЛИ ПРИ ВЫПОЛНЕНИИ  ОПЕРАТОРА  ВВОДА/ВЫВОДА  БУДЕТ
       ОБНАРУЖЕН КОНЕЦ ФАЙЛА ИЛИ ОШИБОЧНОЕ СОСТОЯНИЕ. ЭТИ ПАРАМЕТ-
       РЫ ИМЕЮТ СЛЕДУЮЩИЙ ВИД:

                 END=S И ERR=S
       ГДЕ

       S
             - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА, КОТОРОМУ ДОЛЖНО БЫТЬ
               ПЕРЕДАНО УПРАВЛЕНИЕ.

         ОПЕРАТОР "READ" ИЛИ "WRITE" МОЖЕТ СОДЕРЖАТЬ ЛЮБОЙ ИЗ ВЫШЕ-
       ПРИВЕДЕННЫХ ПАРАМЕТРОВ, ЛИБО  СРАЗУ ОБА, ПРИЧЕМ, В ЛЮБОМ ПО-
       РЯДКЕ. ЛЮБОЙ ТАКОЙ  ПАРАМЕТР  ДОЛЖЕН  СЛЕДОВАТЬ  ЗА  НОМЕРОМ
       УСТРОЙСТВА, НОМЕРОМ ЕДИНИЦЫ ЗАПИСИ И/ИЛИ УКАЗАТЕЛЕМ ФОРМАТА.

         ЕСЛИ ПРИ ВЫПОЛНЕНИИ ОПЕРАЦИИ ВВОДА БУДЕТ  ОБНАРУЖЕН  КОНЕЦ
       ФАЙЛА, ОПЕРАТОР "READ" ПЕРЕДАСТ УПРАВЛЕНИЕ ОПЕРАТОРУ,  МЕТКА
       КОТОРОГО УКАЗАНА В ПАРАМЕТРЕ  "END=S". ЕСЛИ  ТАКОЙ  ПАРАМЕРТ
       ОТСУТСТВУЕТ,БУДЕТ ЗАФИКСИРОВАНО ОШИБОЧНОЕ СОСТОЯНИЕ. УСЛОВИЕ
       КОНЦА ФАЙЛА ВОЗНИКАЕТ В ТОМ СЛУЧАЕ, КОГДА В ПОСЛЕДОВАТЕЛЬНОМ
       ФАЙЛЕ БОЛЬШЕ НЕ ИМЕЕТСЯ ЕДИНИЦ ЗАПИСИ,ЛИБО КОГДА СЧИТЫВАЕТСЯ
       ПРИЗНАК КОНЦА ФАЙЛА, ЗАПИСАННЫЙ ОПЕРАТОРОМ "ENDFILE".

         ЕСЛИ ПРИ ВЫПОЛНЕНИИ ВВОДА/ВЫВОДА ПОД УПРАВЛЕНИЕМ  ОПЕРАТО-
       РОВ "READ" ИЛИ "WRITE" ОБНАРУЖИВАЕТСЯ  ОШИБОЧНОЕ  СОСТОЯНИЕ,
       УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ОПЕРАТОРУ, МЕТКА  КОТОРОГО  УКАЗАНА  В
       ПАРАМЕТРЕ "ERR=S". ЕСЛИ ПАРАМЕТР "ERR=S" ОТСУТСТВУЕТ, ОШИБКА
       ВВОДА/ВЫВОДА ВЫЗЫВАЕТ ПРЕКРАЩЕНИЕ ВЫПОЛНЕНИЯ ПРОГРАММЫ.

         МЕТКА ОПЕРАТОРА В ПАРАМЕТРАХ "END=S" И "ERR=S" ДОЛЖНА  ОТ-
       НОСИТЬСЯ К ВЫПОЛНЯЕМОМУ ОПЕРАТОРУ, КОТОРЫЙ ДОЛЖЕН НАХОДИТЬСЯ
       В ТОМ ЖЕ ПРОГРАММНОМ МОДУЛЕ, ЧТО И ОПЕРАТОР ВВОДА/ВЫВОДА.

         НИЖЕ ПРИВЕДЕНЫ ПРИМЕРЫ ОПЕРАТОРОВ ВВОДА/ВЫВОДА, СОДЕРЖАЩИХ
       ОПЕРАТОРЫ "END=S" И "ERR=S". В ЗАПИСИ:

              READ(,END=550)(ARRAY(K),K=1,100)

       ПРИ ОБНАРУЖЕНИИ УСЛОВИЯ КОНЦА ФАЙЛА НА ЛОГИЧЕСКОМ  УСТРОЙСТ-


                                - 74 -

                           00014-01.35.02


       ВЕ 7 УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ ОПЕРАТОРУ 550. СЛЕДУЮЩАЯ  ЗАПИСЬ
       ОПЕРАТОРА:

              WRITE(7,50,ERR=777)

       ПРИ ОБНАРУЖЕНИИ ОШИБКИ ПЕРЕДАЕТ УПРАВЛЕНИЕ  ОПЕРАТОРУ  777.
       ОПЕРАТОР:

              READ(1'INDEX,ERR=200)ARRAYH

       ПЕРЕДАЕТ УПРАВЛЕНИЕ ОПЕРАТОРУ 200, ЕСЛИ ОБНАРУЖИТСЯ  ОШИБКА
       ЧТЕНИЯ.


            ПРИМЕЧАНИЕ.  ПРИ  ВЫПОЛНЕНИИ  ОПЕРАТОРОВ  ВВОДА/ВЫВОДА
       "READ" ИЛИ "WRITE" С ПРЯМЫМ ДОСТУПОМ  НЕ  МОЖЕТ  ВОЗНИКНУТЬ
       УСЛОВИЕ КОНЦА ФАЙЛА. ПОПЫТКА ОБРАТИТЬСЯ К  ЕДИНИЦЕ  ЗАПИСИ,
       ИСПОЛЬЗУЯ НОМЕР ЗАПИСИ  БОЛЬШИЙ,  ЧЕМ  МАКСИМАЛЬНЫЙ  НОМЕР,
       ОПРЕДЕЛЕННЫЙ ДЛЯ ДАННОГО УСТРОЙСТВА, ВЫЗОВЕТ ОШИБОЧНОЕ СОС-
       ТОЯНИЕ.



             5.3.10. ВСПОМОГАТЕЛЬНЫЕ ОПЕРАТОРЫ ВВОДА/ВЫВОДА



             ОПЕРАТОРЫ, ОТНОСЯЩИЕСЯ  К  ЭТОЙ  КАТЕГОРИИ,  ВЫПОЛНЯЮТ
        ФУНКЦИИ УПРАВЛЕНИЯ ФАЙЛАМИ.



             5.3.10.1. ОПЕРАТОР "REWIND"



             ОПЕРАТОР "REWIND" СЛУЖИТ ДЛЯ УСТАНОВКИ УКАЗАТЕЛЯ ТОЧКИ
        ТЕКУЩЕЙ ОБРАБОТКИ ОТКРЫТОГО ПОСЛЕДОВАТЕЛЬНОГО ФАЙЛА НА  ЕГО
        НАЧАЛО.

             ОПЕРАТОР "REWIND" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

               REWIND U

        ГДЕ

        U
               - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА.

             НОМЕР УСТРОЙСТВА В ОПЕРАТОРЕ "REWING" ДОЛЖЕН ОТНОСИТЬ-
        СЯ К ВНЕШНЕМУ УСТРОЙСТВУ, ИМЕЮЩЕМУ ФАЙЛОВУЮ СТРУКТУРУ (НАП-
        РИМЕР, BY:).

         ПРИМЕР.

                REWIND 3   (УСТАНОВКА УКАЗАТЕЛЯ ПОЗИЦИИ ТЕКУЩЕЙ
                           ОБРАБОТКИ ЛОГИЧЕСКОГО УСТРОЙСТВА 3 НА
                           НАЧАЛО ФАЙЛА, ОТКРЫТОГО В ДАННЫЙ МОМЕНТ
                           ВРЕМЕНИ НА ЭТОМ УСТРОЙСТВЕ).


                            - 75 -

                       00014-01.35.02


          5.3.10.2. ОПЕРАТОР "BACKSPASE"

          ОПЕРАТОР "BACKSPASE" ВЫЗЫВАЕТ ВОЗВРАТ УКАЗАТЕЛЯ ОТКРЫТОГО
       ПОСЛЕДОВАТЕЛЬНОГО ФАЙЛА НА ОДНУ ЗАПИСЬ НАЗАД И  ПОЗИЦИОНИРО-
       РОВАНИЕ УКАЗАТЕЛЯ ФАЙЛА НА НАЧАЛО ЭТОЙ ЗАПИСИ. ПРИ  ВЫПОЛНЕ-
       НИЕ ОЧЕРЕДНОГО ОПЕРАТОРА ВВОДА/ВЫВОДА ДЛЯ  ЭТОГО  УСТРОЙСТВА
       БУДЕТ ОБРАБАТЫВАТЬСЯ ЭТА ЗАПИСЬ.

          ОПЕРАТОР "BACKSPASE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

            BACKSPASE U

       ГДЕ

       U
           - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА.

          НОМЕР УСТРОЙСТВА ДОЛЖЕН ОТНОСИТЬСЯ К УСТРОЙСТВУ С ФАЙЛОВОЙ
       СТРУКТУРОЙ (НАПРИМЕР, ДИСК).

          ПРИМЕР.

                BACKSPASE 4   (ВОЗВРАТ УКАЗАТЕЛЕЙ ОТКРЫТОГО ФАЙЛА НА
                              ЛОГИЧЕСКОМ УСТРОЙСТВЕ 4 К НАЧАЛУ ПРЕ-
                              ДЫДУЩЕЙ ЗАПИСИ).


          5.3.10.3. ОПЕРАТОР "ENDFILE"


          ОПЕРАТОР "ENDFILE" ЗАПИСЫВАЕТ ПРИЗНАК КОНЦА ФАЙЛА НА УКА-
       ЗАННОЕ УСТРОЙСТВО С ПОСЛЕДОВАТЕЛЬНЫМ ДОСТУПОМ.

          ОПЕРАТОР "ENDFILE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

             ENDFILE U

       ГДЕ

       U
          - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА.

       ПРИМЕР.

             ENDFILE 2       (ЗАПИСЬ ПРИЗНАКА КОНЦА ФАЙЛА НА ЛОГИ-
                             ЧЕСКОЕ УСТРОЙСТВО 2).

                              - 76 -

                         00014-01.35.02


        5.3.10.4. ОПЕРАТОР "DEFINE FILE"


        ОПЕРАТОР "DEFINE FILE" СЛУЖИТ ДЛЯ ОПРЕДЕЛЕНИЯ РАЗМЕРА
   И СТРУКТУРЫ ФАЙЛА, НА КОТОРОМ БУДУТ  ВЫПОЛНЯТЬСЯ  ОПЕРАЦИИ
   ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ.

        ОПЕРАТОР "DEFINE FILE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

            DEFINE FILE V(M,N,U,C)[,V(M,N,U,C)]...

   ГДЕ

   V
     - ЦЕЛАЯ КОНСТАНТА ИЛИ ЦЕЛАЯ ПЕРЕМЕННАЯ, ОПРЕДЕЛЯЮЩАЯ
       НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

   М
     - ЦЕЛАЯ КОНСТАНТА ИЛИ ЦЕЛАЯ ПЕРЕМЕННАЯ, ОПРЕДЕЛЯЮЩАЯ
       ЧИСЛО ЗАПИСЕЙ В ФАЙЛЕ;

   N
     - ЦЕЛАЯ КОНСТАНТА ИЛИ ЦЕЛАЯ ПЕРЕМЕННАЯ, ОПРЕДЕЛЯЮЩАЯ
       ДЛИНУ (В СЛОВАХ) КАЖДОЙ ЗАПИСИ;

   U
     - ОПРЕДЯЕТ, ЧТО ДАННЫЙ   ФАЙЛ  ЯВЛЯЕТСЯ  НЕФОРМАТНЫМ
       (ДВОИЧНЫМ); БУКВА "U" ЯВЛЯЕТСЯ ЕДИНСТВЕННОЙ ДОПУС-
       ТИМОЙ ЗАПИСЬЮ ЭТОЙ ПОЗИЦИИ;

   C
     - ЦЕЛАЯ ПЕРЕМЕННАЯ, НАЗЫВАЕМАЯ СВЯЗАННОЙ  ПЕРЕМЕННОЙ
       ФАЙЛА; В  РЕЗУЛЬТАТЕ  ВЫПОЛНЕНИЯ  КАЖДОЙ  ОПЕРАЦИИ
       ВВОДА/ВЫВОДА С ПРЯМЫМ   ДОСТУПОМ  ЭТОЙ  ПЕРЕМЕННОЙ
       ПРИСВАИВАЕТСЯ  ЗНАЧЕНИЕ, РАВНОЕ  НОМЕРУ  СЛЕДУЮЩЕЙ
       ЗАПИСИ В ФАЙЛЕ.

     ОПЕРАТОР "DEFINE FILE" ОПРЕДЕЛЯЕТ, ЧТО ФАЙЛ,СОСТОЯЩИЙ
 ИЗ "М" ЗАПИСЕЙ ФИКСИРОВАННОЙ ДЛИНЫ ПО "N" СЛОВ КАЖДАЯ,УЖЕ
 НАХОДИТСЯ ИЛИ БУДЕТ НАХОДИТЬСЯ НА  ЛОГИЧЕСКОМ  УСТРОЙСТВЕ
 "V". ЗАПИСИ В ФАЙЛЕ ПРОНУМЕРОВАНЫ ПОСЛЕДОВАТЕЛЬНО ОТ 1 ДО
 "М".

     ОПЕРАТОР "DEFINE FILE" ДОЛЖЕН БЫТЬ ВЫПОЛНЕН ПЕРЕД ПЕР-
 ВЫМ ОПЕРАТОРОМ ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ, ОБРАЩАЮЩИМ-
 СЯ К УКАЗАННОМУ ФАЙЛУ.

     ОПЕРАТОР "DEFINE FILE" ТАКЖЕ ОПРЕДЕЛЯЕТ ЦЕЛУЮ  ПЕРЕМЕН-
 НУЮ КАК СВЯЗАННУЮ ПЕРЕМЕННУЮ ФАЙЛА. В КОНЦЕ КАЖДОЙ ОПЕРАЦИИ
 ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ СИСТЕМА ВВОДА/ВЫВОДА ФОРТРАН
 ПОМЕЩАЕТ В "C" НОМЕР ЗАПИСИ, КОТОРАЯ НЕПОСРЕДСТВЕННО СЛЕДУ-
 ЕТ ЗА ЗАПИСЬЮ, ТОЛЬКО ЧТО СЧИТАННОЙ ИЛИ ЗАПИСАННОЙ. ТАК КАК
 СВЯЗАННАЯ ПЕРЕМЕННАЯ ВСЕГДА УКАЗЫВАЕТ НА ОЧЕРЕДНУЮ ЗАПИСЬ В
 ФАЙЛЕ (ДО ТЕХ ПОР, ПОКА ОНА НЕ БУДЕТ ПЕРЕОПРЕДЕЛЕНА  ОПЕРА-
 ТОРАМИ ПРИСВАИВАНИЯ, ВВОДА/ВЫВОДА  ИЛИ  "FIND"),  ОПЕРАТОРЫ
 ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ МОГУТ ПРИМЕНЯТЬСЯ ДЛЯ ВЫПОЛ-
 НЕНИЯ  ПОСЛЕДОВАТЕЛЬНОЙ  ОБРАБОТКИ  ФАЙЛА,  ЕСЛИ  В  НИХ  В
 КАЧЕСТВЕ  УКАЗАТЕЛЯ НОМЕРА ЗАПИСИ БУДЕТ ИСПОЛЬЗОВАТЬСЯ СВЯ-



                           - 77 -

                      00014-01.35.02


  ЗАННАЯ ПЕРЕМЕННАЯ ФАЙЛА.

    ЕСЛИ  ФАЙЛ  ПРЕДНАЗНАЧАЕТСЯ  ДЛЯ  РАБОТЫ  С  НЕСКОЛЬКИМИ
  ПРОГРАММНЫМИ МОДУЛЯМИ ИЛИ ДЛЯ РАБОТЫ В УСЛОВИЯХ ПЕРЕКРЫТИЯ,
  СВЯЗАННАЯ ПЕРЕМЕННАЯ ДОЛЖНА БЫТЬ РАСПОЛОЖЕНА В РЕЗИДЕНТНОЙ
  ЧАСТИ В БЛОКЕ COMMON.

   ПРИМЕР.

         DEFINE FILE 3(1000,49,U,IAS)

  ЭТОТ ОПЕРАТОР ОПРЕДЕЛЯЕТ, ЧТО ЛОГИЧЕСКОЕ УСТРОЙСТВО 3 ОТОЖ-
  ДЕСТВЛЯЕТСЯ С ФАЙЛОМ, СОСТОЯЩИМ ИЗ 1000 ЗАПИСЕЙ ФИКСИРОВАН-
  НОЙ ДЛИНЫ, ПРИЧЕМ КАЖДАЯ ЗАПИСЬ ИМЕЕТ ДЛИНУ  49  СЛОВ.  ЭТИ
  ЗАПИСИ ПРОНУМЕРОВАНЫ ПОСЛЕДОВАТЕЛЬНО ОТ 1 ДО 1000 И ЯВЛЯЮТ-
  СЯ   БЕСФОРМАТНЫМИ   ЗАПИСЯМИ.   ПОСЛЕ   КАЖДОЙ    ОПЕРАЦИИ
  ВВОДА/ВЫВОДА С ПРЯМЫМ ДОСТУПОМ НАД ЭТИМ ФАЙЛОМ ЦЕЛАЯ  ПЕРЕ-
  МЕННАЯ "IAS" ДОЛЖНА СОДЕРЖАТЬ НОМЕР ЗАПИСИ, КОТОРАЯ  НЕПОС-
  РЕДСТВЕННО СЛЕДУЕТ ЗА ТОЛЬКО ЧТО УЧАСТВОВАВШЕЙ  В  ОПЕРАЦИИ
  ЗАПИСЬЮ.



        5.3.10.5. ОПЕРАТОР "FIND"



       ОПЕРАТОР "FIND" ВЫПОЛНЯЕТ  УСТАНОВКУ  ФАЙЛА  С  ПРЯМЫМ
  ДОСТУПОМ, НАХОДЯЩЕГОСЯ НА УКАЗАННОМ УСТРОЙСТВЕ, НА ЗАДАННУЮ
  ЗАПИСЬ И ПРИСВАИВАЕТ СВЯЗАННОЙ ПЕРЕМЕННОЙ ФАЙЛА НОМЕР  ЭТОЙ
  ЗАПИСИ. НИКАКОЙ ПЕРЕДАЧИ ДАННЫХ НЕ ПРОИСХОДИТ.

       ОПЕРАТОР "FIND" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

          FIND (U'R)

   ГДЕ

  U
         - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

  R
         - НОМЕР ЕДИНИЦЫ ЗАПИСИ.

       НОМЕР УСТРОЙСТВА В ЭТОМ ОПЕРАТОРЕ ДОЛЖЕН ОТНОСИТЬСЯ  К
  ЛОГИЧЕСКОМУ УСТРОЙСТВУ, КОТОРОЕ ДОЛЖНО БЫТЬ РАНЕЕ ОПРЕДЕЛЕ-
  НО ДЛЯ ОПЕРАЦИИ С ПРЯМЫМ ДОСТУПОМ.

       НОМЕР ЗАПИСИ НЕ МОЖЕТ БЫТЬ МЕНЬШЕ 1 И НЕ МОЖЕТ  ПРЕВЫ-
  ШАТЬ ЧИСЛА ЗАПИСЕЙ, ОПРЕДЕЛЕННОГО ДЛЯ ЭТОГО ФАЙЛА.

    FIND(1'1)     (УСТАНОВКА ФАЙЛА НА ЛОГИЧЕСКОМ УСТРОЙСТВЕ
                   1 И ЕГО СВЯЗАННОЙ ПЕРЕМЕННОЙ НА ПЕРВУЮ
                   ЗАПИСЬ);
    FIND(1'IAS)   (УСТАНОВКА ФАЙЛА И СВЯЗАННОЙ ПЕРЕМЕННОЙ
                   НА ЗАПИСЬ, ОПРЕДЕЛЯЕМУЮ СОДЕРЖИМЫМ "IAS").





                              - 78 -

                         00014-01.35.02




         5.3.10.6. ОПЕРАТОР "OPEN"


       ОПЕРАТОР "OPEN" МОЖЕТ БЫТЬ ИСПОЛЬЗОВАН ДЛЯ  ОТОЖДЕСТВ-
  ЛЕНИЯ ИМЕЮЩЕГОСЯ ФАЙЛА С НЕКОТОРЫМ  ЛОГИЧЕСКИМ  УСТРОЙСТВОМ
  ЛИБО ДЛЯ ПОСТРОЕНИЯ НОВОГО ФАЙЛА  И  ОТОЖДЕСТВЛЕНИЯ  ЕГО  С
  ЛОГИЧЕСКИМ УСТРОЙСТВОМ. КРОМЕ ТОГО, ОПЕРАТОР  "OPEN"  МОЖЕТ
  СОДЕРЖАТЬ ОПРЕДЕЛЕНИЯ ХАРАКТЕРИСТИК  ФАЙЛА,  КОТОРЫЕ  БУДУТ
  УПРАВЛЯТЬ ПОСТРОЕНИЕМ И/ИЛИ ПОСЛЕДУЮЩЕЙ ОБРАБОТКОЙ ФАЙЛА.

       ОПЕРАТОР "OPEN" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

          OPEN (P[,P]...)

   ГДЕ

  Р
          - ПАРАМЕТР, КОТОРЫЙ МОЖЕТ БЫТЬ ОДНИМ ИЗ СЛЕДУЮЩИХ:

     КЛЮЧ              КЛЮЧ - ЭТО КЛЮЧЕВОЕ СЛОВО;
     КЛЮЧ=Е            Е - ЧИСЛОВОЕ ВЫРАЖЕНИЕ;
     КЛЮЧ=S            S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
     КЛЮЧ=LLT          LLT - БУКВЕННО-ЦИФРОВОЙ ЛИТЕРАЛ ИЛИ
                             СПЕЦИАЛЬНОЕ ОБОЗНАЧЕНИЕ;
     КЛЮЧ=V            V - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ;
     КЛЮЧ=N            N - ИДЕНТИФИКАТОР МАССИВА, ИДЕНТИФИКАТОР
                           ПЕРЕМЕННОЙ, ИДЕНТИФИКАТОР ЭЛЕМЕНТА
                           МАССИВА ИЛИ БУКВЕННО-ЦИФРОВОЙ ЛИТЕ-
                           РАЛ.

       КЛЮЧЕВЫЕ СЛОВА,  КОТОРЫЕ  РАЗРЕШАЕТСЯ  ИСПОЛЬЗОВАТЬ  В
  ОПРЕДЕЛЕННЫХ ХАРАКТЕРИСТИК, ПРИВЕДЕНЫ В ТАБЛ. 3  И  ОПИСАНЫ
  НИЖЕ.

       ОПРЕДЕЛЕНИЯ ХАРАКТЕРИСТИК  МОГУТ  БЫТЬ  РАСПОЛОЖЕНЫ  В
  ЛЮБОЙ ПОСЛЕДОВАТЕЛЬНОСТИ. В БОЛЬШИНСТВЕ СЛУЧАЕВ ОПРЕДЕЛЕНИЯ
  ХАРАКТЕРИСТИК ЯВЛЯЮТСЯ НЕОБЯЗАТЕЛЬНЫМИ И, ЕСЛИ ОНИ ОТСУТСТ-
  ВУЮТ, БУДЕТ ПРИНЯТО ЗНАЧЕНИЕ  ПО  УМОЛЧАНИЮ.  ПОД  ЧИСЛОВЫМ
  ВЫРАЖЕНИЕМ ПОДРАЗУМЕВАЕТСЯ ЛЮБОЕ ВЫРАЖЕНИЕ ЦЕЛОГО,  ВЕЩЕСТ-
  ВЕННОГО ИЛИ С ДВОЙНОЙ ТОЧНОСТЬЮ ТИПА. ЗНАЧЕНИЕ ЭТОГО  ВЫРА-
  ЖЕНИЯ БУДЕТ ПРЕОБРАЗОВАНО К ЦЕЛОМУ ТИПУ ПЕРЕД ЕГО ИСПОЛЬЗО-
  ВАНИЕМ В ОПЕРАТОРЕ "OPEN".

                             - 79 -

                        00014-01.35.02



                                           ТАБЛИЦА 3
---------------------------------------------------------
 КЛЮЧЕВОЕ СЛОВО         НАЗНАЧЕНИЕ            ЗНАЧЕНИЯ
---------------------------------------------------------
UNIT               НОМЕР ЛОГИЧЕСКОГО УСТРОЙ- E
                   СТВА
NAME               ОПРЕДЕЛЕНИЕ ФАЙЛА         N
TYPE               ТИП ФАЙЛА                 'OLD'
                                             'NEW'
                                             'SCRATCH'
                                             'UNKNOWN'
ACCESS             МЕТОД ДОСТУПА             'SEQUENTIAL'
                                             'DIRECT'
                                             'APPEND'
READONLY           ДОСТУП К ФАЙЛУ ТОЛЬКО
                   ДЛЯ ЧТЕНИЯ
FORM               ФОРМАТ ФАЙЛА              'FORMATTED'
                                             'UNFORMATTED'
RECORDSIZE         ДЛИНА ЗАПИСИ С ПРЯМЫМ
                   ДОСТУПОМ                  E
ERR                МЕТКА ПЕРЕХОДА ПО ОШИБКЕ  S
BUFFERCOUND        ЧИСЛО БУФЕРОВ             E
INITIALSIZE        РАЗМЕР ОТВОДИМОЙ ФАЙЛУ
                   ОБЛАСТИ                   E
EXTENDSIZE         РАЗМЕР РАСШИРЕНИЯ ФАЙЛА   E
NOSPANBLOCKS       ОГРАНИЧЕНИЕ ЗАПИСИ
SHARED             КОЛЛЕКТИВНЫЙ ДОСТУП К
                   ФАЙЛУ
DISPOSE            РАСПОРЯЖЕНИЕ ФАЙЛОМ      'SAVE'
                                            'KEEP'
                                            'PRINT'
                                            'DELETE'
ASSOCIATEVARIABLE  ИМЯ СВЯЗАННОЙ ПЕРЕМЕННОЙ V
CARRIAGECONTROL    ТИП УПРАВЛЕНИЯ КАРЕТКОЙ  'FORTRAN'
                                            'LIST'
                                            'NONE'
MAXREC             ЧИСЛО ЗАПИСЕЙ С ПРЯМЫМ
                   ДОСТУПОМ                 E
BLOCKSIZE          РАЗМЕР ФИЗИЧЕСКОГО БЛОКА E

1) КЛЮЧЕВОЕ СЛОВО "UNIT"
      - ЗАПИСЬ "UNIT = V" ОПРЕДЕЛЯЕТ ЛОГИЧЕСКОЕ  УСТРОЙСТ-
        ВО, КОТОРОЕ ДОЛЖНО БЫТЬ СВЯЗАНО С ФАЙЛОМ; "V"- ЭТО
        ЧИСЛОВОЕ ВЫРАЖЕНИЕ; В СПИСКЕ ПАРАМЕТРОВ ОБЯЗАТЕЛЬ-
        НО ДОЛЖНО БЫТЬ ОПРЕДЕЛЕНИЕ  УСТРОЙСТВА;  ВО  ВРЕМЯ
        ВЫПОЛНЕНИЯ ОПЕРАТОРА "OPEN" НЕ ДОЛЖНО БЫТЬ ДРУГОГО
        ФАЙЛА, СВЯЗАННОГО С ДАННЫМ ЛОГИЧЕСКИМ УСТРОЙСТВОМ.

2) КЛЮЧЕВОЕ СЛОВО "NAME"
      - ЗАПИСЬ "NAME = FLN" ОПРЕДЕЛЯЕТ ИДЕНТИФИКАТОР  ФАЙ-
        ЛА, СВЯЗЫВАЕМОГО С ЛОГИЧЕСКИМ  УСТРОЙСТВОМ;  "FLN"
        МОЖЕТ БЫТЬ БУКВЕННО-ЦИФРОВЫМ ЛИТЕРАЛОМ,  ИДЕНТИФИ-
        КАТОРОМ ПЕРЕМЕННОЙ,  ИДЕНТИФИКАТОРОМ  МАССИВА  ИЛИ
        ИДЕНТИФИКАТОРОМ  ЭЛЕМЕНТА  МАССИВА;  ИДЕНТИФИКАТОР
        МОЖЕТ БЫТЬ ЛЮБЫМ ОПРЕДЕЛЕНИЕМ ФАЙЛА, ДОПУСТИМЫМ  В
        СИСТЕМЕ ОС БК-11; ЕСЛИ ИДЕНТИФИКАТОР ФАЙЛА ХРАНИТ-
        СЯ В ПЕРЕМЕННОЙ ИЛИ МАССИВЕ,  ОН  ДОЛЖЕН  ЗАКАНЧИ-
        ВАТЬСЯ НУЛЕВЫМ СИМВОЛОМ КОДА КОИ-7  (НУЛЕВЫМ  БАЙ-
        ТОМ);



                             - 80 -

                        00014-01.35.02


3) КЛЮЧЕВОЕ СЛОВО "TYPE"
      - ЗАПИСЬ "TYPE = TYP"  ОПРЕДЕЛЯЕТ  ТИП  ОТКРЫВАЕМОГО
        ФАЙЛА; "TYP" - ЭТО ОДИН ИЗ ЛИТЕРАЛОВ 'OLD', 'NEW',
        'SCRETCH' ИЛИ 'UNKNOWN'; ЕСЛИ ОПРЕДЕЛЯЕТСЯ  'OLD',
        ФАЙЛ ДОЛЖЕН УЖЕ  СУЩЕСТВОВАТЬ;  ЕСЛИ  ОПРЕДЕЛЯЕТСЯ
        'NEW' - ДОЛЖЕН БЫТЬ СОЗДАН НОВЫЙ ФАЙЛ; ЕСЛИ  ОПРЕ-
        ДЕЛЯЕТСЯ 'SCRATCH', ТО СОЗДАЕТСЯ НОВЫЙ ФАЙЛ И СВЯ-
        ЗЫВАЕТСЯ С УКАЗАННЫМ УСТРОЙСТВОМ ДЛЯ ЕГО ИСПОЛЬЗО-
        ВАНИЯ ПРОГРАММОЙ; ФАЙЛ УНИЧТОЖАЕТСЯ ПРИ ВЫПОЛНЕНИИ
        ОПЕРАТОРА "CLOSE", ОБРАЩАЮЩЕГОСЯ К ТОМУ ЖЕ  САМОМУ
        ЛОГИЧЕСКОМУ УСТРОЙСТВУ,  А  ТАКЖЕ  ПРИ  ЗАВЕРШЕНИИ
        ВЫПОЛНЯЕМОЙ    ПРОГРАММЫ;    ЕСЛИ     ОПРЕДЕЛЯЕТСЯ
        'UNKNOWN', СИСТЕМА ПОПРОБУЕТ  ОПРЕДЕЛИТЬ  ТИП  КАК
        'OLD'; ЕСЛИ ФАЙЛ НЕ БУДЕТ ОБНАРУЖЕН, СИСТЕМА ОПРЕ-
        ДЕЛИТ ТИП КАК  'NEW'  И,  ТАКИМ  ОБРАЗОМ,  СОЗДАСТ
        НОВЫЙ ФАЙЛ; ПО УМОЛЧАНИЮ ИСПОЛЬЗУЕТСЯ  ОПРЕДЕЛЕНИЕ
        'NEW';

4) КЛЮЧЕВОЕ СЛОВО "ACCESS"
      - ЗАПИСЬ "ACCESS = ACC" ОПРЕДЕЛЯЕТ, ЯВЛЯЕТСЯ ЛИ ДОС-
        ТУП К ФАЙЛУ ПРЯМЫМ ИЛИ ПОСЛЕДОВАТЕЛЬНЫМ;  "ACC"  -
        ЭТО  ОДИН  ИЗ   СЛЕДУЮЩИХ   ЛИТЕРАЛОВ:   'DIRECT',
        'SEQUENTIAL'  ИЛИ  'APPEND';  'DIRECT'  ОПРЕДЕЛЯЕТ
        ФАЙЛ С ПРЯМЫМ  ДОСТУПОМ;  'SEQUENTIAL'  ОПРЕДЕЛЯЕТ
        ФАЙЛ С ПОСЛЕДОВАТЕЛЬНЫМ ДОСТУПОМ; 'APPEND' ОПРЕДЕ-
        ЛЯЕТ ФАЙЛ С ПОСЛЕДОВАТЕЛЬНЫМ ДОСТУПОМ И ПОЗИЦИОНИ-
        РОВАНИЕ ЗА ПОСЛЕДНЕЙ ЗАПИСЬЮ В ФАЙЛЕ; ПО УМОЛЧАНИЮ
        ИСПОЛЬЗУЕТСЯ ОПРЕДЕЛЕНИЕ 'SEQUENTIAL';

5) КЛЮЧЕВОЕ СЛОВО "READONLY"
      - ЗАПИСЬ "READONLY" ОПРЕДЕЛЯЕТ, ЧТО  ИМЕЮЩИЙСЯ  ФАЙЛ
        ПРЕДНАЗНАЧЕН ДЛЯ ЧТЕНИЯ И ЗАПРЕЩАЕТ ЗАПИСЬ В  ЭТОТ
        ФАЙЛ;

6) КЛЮЧЕВОЕ СЛОВО "FORM"
      - ЗАПИСЬ "FORM = FT" ОПРЕДЕЛЯЕТ ДОЛЖЕН ЛИ  ОТКРЫВАЕ-
        МЫЙ ФАЙЛ СЧИТЫВАТЬСЯ И ЗАПИСЫВАТЬСЯ С  ИСПОЛЬЗОВА-
        НИЕМ ОПЕРАТОРОВ ФОРМАТНОГО ВВОДА/ВЫВОДА  "READ"  И
        "WRITE" ИЛИ С ИСПОЛЬЗОВАНИЕМ ОПЕРАТОРОВ  НЕФОРМАТ-
        НОГО ВВОДА/ВЫВОДА "READ" И  "WRITE";  "FT"  -  ЭТО
        ОДИН ИЗ ЛИТЕРАЛОВ 'FORMATTED'  ИЛИ  'UNFORMATTED';
        ПРИ ОТСУТСТВИИ ЭТОГО ПАРАМЕТРА ДЛЯ  ПОСЛЕДОВАТЕЛЬ-
        НЫХ ФАЙЛОВ СТАНДАРТНО ОПРЕДЕЛЯЕТСЯ 'FORMATTED',  А
        ДЛЯ ФАЙЛОВ С ПРЯМЫМ ДОСТУПОМ - 'UNFORMATTED';

7) КЛЮЧЕВОЕ СЛОВО "RECORDSIZE"
      - ЗАПИСЬ "RECORDSIZE = RL" ОПРЕДЕЛЯЕТ  ДЛИНУ  ЗАПИСИ
        ФАЙЛА С ПРЯМЫМ ДОСТУПОМ; "RL" - ЭТО ЧИСЛОВОЕ ВЫРА-
        ЖЕНИЕ; В СЛУЧАЕ ФОРМАТНЫХ ЗАПИСЕЙ ДЛИНА - ЭТО ЧИС-
        ЛО СИМВОЛОВ; В СЛУЧАЕ НЕФОРМАТНЫХ ЗАПИСЕЙ ДЛИНА  -
        ЭТО ЧИСЛО (ДВОЙНЫХ СЛОВ); ЕСЛИ ФАЙЛ УЖЕ ИМЕЕТСЯ, И
        "RL" НЕ СОВПАДАЕТ  С  ФАКТИЧЕСКОЙ  ДЛИНОЙ  ЗАПИСИ,
        ФИКСИРУЕТСЯ ОШИБОЧНОЕ СОСТОЯНИЕ; ЕСЛИ  ЭТОТ  ПАРА-
        МЕТР ОПУЩЕН  В  СЛУЧАЕ  УЖЕ  СУЩЕСТВУЮЩЕГО  ФАЙЛА,
        ИСПОЛЬЗУЕТСЯ ЗНАЧЕНИЕ ДЛИНЫ  ЗАПИСИ,  ОПРЕДЕЛЕННОЕ
        ПРИ СОЗДАНИИ ФАЙЛА; ПРИ СОЗДАНИИ  НОВОГО  ФАЙЛА  С
        ПРЯМЫМ ДОСТУПОМ ЭТОТ ПАРАМЕТР  ОБЯЗАН  ПРИСУТСТВО-
        ВАТЬ; В СЛУЧАЕ ПОСЛЕДОВАТЕЛЬНОГО ФАЙЛА ЭТОТ  ПАРА-
        МЕТР ИГНОРИРУЕТСЯ;
                               - 81 -

                          00014-01.35.02


 8) КЛЮЧЕВОЕ СЛОВО "ERR"
      - ЗАПИСЬ  "ERR = S"   ОПРЕДЕЛЯЕТ  ПЕРЕДАЧУ УПРАВЛЕНИЯ
        ПРИ ОШИБОЧНОМ СОСТОЯНИИ; "S" - ЭТО МЕТКА  ВЫПОЛНЯЕ-
        МОГО ОПЕРАТОРА; ОПРЕДЕЛЕННАЯ ПО ПАРАМЕТРУ    "ERR="
        ПЕРЕДАЧА УПРАВЛЕНИЯ   ДЕЙСТВИТЕЛЬНА   ТОЛЬКО    ПРИ
        ВЫПОЛНЕНИИ ДАННОГО ОПЕРАТОРА "OPEN"  И НЕ ОТНОСИТСЯ
        К ПОСЛЕДУЮЩЕЙ РАБОТЕ ПО ВВОДУ/ВЫВОДУ   С  ЭТИМ УСТ-
        РОЙСТВОМ; ПРИ ОБНАЖУЖЕНИИ    ОШИБОЧНОГО   СОСТОЯНИЯ
        ФАЙЛ НЕ СОЗДАЕТСЯ И НЕ ОТКРЫВАЕТСЯ;

 9) КЛЮЧЕВОЕ СЛОВО "BUFFERCOUNT"
      - ЗАПИСЬ "BUFFERCOUNT = ВС" ОПРЕДЕЛЯЕТ   ЧИСЛО  БУФЕ-
        РОВ, СООТВЕТСТВУЮЩЕЕ ДАННОМУ УСТРОЙСТВУ ПРИ  МНОГО-
        БУФЕРНОМ ВВОДЕ/ВЫВОДЕ;   "ВС" - ЧИСЛОВОЕ    ВЫРАЖЕ-
        НИЕ; ПО УМОЛЧАНИЮ - ЕДИНИЦА;

 10) КЛЮЧЕВОЕ СЛОВО "INITIALIZE"
      - ЗАПИСЬ "INITIALIZE = ES" ОПРЕДЕЛЯЕТ   ЧИСЛО  БЛОКОВ
        В ОБЛАСТИ НА ДИСКОВОМ НАКОПИТЕЛЕ,    ПРЕДВАРИТЕЛЬНО
        ОТВОДИМОЙ НОВОМУ ФАЙЛУ.   "ES" - ЭТО ЧИСЛОВОЕ ВЫРА-
        ЖЕНИЕ; ЭТО КЛЮЧЕВОЕ СЛОВО   МОЖЕТ    ИСПОЛЬЗОВАТЬСЯ
        ТОЛЬКО ДЛЯ НОВЫХ ФАЙЛОВ И ТОЛЬКО   ДЛЯ   РАЗМЕЩЕНИЯ
        ФАЙЛА НА ДИСКЕ; ЕСЛИ ЭТОТ ПАРАМЕТР ОСУЩЕСТВЛЯЕТ ИЛИ
        РАВЕН НУЛЮ, НИКАКОГО ПРЕДВАРИТЕЛЬНОГО   ОПРЕДЕЛЕНИЯ
        РАЗМЕРА ОБЛАСТИ НЕ ВЫПОЛНЯЕТСЯ;

 11) КЛЮЧЕВОЕ  СЛОВО "EXTENDSIZE"
      - ЗАПИСЬ "EXTENDSIZE = ES" ОПРЕДЕЛЯЕТ   ЧИСЛО БЛОКОВ,
        НА КОТОРОЕ УВЕЛИЧИВАЕТСЯ ФАЙЛ, ЕСЛИ   ФАЙЛУ  ДОЛЖНА
        БЫТЬ ОТВЕДЕНА ДОПОЛНИТЕЛЬНАЯ ОБЛАСТЬ;  "ES"  -  ЭТО
        ЧИСЛОВОЕ ВЫРАЖЕНИЕ; ЕСЛИ ЭТОТ ПАРАМЕТР  ОТСУТСТВУЕТ
        ИЛИ РАВЕН НУЛЮ, ТО ПРИНИМАЕТСЯ РАВНЫМ ПЯТИ;

 12) КЛЮЧЕВОЕ СЛОВО "NOSPANBLOCKS"
      - ЗАПИСЬ "NOSPANBLOCKS"  ОПРЕДЕЛЯЕТ,   ЧТО  ЗАПИСИ НЕ
        ДОЛЖНЫ ПЕРЕСЕКАТЬ ГРАНИЦЫ БЛОКОВ НА ДИСКЕ;     ЕСЛИ
        КАКАЯ-ЛИБО ЗАПИСЬ ПРЕВЫСИТ РАЗМЕР ФИЗИЧЕСКОГО  БЛО-
        КА, БУДЕТ ЗАФИКСИРОВАНО ОШИБОЧНОЕ СОСТОЯНИЕ;

 13) КЛЮЧЕВОЕ СЛОВО "SHARED"
      - ЗАПИСЬ "SHARED = DIS" ОПРЕДЕЛЯЕТ,    КАК    СЛЕДУЕТ
        РАСПОРЯДИТЬСЯ ФАЙЛОМ, СВЯЗАННЫМ С ДАННЫМ  УСТРОЙСТ-
        ВОМ, КОГДА СТРОЙСТВО ЗАКРЫВАЕТСЯ;     "DIS" -   ЭТО
        ОДИН ИЗ СЛЕДУЮЩИХ ЛИТЕРАЛОВ: 'SAVE',   'PRINT'  ИЛИ
        'DELETE'; СТАНДАРТНО ПРИНИМАЕМЫМ   ЗНАЧЕНИЕМ    ПРИ
        ОТСУТСТВИИ ДАННОГО ПАРАМЕТРА ЯВЛЯЕТСЯ 'SAVE';
        'KEEP' - ЭТО СИНОНИМ 'SAVE';  ЭТО  ОПРЕДЕЛЕНИЕ ВЛЕ-
        ЧЕТ ЗА СОБОЙ СОХРАНЕНИЕ   ФАЙЛА   ПОСЛЕ  ТОГО,  КАК
        ЛОГИЧЕСКОЕ УСТРОЙСТВО ЗАКРЫВАЕТСЯ; 'DELETE'   ВЫЗЫ-
        ВАЕТ УНИЧТОЖЕНИЕ ФАЙЛА ПОСЛЕ ТОГО, КАК   ЛОГИЧЕСКОЕ
        УСТРОЙСТВО ЗАКРЫВАЕТСЯ; 'PRINT' ВЫЗЫВАЕТ     ПЕЧАТЬ
        ФАЙЛА НА УСТРОЙСТВО ПЕЧАТИ, А     ЗАТЕМ УНИЧТОЖЕНИЕ
        ФАЙЛА; ФАЙЛ, ДОСТУПНЫЙ ТОЛЬКО  ДЛЯ ЧТЕНИЯ, НЕ МОЖЕТ
        БЫТЬ ВЫВЕДЕН НА ПЕЧАТЬ ИЛИ УНИЧТОЖЕН;   ФАЙЛ   ТИПА



                              - 82 -

                          00014-01.35.02


        'SCRATCH'   НЕ МОЖЕТ   БЫТЬ   СОХРАНЕН  ИЛИ ВЫВЕДЕН НА
        ПЕЧАТЬ;

 15) КЛЮЧЕВОЕ СЛОВО "ASSOCIATEVARIABLE"
      - ЗАПИСЬ   "ASSOCIATEVARIABLE = ASV"   ОПРЕДЕЛЯЕТ  ЦЕЛУЮ
        ПЕРЕМЕННУЮ   "ASV",   КОТОРАЯ  ПОСЛЕ ВЫПОЛНЕНИЯ КАЖДОЙ
        ОПЕРАЦИИ   ВВОДА/ВЫВОДА   С  ПРЯМЫМ ДОСТУПОМ ПРИНИМАЕТ
        ЗНАЧЕНИЕ   НОМЕРА   ЗАПИСИ,  НЕПОСРЕДСТВЕННО СЛЕДУЮЩЕЙ
        ЗА   ЗАПИСЬЮ,   УЧАСТВУЮЩЕЙ В ОПЕРАЦИИ; ЭТОТ УКАЗАТЕЛЬ
        ИГНОРИРУЕТСЯ   В   СЛУЧАЕ   ФАЙЛОВ  С ПОСЛЕДОВАТЕЛЬНЫМ
        ДОСТУПОМ;

 16) КЛЮЧЕВОЕ СЛОВО "CARRIAGECONTROL"
      - ЗАПИСЬ    "CARRIAGECONTROL = CC"     ОПРЕДЕЛЯЕТ    ВИД
        ИСПОЛЬЗУЕМОГО   УПРАВЛЕНИЯ   КАРЕТКОЙ ПРИ ВЫВОДЕ ФАЙЛА
        НА ПЕЧАТЬ; "CC"   -   ЭТО ОДИН ИЗ СЛЕДУЮЩИХ ЛИТЕРАЛОВ:
        'FORTRAN', 'LIST', 'NONE';       ПО   УМОЛЧАНИЮ    ДЛЯ
        ФОРМАТНЫХ         ФАЙЛОВ      ПРИНИМАЕТСЯ  ОПРЕДЕЛЕНИЕ
        'FORTRAN',   А  ДЛЯ  НЕФОРМАТНЫХ  -  'NONE'; 'FORTRAN'
        ОПРЕДЕЛЯЕТ   ОБЫЧНУЮ   ФОРТРАНОВСКУЮ     ИНТЕРПРЕТАЦИЮ
        ПЕРВОГО СИМВОЛА;   'LIST'   ВНОСИТ   ОДИНОЧНЫЕ ПРОБЕЛЫ
        МЕЖДУ ЕДИНИЦАМИ ЗАПИСИ;    'NONE'     УКАЗЫВАЕТ,   ЧТО
        НИКАКОГО УПРАВЛЕНИЯ КАРЕТКОЙ НЕ ВЫПОЛНЯЕТСЯ;

 17) КЛЮЧЕВОЕ СЛОВО "MAXREC"
      - ЗАПИСЬ   "MAXREC = MR"   ОПРЕДЕЛЯЕТ МАКСИМАЛЬНОЕ ЧИСЛО
        ЕДИНИЦ ЗАПИСЕЙ,      ДОПУСКАЕМОЕ В ФАЙЛЕ С ПРЯМЫМ ДОС-
        ТУПОМ;   "MR" -  ЭТО  ЧИСЛОВОЕ ВЫРАЖЕНИЕ; ПРИ ОТСУТСТ-
        ВИИ   ЭТОГО   ПАРАМЕТРА  МАКСИМАЛЬНОЕ ЧИСЛО ЗАПИСЕЙ НЕ
        ОПРЕДЕЛЯЕТСЯ; В СЛУЧАЕ    ФАЙЛА   С   ПОСЛЕДОВАТЕЛЬНЫМ
        ДОСТУПОМ ЭТОТ УКАЗАТЕЛЬ ИГНОРИРУЕТСЯ;

 18) КЛЮЧЕВОЕ СЛОВО "BLOCKSIZE"
      - ЗАПИСЬ "BLOCKSIZE = BKS"    ОПРЕДЕЛЯЕТ   РАЗМЕР  ФИЗИ-
        ЧЕСКОГО БЛОКА ДЛЯ ДАННОГО УСТРОЙСТВА;   "BKS"  -   ЭТО
        ЧИСЛОВОЕ   ВЫРАЖЕНИЕ;   ЭТОТ  УКАЗАТЕЛЬ ИМЕЕТ ЗНАЧЕНИЕ
        ТОЛЬКО   ДЛЯ   ФАЙЛОВ   НА   МАГНИТНОЙ ЛЕНТЕ; В СЛУЧАЕ
        ФАЙЛОВ НА ДИСКАХ   ОН   ИГНОРИРУЕТСЯ;   ПРИ ОТСУТСТВИИ
        ЭТОГО   ПАРАМЕТРА   ИСПОЛЬЗУЕТСЯ   СИСТЕМНЫЙ  СТАНДАРТ
        ДЛЯ ЭТОГО УСТРОЙСТВА;

    ПРИМЕРЫ ОПЕРАТОРОВ "OPEN":

OPEN    (UNIT=5,TYPE='NEW',     ACCESS='DIRECT',INITIALIZE=60,
RECORDSIZE=16)

ПО ЭТОМУ   ОПЕРАТОРУ  СТРОИТСЯ НОВЫЙ ФАЙЛ С ПРЯМЫМ ДОСТУПОМ НА
УСТРОЙСТВЕ 5, СОСТОЯЩИЙ ИЗ 60 БЛОКОВ.

OPEN    (UNIT=2,NAME='BY1:PROB.DAT', TYPE='NEW', ERR=17)

СТРОИТСЯ ФАЙЛ НА ГИБКОМ МАГНИТНОМ ДИСКЕ.

OPEN  (UNIT=2,NAME='BY1:PROB.DAT',READONLY,TYPE='OLD')

ДЛЯ ВЫВОДА   ДАННЫХ  ОТКРЫВАЕТСЯ ФАЙЛ, ПОСТРОЕННЫЙ  В ПРЕДЫДУ-
ЩЕМ ПРИМЕРЕ.



                              - 83 -

                          00014-01.35.02


        5.3.10.7. ОПЕРАТОР "CLOSE"


        ОПЕРАТОР "CLOSE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

              CLOSE  (UNIT=U[,DISPOSE=P] [,ERR=S])

 ГДЕ

 U
      - НОМЕР ЛОГИЧЕСКОГО УСТРОЙСТВА;

 P
      - ЛИТЕРАЛ,   ОПРЕДЕЛЯЮЩИЙ,   КАК   СЛЕДУЕТ РАСПОРЯДИТЬСЯ
        ФАЙЛОМ;   ОН   МОЖЕТ   ИМЕТЬ  ЗНАЧЕНИЯ 'SAVE', 'KEEP',
        'DELETE'  И  'PRINT';   'SAVE'  И 'KEEP' - ЭТО СИНОНИ-
        МЫ;   ЕСЛИ   ОПРЕДЕЛЕН  ОДИН ИЗ НИХ, ТО ПОСЛЕ ВЫПОЛНЕ-
        НИЯ    "CLOSE"    ФАЙЛ   СОХРАНЯЕТСЯ;  ЕСЛИ ОПРЕДЕЛЕНО
        'DELETE',   ТО   ФАЙЛ   УДАЛЯЕТСЯ   ПОСЛЕ   ВЫПОЛНЕНИЯ
        "CLOSE";   'PRINT'   ВЫЗЫВАЕТ   ПЕЧАТЬ   ФАЙЛА НА УСТ-
        РОЙСТВЕ ПЕЧАТИ,   ПОСЛЕ ЧЕГО   ФАЙЛ  УНИЧТОЖАЕТСЯ; ДЛЯ
        ФАЙЛОВ   С   ТИПОМ 'SCRATCH' ПО УМОЛЧАНИЮ ИСПОЛЬЗУЕТСЯ
        'DELETE', А ДЛЯ ОСТАЛЬНЫХ - 'SAVE';

 S
      - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА.

    ОПЕРАТОР   "CLOSE"   УСТРАНЯЕТ   СВЯЗЬ МЕЖДУ ФАЙЛОМ И УСТ-
РОЙСТВОМ. ПАРАМЕТР 'DISPOSE'   В ОПЕРАТОРЕ   "CLOSE" ПЕРЕОПРЕ-
ДЕЛЯЕТ   СООТВЕТСТВУЮЩЕЕ   УКАЗАНИЕ,  ОПРЕДЕЛЕННОЕ В ОПЕРАТОРЕ
"OPEN".    ИСКЛЮЧЕНИЕМ  ЯВЛЯЕТСЯ  ФАЙЛ, ОТКРЫТЫЙ КАК ФАЙЛ ТИПА
'SCRATCH',   КОТОРЫЙ   НЕ МОЖЕТ  БЫТЬ НИ СОХРАНЕН, НИ РАСПЕЧА-
ТАН,   А ТАКЖЕ ФАЙЛ,   ОТКРЫТЫЙ  ТОЛЬКО ДЛЯ ЧТЕНИЯ, КОТОРЫЙ НЕ
МОЖЕТ БЫТЬ НИ РАСПЕЧАТАН, НИ УНИЧТОЖЕН.

     ПРИМЕРЫ.

        CLOSE (UNIT  =2,DISPOSE='PRINT')

ПО    ЭТОМУ  ОПЕРАТОРУ  ЗАКРЫВАЕТСЯ ФАЙЛ НА УСТРОЙСТВЕ 2 И ЕГО
СОДЕРЖИМОЕ ПЕЧАТАЕТСЯ НА LP:.

        CLOSE (UNIT=I,DISPOSE='DELETE',ERR=25)

ЗАКРЫВАЕТСЯ ФАЙЛ НА УСТРОЙСТВЕ "I" И УНИЧТОЖАЕТСЯ.


        5.3.11. ОПЕРАТОРЫ "ENCODE"  И "DECODE"

        ЭТИ ДВА ОПЕРАТОРА ВЫПОЛНЯЮТ ПЕРЕДАЧУ ДАННЫХ ПОД УПРАВ-
ЛЕНИЕМ    СПЕЦИФИКАЦИЙ ФОРМАТА,  ПРЕОБРАЗУЯ ДАННЫЕ ИЗ ВНУТРЕН-
НЕГО ФОРМАТА В СИМВОЛЬНЫЙ ИЛИ ИЗ СИМВОЛЬНОГО ВО ВНУТРЕННИЙ.
ОДНАКО,   В   ОТЛИЧИЕ   ОТ   ОБЫЧНЫХ   ОПЕРАТОРОВ   ФОРМАТНОГО
ВВОДА/ВЫВОДА,   ЗДЕСЬ   ВЫПОЛНЯЮТСЯ ТОЛЬКО ВНУТРЕННИЕ ПЕРЕДАЧИ
ДАННЫХ   МЕЖДУ  ПЕРЕМЕННЫМИ ИЛИ МАССИВАМИ В ПРОГРАММЕ НА ФОРТ-



                              - 84 -

                          00014-01.35.02


РАН.

        ОПЕРАТОРЫ "ENCODE" И "DECODE" ЗАПИСЫВАЮТСЯ СЛЕДУЮЩИМ
ОБРАЗОМ:

           ENCODE  (C,F,B [,ERR=S]) [K]
           DECODE  (C,F,B [,ERR=S]) [K]

 ГДЕ

 C
      - ЦЕЛОЕ   ВЫРАЖЕНИЕ,   ПРЕДСТАВЛЯЮЩЕЕ   ЧИСЛО СИМВОЛОВ
        (БАЙТОВ),   КОТОРЫЕ  ДОЛЖНЫ БЫТЬ ПРЕОБРАЗОВАНЫ, ЛИБО
        ЧИСЛО СИМВОЛОВ,   КОТОРЫЕ ДОЛЖНЫ   ПОЛУЧИТЬСЯ  ПОСЛЕ
        ПРЕОБРАЗОВАНИЯ   (ЗДЕСЬ   ИМЕЕТСЯ  АНАЛОГИЯ С ДЛИНОЙ
        ЗАПИСИ);

 F
      - УКАЗАТЕЛЬ   ФОРМАТА;   ЕСЛИ   В ФОРМАТЕ ОПРЕДЕЛЯЕТСЯ
        БОЛЕЕ, ЧЕМ ОДНА ЕДИНИЦА ЗАПИСИ,    ФИКСИРУЕТСЯ  ОШИ-
        БОЧНОЕ СОСТОЯНИЕ;

 B
      - ИДЕНТИФИКАТОР    МАССИВА, ЭЛЕМЕНТА МАССИВА ИЛИ ПЕРЕ-
        МЕННОЙ; В ОПЕРАТОРЕ   "ENCODE" В ЭТОТ ОБ'ЕКТ ЗАПИСЫ-
        ВАЮТСЯ СИМВОЛЫ;   В  ОПЕРАТОРЕ  "DECODE" ОН СОДЕРЖИТ
        СИМВОЛЫ,    КОТОРЫЕ   ДОЛЖНЫ   БЫТЬ ПРЕОБРАЗОВАНЫ ВО
        ВНУТРЕННИЙ   ФОРМАТ;  "B" НЕ ДОЛЖНО БЫТЬ ИДЕНТИФИКА-
        ТОРОМ ВИРТУАЛЬНОГО МАССИВА ИЛИ ЕГО ЭЛЕМЕНТОМ;

 S
      - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

 K
      - СПИСОК   ВВОДА/ВЫВОДА;  В ОПЕРАТОРЕ "ENCODE"  СПИСОК
        ВВОДА/ВЫВОДА   СОДЕРЖИТ   ЭЛЕМЕНТЫ,   КОТОРЫЕ ДОЛЖНЫ
        БЫТЬ ПРЕОБРАЗОВАНЫ В СИМВОЛЫ;   В ОПЕРАТОРЕ "DECODE"
        ЭЛЕМЕНТАМ СПИСКА ПРИСВАИВАЮТСЯ   ЗНАЧЕНИЯ    ДАННЫХ,
        КОТОРЫЕ ПРЕОБРАЗУЮТСЯ  ИЗ СИМВОЛОВ   ВО   ВНУТРЕННИЙ
        ФОРМАТ;

     ОПЕРАТОР   "ENCODE"   ВЫЗЫВАЕТ ПРЕОБРАЗОВАНИЕ ЭЛЕМЕНТОВ
СПИСКА ВВОДА/ВЫВОДА ПОД   УПРАВЛЕНИЕМ СПЕЦИФИКАЦИЙ ФОРМАТА И
ЗАПОМИНАНИЕ ИХ В ОБ'ЕКТЕ  "B"   АНАЛОГИЧНО   ТОМУ,   КАК ЭТО
ПРОИСХОДИТ ПРИ РАБОТЕ ОПЕРАТОРА "WRITE".

     ОПЕРАТОР   "DECODE"  ВЫЗЫВАЕТ ПРЕОБРАЗОВАНИЕ СИМВОЛЬНЫХ
ДАННЫХ ИЗ ОБ'ЕКТА "B"   ПОД УПРАВЛЕНИЕМ СПЕЦИФИКАЦИЙ ФОРМАТА
И  ПРИСВАИВАЕТ   ПОЛУЧЕННЫЕ   ЗНАЧЕНИЯ   ЭЛЕМЕНТАМ    СПИСКА
ВВОДА/ВЫВОДА.   ЭТА   ОБРАБОТКА  АНАЛОГИЧНА РАБОТЕ ОПЕРАТОРА
"READ".

     ЕСЛИ   ОБ'ЕКТОМ "B" ЯВЛЯЕТСЯ МАССИВ, ЕГО ЭЛЕМЕНТЫ ОБРА-
БАТЫВАЮТСЯ В ПОРЯДКЕ ИНДЕКСНОЙ ПРОГРЕССИИ.

     КОЛИЧЕСТВО   СИМВОЛОВ,   КОТОРОЕ  МОЖЕТ БЫТЬ ОБРАБОТАНО
ОПЕРАТОРАМИ   "ENCODE"  И   "DECODE", ЗАВИСИТ ОТ ТИПА ДАННЫХ
ОБ'ЕКТА "B" В ЭТОМ ОПЕРАТОРЕ.   НАПРИМЕР, МАССИВ "INTEGER*2"
МОЖЕТ СОДЕРЖАТЬ ПО ДВА СИМВОЛА  НА  ЭЛЕМЕНТ,  ТАК ЧТО МАКСИ-


                               - 85 -

                          00014-01.35.02


МАЛЬНОЕ   ЧИСЛО  СИМВОЛОВ ВДВОЕ БОЛЬШЕ ЧИСЛА ЭЛЕМЕНТОВ В ЭТОМ
МАССИВЕ.   ВЗАИМОСВЯЗЬ  МЕЖДУ  УПРАВЛЕНИЕМ ФОРМАТОМ И СПИСКОМ
ВВОДА/ВЫВОДА  ОСТАЕТСЯ   ТАКОЙ ЖЕ,  КАК И ДЛЯ ОПЕРАТОРОВ ФОР-
МАТНОГО ВВОДА/ВЫВОДА.

        ПРИМЕР:

           дименсион а(3),к(3)
           дата а /'1567','11321','9105'/
           децоде (12,100,А) К
       100 формат (314)

ВЫПОЛНЕНИЕ   ЭТОГО ОПЕРАТОРА "децоде" ВЫЗЫВАЕТ ПРЕОБРАЗОВАНИЕ
СИМВОЛОВ ИЗ МАССИВА "а"   К   ЦЕЛОМУ   ФОРМАТУ (ОПРЕДЕЛЕННОМУ
ОПЕРАТОРОМ 100)   И   ИХ  ЗАПОМИНАНИЕ В МАССИВЕ "к" СЛЕДУЮЩИМ
ОБРАЗОМ:

           К(1)=1567
           К(2)=1321
           К(3)=9105


        5.4. ОПЕРАТОРЫ "формат"


        ОПЕРАТОРЫ "формат" ЯВЛЯЮТСЯ НЕВЫПОЛНЯЕМЫМИ ОПЕРАТОРА-
МИ,   ИСПОЛЬЗУЕМЫМИ   СОВМЕСТНО   С   ОПЕРАТОРАМИ  ФОРМАТНОГО
ВВОДА/ВЫВОДА И С ОПЕРАТОРАМИ "енцоде" И "децоде".

        ОПЕРАТОР   "формат" ОПИСЫВАЕТ ФОРМАТ, В КОТОРОМ ПЕРЕ-
ДАЮТСЯ ПОЛЯ ДАННЫХ,   А   ТАКЖЕ ПРЕОБРАЗОВАНИЕ И РЕДАКТИРОВА-
НИЕ,    КОТОРЫЕ ДОЛЖНЫ БЫТЬ ВЫПОЛНЕНЫ ДЛЯ ПРИВЕДЕНИЯ ДАННЫХ К
ЭТОМУ ФОРМАТУ.

        ОПЕРАТОРА "формат" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

           формат (я1ф1с1ф2с2...фнян)

 ГДЕ

я
      - ГРУППА   НАКЛОННЫХ   ЧЕРТ,   ОБЩИМ  ЧИСЛОМ ОТ НУЛЯ  И
        БОЛЕЕ,   КАЖДАЯ  ИЗ КОТОРЫХ ЯВЛЯЕТСЯ ПРИЗНАКОМ НАЧАЛА
        НОВОЙ ЕДИНИЦЫ ЗАПИСИ;

ф
      - СПЕЦИФИКАЦИЯ   ПРЕОБРАЗОВАНИЯ   ИЛИ ГРУППА СПЕЦИФИКА-
        ЦИЙ, ЗАКЛЮЧЕННАЯ В СКОБКИ;

с
      - РАЗДЕЛИТЕЛЬНЫЙ ЗНАК.

    ВСЕ   ВЫРАЖЕНИЕ,  ВКЛЮЧАЯ СКОБКИ, НАЗЫВАЕТСЯ СПИСКОМ СПЕ-
ЦИФИКАЦИЙ. НАЛИЧИЕ   ВНЕШНИХ   СКОБОК  ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНЫМ.

    СПЕЦИФИКАЦИЯ ПРЕОБРАЗОВАНИЯ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:



                              - 86 -

                          00014-01.35.02


        шрщ цвш.кщ

 ГДЕ

р
      - КОЭФФИЦИЕНТ   ПОВТОРЕНИЯ,   КОТОРЫЙ   УКАЗЫВАЕТ,  ЧТО
        ДАННАЯ   СПЕЦИФИКАЦИЯ  ДОЛЖНА   БЫТЬ  ПРИМЕНЕНА К "р"
        ПОСЛЕДОВАТЕЛЬНЫМ   ПОЛЯМ;   ЕСЛИ КОЭФФИЦИЕНТ ПОВТОРЕ-
        НИЯ ОПУЩЕН, ОН ПОЛАГАЕТСЯ РАВНЫМ ЕДИНИЦЕ;

ц
      - ТИП СПЕЦИФИКАЦИИ;

в
      - ОПРЕДЕЛЯЕТ ДЛИНУ ПОЛЯ;

к
      - ОПРЕДЕЛЯЕТ   ЧИСЛО   СИМВОЛОВ   СПРАВА ОТ  ДЕСЯТИЧНОЙ
        ТОЧКИ.

ВЕЛИЧИНЫ   "р", "в", "к"   ДОЛЖНЫ БЫТЬ ЦЕЛЫМИ КОНСТАНТАМИ БЕЗ
ЗНАКА, НЕ ПРЕВЫШАЮЩИМИ 255.

        К РАЗДЕЛИТЕЛЬНЫМ ЗНАКАМ ОТНОСЯТСЯ ЗАПЯТАЯ И НАКЛОННАЯ
ЧЕРТА.   НАКЛОННАЯ   ЧЕРТА КРОМЕ ТОГО СЛУЖИТ ПРИЗНАКОМ НАЧАЛА
НОВОЙ ЗАПИСИ.

        В СПИСКЕ СПЕЦИФИКАЦИЙ ИСПОЛЬЗУЮТСЯ СЛЕДУЮЩИЕ СПЕЦИФИ-
КАЦИИ ПРЕОБРАЗОВАНИЯ:

        - СПЕЦИФИКАЦИИ ЦЕЛЫХ ЧИСЕЛ: ив, ов;

        - ЛОГИЧЕСКАЯ СПЕЦИФИКАЦИЯ: лв;

        - СПЕЦИФИКАЦИЯ   ВЕЩЕСТВЕННЫХ,  С ДВОЙНОЙ ТОЧНОСТЬЮ И
          КОМПЛЕКСНЫХ ЧИСЕЛ: фв.к ИЛИ ев.к, дв.к, гв.к;

        - ЛИТЕРАЛЬНЫЕ  И  РЕДАКТИРУЮЩИЕ СПЕЦИФИКАЦИИ: ав, нх,
          '...', нь, тн, я, с.

В  БУКВЕННО-ЦИФРОВЫХ  И РЕДАКТИРУЮЩИХ СПЕЦИФИКАЦИЯХ "н" ОПРЕ-
ДЕЛЯЕТ ЧИСЛО СИМВОЛОВ ИЛИ СИМВОЛЬНЫХ ПОЗИЦИЙ.

        КАЖДОЙ   ИЗ  СПЕЦИФИКАЦИЙ ТИПА  "ф", "е", "д" ИЛИ "г"
МОЖЕТ ПРЕДШЕСТВОВАТЬ МАСШТАБНЫЙ КОЭФФИЦИЕНТ В ВИДЕ:

        нп

 ГДЕ

н
      - ЭТО   ЦЕЛАЯ КОНСТАНТА С НЕОБЯЗАТЕЛЬНЫМ ЗНАКОМ,  КОТО-
        РАЯ   МОЖЕТ   ИМЕТЬ   ЗНАЧЕНИЯ В ИНТЕРВАЛЕ ОТ -127 ДО
        +127;   ЭТА   КОНСТАНТА УКАЗЫВАЕТ, НА СКОЛЬКО ПОЗИЦИЙ
        ВЛЕВО  ИЛИ  ВПРАВО   СДВИГАЕТСЯ  ПОЛОЖЕНИЕ ДЕСЯТИЧНОЙ
        ТОЧКИ;

п
      - ИДЕНТИФИКАТОР МАСШТАБНОГО КОЭФФИЦИЕНТА.




                              - 87 -

                          00014-01.35.02


        ВО  ВРЕМЯ  ПЕРЕДАЧИ  ДАННЫХ  ВЫПОЛНЯЕТСЯ СКАНДИРОВАНИЕ
СПИСКА   СПЕЦИФИКАЦИЙ   СЛЕВА   НАПРАВО.   ВЕЛИЧИНЫ  ИЗ СПИСКА
ВВОДА/ВЫВОДА   ПРЕОБРАЗУЮТСЯ   ПОД УПРАВЛЕНИЕМ СООТВЕТСТВУЮЩИХ
СПЕЦИФИКАЦИЙ ПРЕОБРАЗОВАНИЯ.

        В  СЛУЧАЕ СПЕЦИФИКАЦИЙ ТИПА "Н" И ЛИТЕРАЛЬНЫХ СПЕЦИФИ-
КАЦИЙ ВЕСЬ  ОБМЕН   ДАННЫМИ  ПРОИСХОДИТ МЕЖДУ СПИСКОМ СПЕЦИФИ-
КАЦИЙ И ВНЕШНЕЙ ЗАПИСЬЮ.



        5.4.1. СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ



        СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ ИГНОРИРУЮТ ПРОБЕЛЫ,  ПРЕД-
ШЕСТВУЮЩИЕ   ЗНАЧАЩЕЙ  ЧАСТИ ВНЕШНЕГО ПОЛЯ, А ЗАВЕРШАЮЩИЕ ПРО-
БЕЛЫ И ПРОБЕЛЫ ВНУТРИ ПОЛЯ РАССМАТРИВАЮТСЯ КАК НУЛИ.


        ПРИМЕЧАНИЕ.   В  ЭТОМ РАЗДЕЛЕ В КАЧЕСТВЕ ЗНАКА ПРОБЕЛА
УПОТРЕБЛЯЕТСЯ СИМВОЛ "ч".


        5.4.1.1. СПЕЦИФИКАЦИЯ "и"


        СПЕЦИФИКАЦИЯ    "и"   УПРАВЛЯЕТ ПРЕОБРАЗОВАНИЕМ ДАННЫХ
ЦЕЛОГО ТИПА. ОНА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                ив

        СПЕЦИФИКАЦИЯ  "и" ВЫЗЫВАЕТ СЧИТЫВАНИЕ ОПЕРАТОРОМ ВВОДА
"в"   СИМВОЛ   ИЗ  ВНЕШНЕЙ ЗАПИСИ И ПРИСВАИВАНИЕ ЦЕЛОГО ЗНАЧЕ-
НИЯ  СООТВЕТСТВУЮЩЕМУ   ЦЕЛОМУ ЭЛЕМЕНТУ ИЗ СПИСКА ВВОДА. ВНЕШ-
НИЕ   ДАННЫЕ   ДОЛЖНЫ   БЫТЬ  ЦЕЛЫМИ ВЕЛИЧИНАМИ; ОНИ НЕ ДОЛЖНЫ
СОДЕРЖАТЬ   НИ ДЕСЯТИЧНОЙ   ТОЧКИ, НИ ПОЛЯ УКАЗАТЕЛЯ СТЕПЕНИ.
ЕСЛИ   ЗНАЧЕНИЕ   ВНЕШНЕГО  ПОЛЯ ПРЕВЫШАЕТ ДОПУСТИМОЕ ЗНАЧЕНИЕ
СООТВЕТСТВУЮЩЕГО   ЦЕЛОГО   ЭЛЕМЕНТА    СПИСКА,    ФИКСИРУЕТСЯ
ОШИБКА.

        ЕСЛИ ПЕРВЫЙ, ОТЛИЧНЫЙ ОТ ПРОБЕЛА, СИМВОЛ ВНЕШНЕГО ПОЛЯ
ЯВЛЯЕТСЯ ЗНАКОМ  "МИНУС",   ТО   ПО  СПЕЦИФИКАЦИИ "и" ЭТО ПОЛЕ
ЗАПОМИНАЕТСЯ   КАК   ОТРИЦАТЕЛЬНАЯ   ВЕЛИЧИНА.  ПОЛЕ, КОТОРОМУ
ПРЕДШЕСТВУЕТ   ЗНАК  "ПЛЮС", ИЛИ ПОЛЕ БЕЗ ЗНАКА РАССМАТРИВАЕТ-
СЯ КАК ПОЛОЖИТЕЛЬНАЯ ВЕЛИЧИНА. НАПРИМЕР:

   ФОРМАТ   ВНЕШНЕЕ   ПОЛЕ   ВНУТРЕННЕЕ  ПРЕДСТАВЛЕНИЕ

     14      2788              2788
     13      -35               -35
     19      чччччч415         415
     19      3.12              НЕ ДОПУСКАЕТСЯ; ОШИБКА

        СПЕЦИФИКАЦИЯ  "и"  ВЫЗЫВАЕТ ПЕРЕДАЧУ ОПЕРАТОРОМ ВЫВОДА
ЗНАЧЕНИЕ   СООТВЕТСТВУЮЩЕГО   СПИСКА   ВЫВОДА ВО ВНЕШНЕЕ ПОЛЯ,
ИМЕЮЩЕЕ  ДЛИНУ  "в"   СИМВОЛОВ  И  ВЫРАВНЕННОЕ  СПРАВА, ПРИЧЕМ




                              - 88 -

                          00014-01.35.02



НЕЗНАЧАЩИЕ   ЛЕВЫЕ  НУЛИ  ЗАМЕНЯЮТСЯ ПРОБЕЛАМИ. ЕСЛИ ЭТОТ ЭЛЕ-
МЕНТ  СПИСКА   ИМЕЕТ ОТРИЦАТЕЛЬНУЮ ВЕЛИЧИНУ В КАЧЕСТВЕ ПЕРВОГО
ЛЕВОГО СИМВОЛА,   ОТЛИЧНОГО  ОТ ПРОБЕЛА, ВО ВНЕШНЕМ ПОЛЕ БУДЕТ
ЗНАК  "МИНУС".    ПОЭТОМУ В "в" ДОЛЖЕН УЧИТЫВАТЬСЯ ЗНАК МИНУС,
ЕСЛИ ЗНАЧЕНИЕ МЕНЬШЕ НУЛЯ.   С   ДРУГОЙ СТОРОНЫ ЗНАК "ПЛЮС" НЕ
ВЫВОДИТСЯ И ЕГО   НЕ НАДО   УЧИТЫВАТЬ   В "в". ЕСЛИ КОЛИЧЕСТВО
СИМВОЛОВ   "в"  СЛИШКОМ МАЛО, ЧТОБЫ ПОЛЕ ВМЕСТИЛО ЗАПИСЬ ВЫВО-
ДИМОЙ ВЕЛИЧИНЫ,   ВСЕ ВНЕШНЕЕ ПОЛЕ ЗАПОЛНЯЕТСЯ ЗВЕЗДОЧКАМИ.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ   СПЕЦИФИКАЦИИ   "и" ДЛЯ ОПЕРАТОРА ВЫВО-
ДА:

 ФОРМАТ    ВНУТРЕННЯЯ ВЕЛИЧИНА   ВНЕШНЕЕ  ПРЕДСТАВЛЕНИЕ

   13          284                  284
   14          -284                 -284
   15          174                  чч174
   12          3244                 **
   13          -473                 ***
   17          29.905               НЕ ДОПУСКАЕТСЯ; ОШИБКА



        5.4.1.2. СПЕЦИФИКАЦИЯ "О"


        СПЕЦИФИКАЦИЯ "О" УПРАВЛЯЕТ ПЕРЕДАЧЕЙ ВОСЬМЕРИЧНЫХ ЗНА-
ЧЕНИЙ. ОНА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                ов

        СПЕЦИФИКАЦИЯ "О" ВЫЗЫВАЕТ СЧИТЫВАНИЕ ОПЕРАТОРОМ  ВВОДА
"в" СИМВОЛОВ ИЗ ЗАПИСИ И ПРИСВАИВАНИЕ ИХ,   КАК   ВОСЬМЕРИЧНОЙ
ВЕЛИЧИНЫ, СООТВЕТСТВУЮЩЕМУ ЭЛЕМЕНТУ    СПИСКА ВВОДА.   ЭЛЕМЕНТ
СПИСКА ДОЛЖЕН ИМЕТЬ ЦЕЛЫЙ   ИЛИ   ЛОГИЧЕСКИЙ ТИП ДАННЫХ. ВНЕШ-
НЕЕ ПОЛЕ МОЖЕТ СОДЕРЖАТЬ ТОЛЬКО ЦИФРЫ ОТ 0 ДО 7 ;    ОНО    НЕ
МОЖЕТ СОДЕРЖАТЬ ЗНАК ЧИСЛА, ДЕСЯТИЧНУЮ   ТОЧКУ   ИЛИ ПОЛЕ ЭКС-
ПОНЕНТЫ. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ    СПЕЦИФИКАЦИИ  "О" ДЛЯ ОПЕРА-
ТОРА ВВОДА:

        ФОРМАТ   ВНЕШНЕЕ ПОЛЕ ВНУТРЕННЕЕ ВОСЬМЕРИЧНОЕ
                              ПРЕДСТАВЛЕНИЕ
          05      32767       32767
          04      15232       1523
          06      14чччч      140000
          03      95ч         НЕ ДОПУСКАЕТСЯ; ОШИБКА

        СПЕЦИФИКАЦИЯ "О" ВЫЗЫВАЕТ ПЕРЕДАЧУ ОПЕРАТОРОМ  ВЫВОДА
ЗНАЧЕНИЯ СООТВЕТСТВУЮЩЕГО ЭЛЕМЕНТА СПИСКА ВЫВОДА,   ВЫРАВНЕН-
НОГО СПРАВА, В ПОЛЕ ДЛИНОЙ В "в" СИМВОЛОВ. ЕСЛИ  ДАННЫЕ    НЕ
ЗАПОЛНЯЮТ   ПОЛЕ   ЦЕЛИКОМ,   ТО  ОСТАВШАЯСЯ ЛЕВАЯ ЧАСТЬ ПОЛЯ
ЗАПОЛНЯЕТСЯ ПРОБЕЛАМИ.   ЕСЛИ ДАННЫЕ НЕ ПОМЕЩАЮТСЯ В ОТВЕДЕН-
НОМ ДЛЯ НИХ ПОЛЕ, ФИКСИРУЕТСЯ   ОШИБОЧНОЕ   СОСТОЯНИЕ.   ЗНАК
ЧИСЛА   НЕ ВЫВОДИТСЯ;   ОТРИЦАТЕЛЬНАЯ   ВЕЛИЧИНА ПЕРЕДАЕТСЯ В
СВОЕЙ   ВОСЬМЕРИЧНОЙ   ФОРМЕ (В ДОПОЛНИТЕЛЬНОМ КОДЕ). ЭЛЕМЕНТ
СПИСКА ВЫВОДА ДОЛЖЕН ИМЕТЬ ЦЕЛЫЙ ИЛИ ЛОГИЧЕСКИЙ ТИП ДАННЫХ.
НАПРИМЕР:




                              - 89 -

                          00014-01.35.02



     ФОРМАТ   ВНУТРЕННЕ (ДЕСЯТИЧНОЕ)  ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ
                    ЗНАЧЕНИЕ
       06         32767               ч77777
       06        -32767               100001
       02         15656                **
       04            28                чч34
       05            17.46            НЕ ДОПУСКАЕТСЯ; ОШИБКА



        5.4.1.3. СПЕЦИФИКАЦИЯ "ф"


        СПЕЦИФИКАЦИЯ "ф" ОПРЕДЕЛЯЕТ ПРЕОБРАЗОВАНИЕ И  РЕДАКТИ-
РОВАНИЕ ВЕЩЕСТВЕННЫХ ВЕЛИЧИН,     ВЕЛИЧИН С ДВОЙНОЙ ТОЧНОСТЬЮ,
А ТАКЖЕ ДЕЙСТВИТЕЛЬНЫХ ИЛИ   МНИМЫХ   ЧАСТЕЙ КОМПЛЕКСНЫХ ВЕЛИ-
ЧИН. ОНА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                   фв.к

        ПРИ ВВОДЕ СПЕЦИФИКАЦИЯ "ф"    ВЫЗЫВАЕТ  СЧИТЫВАНИЕ "в"
СИМВОЛОВ ИЗ ЗАПИСИ И ПРИСВАИВАНИЕ ИХ В   ВИДЕ    ВЕЩЕСТВЕННОГО
ЗНАЧЕНИЯ   СООТВЕТСТВУЮЩЕМУ   ЭЛЕМЕНТУ СПИСКА ВВОДА. ЕСЛИ ПЕР-
ВЫМ, ОТЛИЧНЫМ ОТ ПРОБЕЛА   СИМВОЛОМ  ВО  ВНЕШНЕМ ПОЛЕ ЯВЛЯЕТСЯ
ЗНАК "МИНУС", ЗНАЧЕНИЕ, ЗАПИСАННОЕ В ПОЛЕ,     РАССМАТРИВАЕТСЯ
КАК   ОТРИЦАТЕЛЬНАЯ   ВЕЛИЧИНА.   ЕСЛИ  ПОЛЮ ПРЕДШЕСТВУЕТ ЗНАК
"ПЛЮС"   ЛИБО  ЕСЛИ   ПОЛЕ  НЕ ИМЕЕТ ЗНАКА, ТО ОНО СЧИТЫВАЕТСЯ
ПОЛОЖИТЕЛЬНЫМ.       ВО ВСЕХ СЛУЧАЯХ В ЗАПИСИ СПЕЦИФИКАЦИИ "ф"
ВЕЛИЧИНА "в" ДОЛЖНА БЫТЬ БОЛЬШЕ ИЛИ РАВНА ВЕЛИЧИНЕ "к+1".

        ЕСЛИ ПОЛЕ   НЕ СОДЕРЖИТ НИ ДЕСЯТИЧНОЙ ТОЧКИ, НИ ЭКСПО-
НЕНТЫ, ОНО РАССМАТРИВАЕТСЯ   КАК  СОДЕРЖАЩЕЕ ЗАПИСЬ ВЕЩЕСТВЕН-
НОГО   ЧИСЛА,   СОСТОЯЩЕГО   ИЗ "в" ЦИФР, В КОТОРОМ ПРАВЫЕ "к"
ЦИФР  НАХОДЯТСЯ   СПРАВА   ОТ   ДЕСЯТИЧНОЙ  ТОЧКИ. ЕСЛИ В ПОЛЕ
СОДЕРЖИТСЯ   ДЕСЯТИЧНАЯ   ТОЧКА  В ЯВНОМ ВИДЕ, ТО ВЕЛИЧИНА "к"
НЕ ПРИНИМАЕТСЯ   ВО   ВНИМАНИЕ.    ЕСЛИ ПОЛЕ СОДЕРЖИТ УКАЗАНИЕ
СТЕПЕНИ,  ТО   ЭТА СТЕПЕНЬ ИСПОЛЬЗУЕТСЯ В ФОРМИРОВАНИИ ВЕЛИЧИ-
НЫ ПЕРЕД ПРИСВАИВАНИЕМ ЭЛЕМЕНТУ СПИСКА.

        ПРИМЕРЫ  ИСПОЛЬЗОВАНИЯ СПЕЦИФИКАЦИИ "ф" ДЛЯ ПРЕОБРАЗО-
ВАНИЯ ВЕЩЕСТВЕННЫХ ВЕЛИЧИН:

   ФОРМАТ   ВНЕШНЕЕ ПОЛЕ   ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ

     ф8.5    135679452           135.67945
     ф8.5    24.77Е+2            2477.0
     ф5.2    1234567.89          123.45


        ПРИ ВЫВОДЕ СПЕЦИФИКАЦИЯ "ф" ВЫЗЫВАЕТ ОКРУГЛЕНИЕ ЗНАЧЕ-
НИЯ СООТВЕТСТВУЮЩЕГО   ЭЛЕМЕНТА  СПИСКА ВЫВОДА ДО "к" ДЕСЯТИЧ-
НЫХ ЗНАКОВ В ДРОБНОЙ ЧАСТИ,   ПЕРЕДАЧУ   ЕГО  ВО ВНЕШНЕЕ ПОЛЕ,
ИМЕЮЩЕЕ   ДЛИНУ В "в"   СИМВОЛОВ   И  ВЫРАВНЕННОЕ СПРАВА. ЕСЛИ
ПРЕОБРАЗУЕМЫЕ  ДАННЫЕ  СОСТОЯТ   МЕНЕЕ  ЧЕМ ИЗ "в" СИМВОЛОВ, В
ПОЛЕ ЗАНОСЯТСЯ ЛЕВЫЕ ПРОБЕЛЫ.  ЕСЛИ  ДАННЫЕ  СОСТОЯТ БОЛЕЕ ЧЕМ
ИЗ "в" СИМВОЛОВ, ВСЕ ПОЛЕ ЗАПОЛНЯЕТСЯ ЗВЕЗДОЧКАМИ.

        ОБЩЕЕ ЧИСЛО СИМВОЛОВ "в"  ДОЛЖНО БЫТЬ ДОСТАТОЧНО ВЕЛИ-
КО, ЧТОБЫ УЧЕСТЬ СЛЕДУЮЩЕЕ:


                               - 90 -

                          00014-01.35.02



      - НАЛИЧИЕ   ЗНАКА   "МИНУС", ЕСЛИ ОН ИМЕЕТСЯ (ЗНАК ПЛЮС
        НЕ ВЫВОДИТСЯ);
      - КАК  МИНИМУМ  ОДНОЙ  ЦИФРЫ СЛЕВА ОТ ДЕСЯТИЧНОЙ ТОЧКИ;
      - САМОЙ   ДЕСЯТИЧНОЙ  ТОЧКИ; НАЛИЧИЕ "K" ЦИФР СПРАВА ОТ
        ТОЧКИ.

     ПОЭТОМУ   ВЕЛИЧИНА   "W"   ДОЛЖНА ВСЕГДА БЫТЬ БОЛЬШЕ ИЛИ
РАВНА ВЕЛИЧИНЕ "K+3".

     ПРИМЕРЫ   ИСПОЛЬЗОВАНИЯ  СПЕЦИФИКАЦИИ "F" ДЛЯ РЕДАКТИРО-
ВАНИЯ ВЕЩЕСТВЕННЫХ ВЕЛИЧИН:

    ФОРМАТ  ВНУТРЕННЕ ЗНАЧЕНИЕ   ВНЕШНЕЕ  ПРЕДСТАВЛЕНИЕ

    F8.5            2.4875189     ^2.48752
    F9.3         8837.4761        ^8837.476
    F2.3           48.51            **
    F10.4         -23.28732       ^^-23.2873
    F5.2          765.014         *****
    F5.2            -.2           -0.20


        5.4.1.4. СПЕЦИФИКАЦИЯ "Е"


        СПЕЦИФИКАЦИЯ   "Е"   ОПРЕДЕЛЯЕТ ПЕРЕДАЧУ ВЕЩЕСТВЕННЫХ
ВЕЛИЧИН  ИЛИ   ВЕЛИЧИН С ДВОЙНОЙ ТОЧНОСТЬЮ В ЭКСПОНЕНЦИАЛЬНОЙ
ФОРМЕ. ОНА ИМЕЕТ СЛЕДУЮЩИЙ ВИД.

                EW.K

        СПЕЦИФИКАЦИЯ   "Е" ВЫЗЫВАЕТ ВВОД ОПЕРАТОРОМ ВВОДА "W"
СИМВОЛОВ ИЗ ЗАПИСИ. ЭТИ  ДАННЫЕ   ИНТЕРПРЕТИРУЮТСЯ И ПРИСВАИ-
ВАЮТСЯ   ТОЧНО  ТАКИМ ЖЕ ОБРАЗОМ, КАК И В СЛУЧАЕ СПЕЦИФИКАЦИИ
"F".

        ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ СПЕЦИФИКАЦИЙ "E" ДЛЯ ОПЕРАТОРОВ
ВВОДА:

   ФОРМАТ    ВНЕШНЕЕ ПОЛЕ    ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ
    Е9.3       689.234Е3           689234.0
    Е12.4      ^^1042.34Е-6          1042.34Е-6
    Е15.12     52.3759663^^^^^         52.3759663
    Е12.5      210.3271D+10           210.3271Е10

        НЕОБХОДИМО ЗАМЕТИТЬ, ЧТО В ПОСЛЕДНЕМ ПРИМЕРЕ СПЕЦИФИ-
КАЦИЯ   "E"   ИГНОРИРУЕТ   ДОПОЛНИТЕЛЬНОЕ НАЗНАЧЕНИЕ ПРИЗНАКА
ПОЛЯ   ПОРЯДКА  "D", КАК УКАЗАТЕЛЯ ДВОЙНОЙ ТОЧНОСТИ, И  РАСС-
МАТРИВАЕТ ЕГО, КАК ПРИЗНАК "E".

        СПЕЦИФИКАЦИЯ  "E"  ВЫЗЫВЕТ ПЕРЕДАЧУ ОПЕРАТОРОМ ВЫВОДА
ЗНАЧЕНИЯ  СООТВЕТСТВУЮЩЕГО  ЭЛЕМЕНТА СПИСКА ВЫВОДА ВО ВНЕШНЕЕ
ПОЛЕ ДЛИНОЙ В "W" СИМВОЛОВ, ВЫРАВНЕННОЕ ПО ПРАВОЙ ПОЗИЦИИ.
ЕСЛИ  ЧИСЛО  СИМВОЛОВ В ПРЕОБРАЗОВАННЫХ ДАННЫХ МЕНЬШЕ "W", ТО
В   ЛЕВЫЕ ПОЗИЦИИ ПОЛЯ ЗАНОСЯТСЯ ПРОБЕЛЫ. ЕСЛИ ЧИСЛО СИМВОЛОВ
ПРЕВЫШАЕТ  "W", ТО ВСЕ ПОЛЕ БУДЕТ ЗАПОЛНЕНО ЗВЕЗДОЧКАМИ.
СООТВЕТСТВУЮЩИЙ   ЭЛЕМЕНТ  СПИСКА  ВЫВОДА ДОЛЖЕН БЫТЬ ВЕЩЕСТ-



                              - 91 -

                           00014-01.35.02


ВЕННОГО,   С   ДВОЙНОЙ   ТОЧНОСТЬЮ   ИЛИ   КОМПЛЕКСНОГО  ТИПА.

        ДАННЫЕ,   ВЫВОДИМЫЕ   ПОД   УПРАВЛЕНИЕМ   СПЕЦИФИКАЦИИ
"E",   ПЕРЕДАЮТСЯ   В   СТАНДАРТНОЙ  ФОРМЕ, СОСТОЯЩЕЙ ИЗ ЗНАКА
"МИНУС",   ЕСЛИ   ВЕЛИЧИНА ОТРИЦАТЕЛЬНАЯ (ЗНАК "ПЛЮС" НЕ ВЫВО-
ДИТСЯ),  НУЛЯ,   ДЕСЯТИЧНОЙ ТОЧКИ, "К" ЦИФР СПРАВА ОТ ДЕСЯТИЧ-
НОЙ ТОЧКИ И ЧЕТЫРЕХСИМВОЛЬНОГО ПОРЯДКА ЧИСЛА В ВИДЕ:

              E+NN   ИЛИ    E-NN

ГДЕ

NN
      - ДВУЗНАЧНАЯ ЦЕЛАЯ КОНСТАНТА.

        "K" ЦИФР СПРАВА ОТ ДЕСЯТИЧНОЙ ТОЧКИ ПРЕДСТАВЛЯЮТ ВЕЛИ-
ЧИНУ, СВЕДЕННУЮ К ПРАВИЛЬНОЙ ДЕСЯТИЧНОЙ ДРОБИ.

        ТАК   КАК   ДЛИНА   ДОЛЖНА   БЫТЬ  ДОСТАТОЧНО БОЛЬШОЙ,
ЧТОБЫ   ВМЕСТИТЬ   ЗНАК  "МИНУС" (ЕСЛИ ОН ПРИСУТСТВУЕТ), НУЛЬ,
ДЕСЯТИЧНУЮ   ТОЧКУ,   ПОРЯДОК  И "K" ЦИФР, ВЕЛИЧИНА "W" ДОЛЖНА
БЫТЬ ВСЕГДА БОЛЬШЕ ИЛИ РАВНА ВЕЛИЧИНЕ (K+7).

        ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ  СПЕЦИФИКАЦИИ "E" ДЛЯ ОПЕРАТОРОВ
ВЫВОДА:

    ФОРМАТ    ВНУТРЕННЕЕ ЗНАЧЕНИЕ   ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ
     Е9.2      475867.233              ^0.48Е+06
     Е12.5     475867.233              ^0.47587Е+06
     Е12.3          0.00069            ^^^0.690Е-3
     Е10.3         -0.5555             -0.556Е+00
     Е5.3          56.12                *****



        5.4.1.5. СПЕЦИФИКАЦИЯ "D"


        СПЕЦИФИКАЦИЯ   "D"   ОПРЕДЕЛЯЕТ  ПЕРЕДАЧУ ВЕЩЕСТВЕННЫХ
ВЕЛИЧИН   ИЛИ   ВЕЛИЧИН С ДВОЙНОЙ ТОЧНОСТЬЮ. ОНА ИМЕЕТ СЛЕДУЮ-
ЩИЙ ВИД:

             DW.K

        ПРИ   ВВОДЕ  СПЕЦИФИКАЦИЯ "D" ВЫПОЛНЯЕТ ТЕ ЖЕ ФУНКЦИИ,
ЧТО И ЭКВИВАЛЕНТНАЯ  СПЕЦИФИКАЦИЯ   "E",  ЗА ИСКЛЮЧЕНИЕМ ТОГО,
ЧТО  ВВОДИМЫЕ  ДАННЫЕ ПРЕОБРАЗУЮТСЯ И ПРИСВАИВАЮТСЯ ОБ'ЕКТУ С
ДВОЙНОЙ ТОЧНОСТЬЮ, КАК ПОКАЗАНО В СЛЕДУЮЩИХ ПРИМЕРАХ:

   ФОРМАТ   ВНЕШНЕЕ ПОЛЕ  ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ

    D10.2    12345^^^^^          12345000.0D0
    D10.2    ^^123.45^^           123.45D0
    D15.3    367.4571263D+04        3.674571263D+06

        ПРИ ВЫВОДЕ  СПЕЦИФИКАЦИЯ "D" РАБОТАЕТ ИДЕНТИЧНО СПЕЦИ-
ФИКАЦИИ "E" ЗА  ИСКЛЮЧЕНИЕМ  ТОГО,  ЧТО ВМЕСТО ПРИЗНАКА ПОРЯД-



                              - 92 -

                          00014-01.35.02



КА "E" ИСПОЛЬЗУЕТСЯ ПРИЗНАК ПОРЯДКА "D". НАПРИМЕР:

   ФОРМАТ  ВНУТРЕННЕЕ ЗНАЧЕНИЕ   ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

     D14.3        0.0463           ^^^^^0.463D-01
     D23.12    5573.86789251        ^^^^^0.557386789251D+04
     D9.6         1.2               *********


        5.4.1.6. СПЕЦИФИКАЦИЯ "G"



        СПЕЦИФИКАЦИЯ "G" УПРАВЛЯЕТ ПЕРЕДАЧЕЙ ДАННЫХ  ВЕЩЕСТВЕН-
НОГО,   С   ДВОЙНОЙ  ТОЧНОСТЬЮ ИЛИ КОМПЛЕКСНОГО ТИПА В ФОРМАТЕ,
ЯВЛЯЮЩИМСЯ   КОМБИНАЦИЕЙ   "F"   И  "E". ЭТА СПЕЦИФИКАЦИЯ ИМЕЕТ
СЛЕДУЮЩИЙ ВИД:

                GW.K

        ПРИ   ВВОДЕ   РАБОТА  СПЕЦИФИКАЦИИ "G" ИДЕНТИЧНА РАБОТЕ
СПЕЦИФИКАЦИИ "F".

        ПРИ ВЫВОДЕ СПЕЦИФИКАЦИИЯ "G" ВЫЗЫВАЕТ ПЕРЕДАЧУ ЗНАЧЕНИЯ
СООТВЕТСТВУЮЩЕГО   ЭЛЕМЕНТА   СПИСКА   ВЫВОДА   ВО ВНЕШНЕЕ ПОЛЕ
ДЛИНОЙ   В   "W"  СИМВОЛОВ, ВЫРАВНЕННОЕ ПО ПРАВОЙ ПОЗИЦИИ. ФОР-
МАТ, В КОТОРОМ   ВЫВОДИТСЯ   ЗНАЧЕНИЕ,  ЯВЛЯЕТСЯ ФУНКЦИЕЙ ВЕЛИ-
ЧИНЫ   ЭТОГО   ЗНАЧЕНИЯ.   ЗАВИСИМОСТЬ  ФАКТИЧЕСКОГО ФОРМАТА ОТ
ВЕЛИЧИНЫ   ПОРЯДКА   ЧИСЛА  ПРИ ВЫВОДЕ ПО СПЕЦИФИКАЦИИ "G" СЛЕ-
ДУЮЩАЯ:

    ВЕЛИЧИНА ДАННЫХ  РЕЗУЛЬТИРУЮЩЕЕ ПРЕОБРАЗОВАНИЕ

            М<0.1             FW.K
       0.1<=М<1.0             F(W-4).K,'^^^^'
      1.0<=М<10.0             F(W-4).(K-1),'^^^^'
          .                      .
          .                      .
          .                      .
    10**(К-2)<=М<10**(К-1)    F(W-4).1,'^^^^'
    10**(К-1)<=М<10**К        F(W-4).0,'^^^^'
            М>=10**К          EW.К

        СПЕЦИФИКАЦИЯ   '^^^^',  КОТОРАЯ ВНОСИТСЯ (В РЕЗУЛЬТАТЕ)
СПЕЦИФИКАЦИЕЙ   "G"   ВНУТРЬ   ПОЛЯ  ВЕЛИЧИНЫ, ОЗНАЧАЕТ, ЧТО ЗА
ПРЕДСТАВЛЕНИЕМ   ЧИСЛОВЫХ   ДАННЫХ ДОЛЖНЫ СЛЕДОВАТЬ ЧЕТЫРЕ ПРО-
БЕЛА.

        В   ДЛИНЕ   ПОЛЯ "W" ДОЛЖНО БЫТЬ УЧТЕНО МЕСТО ДЛЯ ЗНАКА
"МИНУС", ЕСЛИ ОН ЕСТЬ    (ЗНАК "ПЛЮС"  НЕ ВЫВОДИТСЯ), КАК МИНИ-
МУМ   ДЛЯ   ОДНОЙ   ЦИФРЫ  СЛЕВА ОТ ДЕСЯТИЧНОЙ ТОЧКИ, ДЛЯ САМОЙ
ДЕСЯТИЧНОЙ   ТОЧКИ,   ДЛЯ "K" ЦИФР СПРАВА ОТ ДЕСЯТИЧНОЙ ТОЧКИ И
(ДЛЯ ВЕЛИЧИН, ВЫХОДЯЩИХ   ЗА   ПРЕДЕЛЫ  РАБОЧЕГО ДИАПАЗОНА СПЕ-
ЦИФИКАЦИИ "G")   ДЛЯ ЧЕТЫРЕХСИМВОЛЬНОГО ПОКАЗАНИЯ СТЕПЕНИ.
ТАКИМ ОБРАЗОМ,   ВЕЛИЧИНА   "W"   ВСЕГДА ДОЛЖНА БЫТЬ БОЛЬШЕ ИЛИ
РАВНА ВЕЛИЧИНЕ (К+7).



                              - 93 -

                          00014-01.35.02


        ПРИМЕРЫ ПРЕОБРАЗОВАНИЯ ВЫВОДИМЫХ ДАННЫХ ПО СПЕЦИФИКА-
ЦИИ "G":

   ФОРМАТ  ВНУТРЕННЕЕ ЗНАЧЕНИЕ  ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

    G13.6           0.01234567     ^0.123457Е-01
    G13.6          -0.12345678     -0.123457^^^^
    G13.6           1.23456789     ^^1.23457^^^^
    G13.6          12.34567890     ^^12.3457^^^^
    G13.6         123.45678901     ^^123.457^^^^
    G13.6       -1234.56789012     ^^1234.57^^^^
    G13.6       12345.67890123     ^^12345.7^^^^
    G13.6      123456.78901234     ^^123457.^^^^
    G13.6    -1234567.89012345     -0123457Е+07

        НИЖЕ ПРИВЕДЕНЫ ПРИМЕРЫ ВЫВОДА ЭТИХ ЖЕ САМЫХ  ЗНАЧЕНИЙ
ПОД УПРАВЛЕНИЕМ ЭКВИВАЛЕНТНОЙ СПЕЦИФИКАЦИИ "F".

     ФОРМАТ   ВНУТРЕННЕЕ ЗНАЧЕНИЕ   ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

     F13.6           0.01234567       ^^^^^0.012346
     F13.6          -0.12345678       ^^^^-0.123457
     F13.6           1.23456789       ^^^^^1.234568
     F13.6          12.34567890       ^^^^12.345679
     F13.6         123.45678901       ^^^123.456789
     F13.6       -1234.56789012       ^-1234.567890
     F13.6       12345.67890123       ^12345.678901
     F13.6      123456.78901234       123456.789012
     F13.6    -1234567.89012345       *************



        5.4.1.7. СПЕЦИФИКАЦИЯ "L"


        СПЕЦИФИКАЦИЯ "L" ОПРЕДЕЛЯЕТ ПЕРЕДАЧУ ЛОГИЧЕСКИХ  ДАН-
НЫХ. ОНА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                LW

        СПЕЦИФИКАЦИЯ "L" ВЫЗЫВАЕТ СЧИТЫВАНИЕ ОПЕРАТОРОМ ВВОДА
"W"    СИМВОЛОВ  ИЗ ЗАПИСИ. ЕСЛИ ПЕРВЫМ, ОТЛИЧНЫМ ОТ ПРОБЕЛА,
СИМВОЛОМ В ЭТОМ   ПОЛЕ   БУДЕТ "T", СООТВЕТСТВУЮЩЕМУ ЭЛЕМЕНТУ
СПИСКА ВВОДА ПРИСВАИВАЕТСЯ   ЗНАЧЕНИЕ ".TRUE." (СООТВЕТСТВУЮ-
ЩИЙ ЭЛЕМЕНТ СПИСКА ДОЛЖЕН ИМЕТЬ   ЛОГИЧЕСКИЙ   ТИП).     ЕСЛИ
ПЕРВЫМ,   ОТЛИЧНЫМ ОТ ПРОБЕЛА, СИМВОЛОМ В ПОЛЕ ЯВЛЯЕТСЯ БУКВА
"F" ИЛИ,    ЕСЛИ ВСЕ ПОЛЕ СОСТОИТ  ИЗ  ПРОБЕЛОВ,  ВЫПОЛНЯЕТСЯ
ПРИСВАИВАНИЕ   ЗНАЧЕНИЯ   ".FALSE.".   ЛЮБОЕ ДРУГОЕ ЗНАЧЕНИЕ,
НАХОДЯЩЕЕСЯ ВО ВНЕШНЕМ ПОЛЕ, ВЫЗЫВАЕТ ОШИБКУ.

        СПЕЦИФИКАЦИЯ "L"  ВЫЗЫВАЕТ   ПЕРЕДАЧУ ВО ВНЕШНЕЕ ПОЛЕ
ОПЕРАТОРОМ ВЫВОДА ЛИБО БУКВЫ "T",   ЕСЛИ  ЗНАЧЕНИЕ СООТВЕТСТ-
СТВУЮЩЕГО   ЭЛЕМЕНТА   СПИСКА РАВНО ".TRUE.", ЛИБО БУКВЫ "F",
ЕСЛИ ЭТО ЗНАЧЕНИЕ РАВНО   ".FALSE".   ВНЕШНЕЕ ПОЛЕ СОСТОИТ ИЗ
"W" СИМВОЛЬНЫХ ПОЗИЦИЙ. БУКВЫ "T" И  "F"   ЗАПИСЫВАЮТСЯ     В
САМУЮ ПРАВУЮ ПОЗИЦИЮ ЭТОГО ПОЛЯ, А ОСТАЛЬНЫЕ ПОЗИЦИИ   ЗАПОЛ-
НЯЮТСЯ ПРОБЕЛАМИ. НАПРИМЕР:


                               - 94 -

                          00014-01.35.02



   ФОРМАТ  ВНУТРЕННЕЕ ЗНАЧЕНИЕ   ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

     L5           .TRUE.               ^^^^T
     L1           .FALSE.              F


        5.4.1.8. СПЕЦИФИКАЦИЯ "A"



        СПЕЦИФИКАЦИЯ "A" ОПРЕДЕЛЯЕТ ПЕРЕДАЧУ БУКВЕННО-ЦИФРОВЫХ
ДАННЫХ. ОНА ИМЕЕТ ВИД:

                AW

        ПРИ   ВВОДЕ  СПЕЦИФИКАЦИЯ "A" ВЫЗЫВАЕТ СЧИТЫВАНИЕ  "W"
СИМВОЛОВ  ИЗ  ЗАПИСИ  И  ЗАПОМИНАНИЕ ИХ В ФОРМАТЕ КОДА "КОИ-7"
В  СООТВЕТСТВУЮЩЕМ   ЭЛЕМЕНТЕ  СПИСКА (СООТВЕТСТВУЮЩИЙ ЭЛЕМЕНТ
СПИСКА   ВВОДА   МОЖЕТ   ИМЕТЬ  ЛЮБОЙ ТИП). МАКСИМАЛЬНОЕ ЧИСЛО
СИМВОЛОВ,   КОТОРОЕ   МОЖЕТ   БЫТЬ  ЗАПОМНЕНО В ПЕРЕМЕННОЙ ИЛИ
ЭЛЕМЕНТЕ  МАССИВА,   ЗАВИСИТ  ОТ ТИПА ЭТОГО ЭЛЕМЕНТА ИЛИ ПЕРЕ-
МЕННОЙ.

   ЭЛЕМЕНТ СПИСКА             МАКСИМАЛЬНОЕ
    ВВОДА/ВЫВОДА            ЧИСЛО  СИМВОЛОВ

     LOGICAL*1                     1
     LOGICAL*4                     4
     INTEGER*2                     2
     INTEGER*4                     4
     REAL                          4
     DOUBLE PRECISION              8
     COMPLEX                       8


        ЕСЛИ   "W"   БОЛЬШЕ, ЧЕМ МАКСИМАЛЬНОЕ ЧИСЛО  СИМВОЛОВ,
КОТОРОЕ   МОЖЕТ   БЫТЬ   ЗАПОМНЕНО  В СООТВЕТСТВУЮЩЕМ ЭЛЕМЕНТЕ
СПИСКА,   ТО ЭТОМУ ОБ'ЕКТУ  БУДУТ ПРИСВОЕНЫ ТОЛЬКО ОДИН,  ДВА,
ЧЕТЫРЕ   ИЛИ   ВОСЕМЬ  САМЫХ ПРАВЫХ СИМВОЛОВ (В ЗАВИСИМОСТИ ОТ
ТИПА   ДАННЫХ  ЭТОЙ ПЕРЕМЕННОЙ ИЛИ ЭЛЕМЕНТА МАССИВА); ИЗБЫТОЧ-
НЫЕ   ЛЕВЫЕ   СИМВОЛЫ  ПРИ ЭТОМ ТЕРЯЮТСЯ. ЕСЛИ "W" МЕНЬШЕ, ЧЕМ
ЧИСЛО   СИМВОЛОВ,   КОТОРЫЕ   МОГУТ   БЫТЬ  ЗАПОМНЕНЫ В ДАННОМ
ОБ'ЕКТЕ,   ТО   ЭЛЕМЕНТУ СПИСКА БУДУТ ПРИСВОЕНЫ СЛЕВА "W" СИМ-
ВОЛОВ,   А   В   ОСТАВШИЕСЯ   НЕЗАПОЛНЕННЫМИ ПРАВЫЕ СИМВОЛЬНЫЕ
ПОЗИЦИИ ЗАНЕСУТСЯ ПРОБЕЛЫ.

        ПРИМЕРЫ   ПРЕОБРАЗОВАНИЯ  БУКВЕННО-ЦИФРОВЫХ ДАННЫХ ПРИ
ВВОДЕ ПО СПЕЦИФИКАЦИИ "A":

   ФОРМАТ   ВНЕШШНЕЕ ПОЛЕ       ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ

     А6       PAGE^*             *         (LOGICAL*1)
     А6       PAGE^*             ^*        (INTEGER*2)
     А6       PAGE^*             GE^*      (REAL)
     А6       PAGE^*             PAGE^*^^  (DOUBLE PRECISION)

ПРИ   ВЫВОДЕ    СПЕЦИФИКАЦИЯ  "A" ВЫЗЫВАЕТ ПЕРЕДАЧУ  СОДЕРЖИ-
МОГО СООТВЕТСТВУЮЩЕГО ЭЛЕМЕНТА ВЫВОДА ВО ВНЕШНЕЕ ПОЛЕ,   СОС-
ТОЯЩЕЕ ИЗ "W" СИМВОЛЬНЫХ ПОЗИЦИЙ. ЕСЛИ ЭЛЕМЕНТ СПИСКА   ВЫВО-


                              - 95 -

                          00014-01.35.02



ДА   СОДЕРЖИТ  МЕНЕЕ  "W" СИМВОЛОВ, ДАННЫЕ ЗАПИСЫВАЮТСЯ ВЫРАВ-
НЕННЫМИ  ПО  ПРАВОЙ  ПОЗИЦИИ,  А  В  ОСТАВШИЕСЯ  ЛЕВЫЕ ПОЗИЦИИ
ЗАНОСЯТСЯ  ПРОБЕЛЫ.   ЕСЛИ   ЭЛЕМЕНТ СПИСКА СОДЕРЖИТ БОЛЕЕ "W"
СИМВОЛОВ, ТО БУДУТ ПЕРЕДАНЫ ТОЛЬКО СТАРШИЕ "W" СИМВОЛОВ.

        ПРИМЕРЫ   ПРЕОБРАЗОВАНИЯ  БУКВЕННО-ЦИФРОВЫХ ДАННЫХ ПРИ
ВЫВОДЕ ПО СПЕЦИФИКАЦИИ "A":

    ФОРМАТ      ВНУТРЕННЕЕ ЗНАЧЕНИЕ    ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

      A5             BETA                ^BETA
      A5             VOLTS^^^^           VOLTS
      A5             ALPHAES^            ALPHA


        5.4.1.9. СПЕЦИФИКАЦИЯ "H"


        СПЕЦИФИКАЦИЯ "H" ИМЕЕТ ВИД ТЕКСТОВОЙ КОНСТАНТЫ:

                NHC1C3...CN

ГДЕ

 N
      - ОПРЕДЕЛЯЕТ ЧИСЛО СИМВОЛОВ, КОТОРЫЕ ДОЛЖНЫ БЫТЬ
        ПЕРЕДАНЫ;

 C
      - СИМВОЛ КОДА "КОИ-7".

        СПЕЦИФИКАЦИЯ "H" ВЫЗЫВАЕТ СЧИТЫВАНИЕ ОПЕРАТОРОМ  ВВОДА
"N"   СИМВОЛОВ   ИЗ  ЗАПИСИ И ПОМЕЩЕНИЕ ИХ В СПЕЦИФИКАЦИЮ "H",
ПРИЧЕМ   ПЕРВЫЙ   СИМВОЛ  ПОМЕЩАЕТСЯ НЕПОСРЕДСТВЕННО ЗА БУКВОЙ
"H".    ЛЮБЫЕ   СИМВОЛЫ,  НАХОДЯТСЯ ДО ВЫПОЛНЕНИЯ ВВОДА В СПЕ-
ЦИФИКАЦИИ, МОГУТ БЫТЬ ЗАМЕНЕНЫ ВВОДИМЫМИ СИМВОЛАМИ.

        ПРИ ВЫПОЛНЕНИИ ОПЕРАТОРА ВЫВОДА СПЕЦИФИКАЦИЯ "H" ВЫЗЫ-
ВАЕТ   ПЕРЕДАЧУ   "N"   СИМВОЛОВ, НЕПОСРЕДСТВЕННО СЛЕДУЮЩИХ ЗА
БУКВОЙ "H" В СПЕЦИФИКАЦИИ, ВО ВНЕШНЮЮ ЗАИСЬ.

        ПРИМЕР   ИСПОЛЬЗОВАНИЯ   СПЕЦИФИКАЦИИ  "H" ДЛЯ ВВОДА И
ВЫВОДА:

        TYPE 50
     50 FORMAT (31H^ВЫВОД^ХАРАКТЕРИСТИК^ПЕРЕМЕННЫХ)
        ACCEPT 100
    100 FORMAT (12^ВВОД^ДАННЫХ)

ОПЕРАТОР   "TYPE"  ПЕРЕДАЕТ СИМВОЛЫ ИЗ СПЕЦИФИКАЦИИ "H" ФОРМА-
ТА 50 НА ТЕРМИНАЛ   ПОЛЬЗОВАТЕЛЯ.  ОПЕРАТОР "ACCEPT" ПРИНИМАЕТ
ОТВЕТ  С   КЛАВИАТУРЫ,   РАСПОЛАГАЕТ ВВОДИМЫЕ ДАНЫЕ В СПЕЦИФИ-
КАЦИИ   "H" ФОРМАТА 100.  СЛОВА "ВВОД ДАННЫХ" ЗАМЕНЯЮТСЯ НОВЫ-
МИ   СИМВОЛАМИ;   ЕСЛИ  ПОЛЬЗОВАТЕЛЬ ВВЕДЕТ МЕНЕЕ 12 СИМВОЛОВ,
ОСТАВШАЯСЯ  ПРАВАЯ   ЧАСТЬ  СПЕЦИФИКАЦИИ "H" ЗАПОЛНИТСЯ ПРОБЕ-
ЛАМИ.




                              - 96 -

                          00014-01.35.02


        ВМЕСТО СПЕЦИФИКАЦИИ "H" МОЖЕТ БЫТЬ ИСПОЛЬЗОВАН БУКВЕН-
НО-ЦИФРОВОЙ   ЛИТЕРАЛ.   ЕГО ФУНКЦИИ ИДЕНТИЧНЫ ФУНКЦИЯМ СПЕЦИ-
ФИКАЦИИ "H".

        СИМВОЛ   "АПОСТРОФ" ВНУТРИ БУКВЕННО-ЦИФРОВОГО ЛИТЕРАЛА
ЗАПИСЫВАЕТСЯ КАК ДВА АПОСТРОФА. НАПРИМЕР:

        20 FORMAT('SYSTEM''S^DATE^IS: ',12,'/',12,'/',12)

        ПАРА  АПОСТРОФОВ   ВНУТРИ  БУКВЕННО-ЦИФРОВОГО ЛИТЕРАЛА
ВОСПРИНИМАЕТСЯ КАК ОДИН СИМВОЛ.


        5.4.1.10. СПЕЦИФИКАЦИЯ "H"



        СПЕЦИФИКАЦИЯ "H" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                NX

        ПО ЭТОЙ СПЕЦИФИКАЦИИ ОПЕРАТОР WRITE ЗАСЫЛАЕТ "N"  ПРО-
БЕЛОВ ВО ВНЕШНЮЮ ЗАПИСЬ. НАПРИМЕР:

        WRITE(6,100) NPAGE
    100 FORMAT(16H1СТРАНИЦА^НОМЕР^,12,16X,6HГРАФИК)

ОПЕРАТОР "WRITE" НАПЕЧАТАЕТ ЗАПИСЬ СЛЕДУЮЩЕГО ВИДА:

            СТРАНИЦА НОМЕР NN         ГРАФИК

ГДЕ

 NN

      - ТЕКУЩЕЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ "NPAGE".

        ЦИФРА "1" ИЗ ПЕРВОЙ СПЕЦИФИКАЦИИ "H" НЕ ПЕЧАТАЕТСЯ,  А
ИСПОЛЬЗУЕТСЯ   ДЛЯ  ПОДАЧИ БУМАГИ НА УСТРОЙСТВЕ ПЕЧАТИ К НАЧА-
ЛУ НОВОГО ЛИСТА.   ПРИ   ВВОДЕ ПО ЭТОЙ СПЕЦИФИКАЦИИ БУДЕТ ПРО-
ПУЩЕНО  "N"   ЗНАКОВ ВВОДИМОЙ ЗАПИСИ, НАЧИНАЯ ОТ ТЕКУЩЕЙ ПОЗИ-
ЦИИ.


        5.4.1.11. СПЕЦИФИКАЦИЯ "T"



        СПЕЦИФИКАЦИЯ   "T"  ЯВЛЯЕТСЯ УКАЗАТЕЛЕМ ТАБУЛЯЦИИ. ОНА
ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                TN

ГДЕ

 N
      - УКАЗЫВАЕТ ПОЗИЦИЮ СИМВОЛА В ЗАПИСИ.




                              - 97 -

                          00014-01.35.02


        ЗНАЧЕНИЕ "N" ДОЛЖНО БЫТЬ БОЛЬШЕ ИЛИ РАВНО ЕДИНИЦЕ,  НО
НЕ БОЛЬШЕ ЧИСЛА СИМВОЛОВ В ЗАПИСИ.

        ПРИ  ВВОДЕ  СПЕЦИФИКАЦИЯ "T" ВЫЗЫВАЕТ УСТАНОВКУ ЗАПИСИ
НА   ПОЗИЦИЮ   ЕЕ СИМВОЛА С НОМЕРОМ "N". НАПРИМЕР, ЕСЛИ ОПЕРА-
ТОР "READ" ВВОДИТ ЗАПИСЬ, СОСТОЯЩУЮ ИЗ:

                ABC^^^XYZ

ПОД УПРАВЛЕНИЕМ СЛЕДУЮЩЕГО ОПЕРАТОРА:

        10 FORMAT (Т7,А3,Т1,А3)

ТО   ОПЕРАТОР  "READ"  ДОЛЖЕН СНАЧАЛА ВВЕСТИ СИМВОЛЫ  "XYZ", А
ЗАТЕМ СИМВОЛЫ "ABC".

        ПРИ  ВЫВОДЕ  НА  ВНЕШНЕЕ  УСТРОЙСТВО, ОТЛИЧНОЕ ОТ УСТ-
РОЙСТВА  ПЕЧАТИ  И  ТЕРМИНАЛА, СПЕЦИФИКАЦИЯ "T" УСТАНАВЛИВАЕТ,
ЧТО  СЛЕДУЮЩАЯ  ПЕРЕДАЧА  ДАННЫХ  ДОЛЖНА НАЧАТЬСЯ С СИМВОЛЬНОЙ
ПОЗИЦИИ   "N"  ВНЕШНЕЙ ЗАПИСИ. ПРИ ВЫВОДЕ НА УСТРОЙСТВО ПЕЧАТИ
ПЕРЕДАЧА  ДАННЫХ  НАЧИНАЕТСЯ  С СИМВОЛЬНОЙ ПОЗИЦИИ "N-1". ПЕР-
ВАЯ  ПОЗИЦИЯ  ВЫДАВАЕМОЙ  НА ПЕЧАТЬ ЗАПИСИ ЗАРЕЗЕРВИРОВАНА ДЛЯ
СИМВОЛА УПРАВЛЕНИЯ КАРЕТКОЙ, КОТОРЫЙ НИКОГДА НЕ ПЕЧАТАЕТСЯ.
НАПРИМЕР, ОПЕРАТОРЫ:

        PRINT 40
     40 FORMAT (T31,'COLUMN^2',Т11,'COLUMN^1')

ВЫЗОВУТ ПЕЧАТЬ СЛЕДУЮЩЕЙ СТРОКИ:

        COLUMN 1           COLUMN 2

ПЕРВОЕ  СЛОВО  ПЕЧАТАЕТСЯ  С 10-ОЙ ПОЗИЦИИ, А ВТОРОЕ - С ПОЗИ-
ЦИИ 30.


        5.4.1.12. СПЕЦИФИКАЦИЯ "Q"


        СПЕЦИФИКАЦИЯ "Q" ИСПОЛЬЗУЕТСЯ ДЛЯ ПОЛУЧЕНИЯ ЧИСЛА СИМ-
ВОЛОВ  ВВОДИМОЙ  ЗАПИСИ,  КОТОРЫЕ ПОКА ЕЩЕ ОСТАЛИСЬ НЕПЕРЕДАН-
НЫМИ  ПРИ  ВЫПОЛНЕНИИ  ОПЕРАТОРА "READ". ЭЛЕМЕНТ СПИСКА ВВОДА,
СООТВЕТСТВУЮЩИЙ СПЕЦИФИКАЦИИ "Q", ДОЛЖЕН ИМЕТЬ ЦЕЛЫЙ ТИП.

НАПРИМЕР, ОПЕРАТОРЫ

        READ (4,10) XAPL,KP,NRLC,(INCL(I),I=1,NRLC)
     10 FORMAT (E15.6,I4,Q,80A1)

СЧИТЫВАЮТ  ДВА  ПОЛЯ  В ПЕРЕМЕННЫЕ "XAPL" И "KP". ЧИСЛО СИМВО-
ЛОВ,  ОСТАВШИХСЯ  В  ЗАПИСИ,  ЗАПОМИНАЕТСЯ  В  "NRLC"  И ТОЧНО
ТАКОЕ  ЖЕ  КОЛИЧЕСТВО СИМВОЛОВ БУДЕТ СЧИТАНО В МАССИВ "INCL".
ПЕРЕМЕЩАЯ  СПЕЦИФИКАЦИЮ "Q" ПЕРВОЙ В СПИСКЕ СПЕЦИФИКАЦИЙ, МОЖ-
НО ОПРЕДЕЛИТЬ ФАКТИЧЕСКУЮ ДЛИНУ ВВОДИМОЙ ЗАПИСИ.

        ЕСЛИ  СПЕЦИФИКАЦИЯ "Q" ИСПОЛЬЗУЕТСЯ СОВМЕСТНО С ОПЕРА-
ТОРОМ  ВЫВОДА,  ЕЕ ЕДИНСТВЕННЫМ  ДЕЙСТВИЕМ БУДЕТ ПРОПУСК СООТ-




                              - 98 -

                          00014-01.35.02



ВЕТСТВУЮЩЕГО ЭЛЕМЕНТА ВЫВОДА.



        5.4.1.13. СПЕЦИФИКАЦИЯ "¤"



        СИМВОЛ  "¤"  (ЗНАК ДЕНЕЖНОЙ ЕДИНИЦЫ),  ПОЯВЛЯЮЩИЙСЯ  В
СПИСКЕ   СПЕЦИФИКАЦИЙ,   МОДИФИЦИРУЕТ   УПРАВЛЕНИЕ   КАРЕТКОЙ,
ОПРЕДЕЛЯЕМОЕ   ПЕРВЫМ   СИМВОЛОМ    ЗАПИСИ. СПЕЦИФИКАЦИЯ "¤" В
ОСНОВНОМ   ПРЕДНАЗНАЧЕНА   ДЛЯ ВВОДА/ВЫВОДА В РЕЖИМЕ ДИАЛОГА И
ВЫЗЫВАЕТ   ОСТАНОВ   КУРСОРА   ТЕРМИНАЛА НА ПЕЧАТНОЙ ПОЗИЦИИ В
КОНЦЕ   ВЫВЕДЕННОГО   ТЕКСТА   (А НЕ ВОЗВРАТ К ЛЕВОМУ КРАЮ).
ОТВЕТ   ОПЕРАТОРА  БУДЕТ  ПЕЧАТАТЬСЯ   НА ТОЙ ЖЕ СТРОКЕ, ЧТО И
ВЫВЕДЕННОЕ СООБЩЕНИЕ.



        5.4.1.14. СПЕЦИФИКАЦИЯ ":"



        СИМВОЛ ":" (ДВОЕТОЧИЕ), ПОЯВЛЯЮЩИЙСЯ В СПИСКЕ СПЕЦИФИ-
КАЦИЙ,   ВЫЗЫВАЕТ   ЗАВЕРШЕНИЕ   УПРАВЛЕНИЯ   ФОРМАТОМ, ЕСЛИ В
СПИСКЕ   ВЫВОДА   НЕ ОСТАЛОСЬ ЭЛЕМЕНТОВ. ОН ИГНОРИРУЕТСЯ, ЕСЛИ
В СПИСКЕ ЕЩЕ ИМЕЮТСЯ ЭЛЕМЕНТЫ. НАПРИМЕР, ОПЕРАТОРЫ:


        PRINT 4, 7
        PRINT 2, 5
      4 FORMAT('^I=',12,'^J=',12)
      2 FORMAT('^K=',12:,'^L=',12)

ПЕЧАТАЮТ СЛЕДУЮЩИЕ ДВЕ СТРОКИ:

        ^I=^7^J=
        ^K=^5


        5.4.2. РЕДАКТИРОВАНИЕ КОМПЛЕКСНЫХ ДАННЫХ


        ТАК КАК КОМПЛЕКСНАЯ ВЕЛИЧИНА ПРЕДСТАВЛЯЕТ СОБОЙ  ПАРУ
ВЕЩЕСТВЕННЫХ   ВЕЛИЧИН,   ВВОД  И  ВЫВОД КОМПЛЕКСНОГО ОБ'ЕКТА
УПРАВЛЯЕТСЯ  ДВУМЯ   СПЕЦИФИКАЦИЯМИ   ВЕЩЕСТВЕННОГО  ФОРМАТА,
ИСПОЛЬЗУЯ   ЛЮБУЮ  КОМБИНАЦИЮ ИЗ СПЕЦИФИКАЦИЙ "FW.K", "EW.K",
"DW.K" ИЛИ "GW.K".

        ПРИ  ВВОДЕ  ДВА  ПОСЛЕДОВАТЕЛЬНЫХ  ПОЛЯ СЧИТЫВАЮТСЯ И
ПРИСВАИВАЮТСЯ   КОМПЛЕКСНОМУ ЭЛЕМЕНТУ СПИСКА ВВОДА  КАК СООТ-
ВЕТСТВЕННО ЕГО ДЕЙСТВИТЕЛЬНАЯ И МНИМАЯ ЧАСТИ. НАПРИМЕР:


   ФОРМАТ       ВНЕШНИЕ ПОЛЯ      ВНУТРЕННЕЕ  ПРЕДСТАВЛЕНИЕ

    F8.5,F8.5   23745123456735.76    237.45123,46735.76
    E9.1,F9.3   563.472Е7271348690   563.472Е7,27134.869
                               - 99 -

                          00014-01.35.02



        ПРИ ВЫВОДЕ СОСТАВНЫЕ ЧАСТИ КОМПЛЕКСНОЙ ВЕЛИЧИНЫ  ПЕРЕ-
ДАЮТСЯ  ПОД   УПРАВЛЕНИЕМ   ПОВТОРЕННЫХ  ИЛИ  ПОСЛЕДОВАТЕЛЬНЫХ
СПЕЦИФИКАЦИЙ.   МЕЖДУ   ЭТИМИ ЧАСТЯМИ   НЕ ВКЛЮЧАЮТСЯ  НИКАКИЕ
РАЗДЕЛИТЕЛИ, ЕСЛИ   В   СПИСКЕ   СПЕЦИФИКАЦИЙ  НЕ ИСПОЛЬЗУЕТСЯ
ДОПОЛНИТЕЛЬНАЯ СПЕЦИФИКАЦИЯ. НАПРИМЕР:

     ФОРМАТ      ВНУТРЕННЕЕ ЗНАЧЕНИЕ   ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

        2ф8.5     3.2567189, 4.352632    ч3.25672ч4.35263
  Е9.2,'ч,ч',Е5.3 56789.323 32.114   ч0.57е+05ч,ч*****



        5.4.3. МАСШТАБНЫЙ КОЭФФИЦИЕНТ


        С ПОМОЩЬЮ МАСШТАБНОГО КОЭФФИЦИЕНТА ПРИ ВЫПОЛНЕНИИ ВВО-
ДА  ИЛИ  ВЫВОДА  МОЖЕТ БЫТЬ ИЗМЕНЕНО ПОЛОЖЕНИЕ ДЕСЯТИЧНОЙ ТОЧ-
КИ   В  ВЕЩЕСТВЕННЫХ ВЕЛИЧИНАХ С ДВОЙНОЙ ТОЧНОСТЬЮ И В СОСТАВ-
НЫХ   ЧАСТЯХ   КОМПЛЕКСНЫХ   ВЕЛИЧИН.   МАСШАБНЫЙ  КОЭФФИЦИЕНТ
ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

        нр
ГДЕ

 н
      - ЦЕЛАЯ   КОНСТАНТА   СО ЗНАКОМ  ИЛИ БЕЗ, ЛЕЖАЩАЯ В ДИА-
        ПАЗОНЕ   ОТ -127 ДО +127,  ОПРЕДЕЛЯЮЩАЯ  ЧИСЛО   ПОЗИ-
        ЦИЙ,   НА  КОТОРОЕ   ДОЛЖНА  БЫТЬ  СДВИНУТА ДЕСЯТИЧНАЯ
        ТОЧКА ВПРАВО ИЛИ ВЛЕВО.

        МАСШТАБНЫЙ КОЭФФИЦИЕНТ МОЖЕТ ВСТРЕЧАТЬСЯ В ЛЮБОМ МЕСТЕ
СПИСКА СПЕЦИФИКАЦИЙ,   НО  ОН ДОЛЖЕН ПРЕДШЕСТВОВАТЬ СПЕЦИФИКА-
ЦИИ, К КОТОРОЙ ОН ОТНОСИТСЯ. ДОПУСКАЮТСЯ СЛЕДУЮЩИЕ ЗАПИСИ:

        нпфв.к      нпев.К     нпдв.к     нпгв.к

        ДАННЫЕ,  ВВЕДЕННЫЕ ПОД УПРАВЛЕНИЕМ ОДНОЙ ИЗ ВЫШЕПРИВЕ-
ДЕННЫХ СПЕЦИФИКАЦИЙ,   ПЕРЕД  ИХ ПРИСВАИВАНИЕМ СООТВЕТСТВУЮЩЕ-
МУ   ЭЛЕМЕНТУ СПИСКА ВВОДА/ВЫВОДА УМНОЖАЮТСЯ НА 10**(-н).
НАПРИМЕР,   МАСШТАБНЫЙ   КОЭФФИЦИЕНТ   "2Р" ВЫЗЫВАЕТ УМНОЖЕНИЕ
ВВЕДЕННОЙ  ВЕЛИЧИНЫ НА 0.01,   ПЕРЕМЕЩАЯ   ДЕСЯТИЧНУЮ ТОЧКУ НА
ДВЕ ПОЗИЦИИ ВЛЕВО;   А МАСШТАБНЫЙ   КОЭФФИЦИЕНТ "-2Р" ВЫЗЫВАЕТ
УМНОЖЕНИЕ   ВВЕДЕННОЙ   ВЕЛИЧИНЫ  НА 100, ПЕРЕМЕЩАЯ ДЕСЯТИЧНУЮ
ТОЧКУ НА ДВЕ ПОЗИЦИИ ВПРАВО.     ЕСЛИ ЖЕ ВНЕШНЕЕ ПОЛЕ СОДЕРЖИТ
ПОКАЗАТЕЛЬ   СТЕПЕНИ   В ЯВНОМ   ВИДЕ,  МАСШТАБНЫЙ КОЭФФИЦИЕНТ
ВЫЧИТАЕТСЯ. НАПРИМЕР:

    ФОРМАТ     ВНЕШНЕЕ ПОЛЕ     ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ

     3РЕ10.5     ччч47.518ч            .047518
     3РЕ10.5     чч47.518Е5        4751.8
    -3РЕ10.5     чччч47.518       47518.0

        ВЛИЯНИЕ МАСШТАБНОГО КОЭФФИЦИЕНТА ПРИ ВЫВОДЕ ЗАВИСИТ ОТ
ТИПА   СПЕЦИФИКАЦИИ,   КОТОРОЙ  ОН СООТВЕТСТВУЕТ. ДЛЯ СПЕЦИФИ-
КАЦИИ "ф" ЗНАЧЕНИЕ ЭЛЕМЕНТА СПИСКА  ВВОДА/ВЫВОДА ПЕРЕД ПЕРЕДА-





                              - 100 -

                          00014-01.35.02


ЧЕЙ  ВО   ВНЕШНЮЮ   ЗАПИСЬ  УМНОЖАЕТСЯ НА 10**н. ТАКИМ ОБРАЗОМ
ПОЛОЖИТЕЛЬНЫЙ   МАСШТАБНЫЙ   КОЭФФИЦИЕНТ ПЕРЕМЕЩАЕТ ДЕСЯТИЧНУЮ
ТОЧКУ ВПРАВО, А ОТРИЦАТЕЛЬНЫЙ  МАСШТАБНЫЙ   КОЭФФИЦИЕНТ - ВЛЕ-
ВО.

        ВЕЛИЧИНЫ, ВЫВОДИМЫЕ ПОД УПРАВЛЕНИЕМ СПЕЦИФИКАЦИИ "е" И
"д"  С   МАСШТАБНЫМ КОЭФФИЦИЕНТОМ, ПРЕОБРАЗУЮТСЯ УМНОЖЕНИЕМ НА
10**н   ВЕЩЕСТВЕННОЙ   КОНСТАНТЫ,   ВХОДЯЩЕЙ   В СОСТАВ КАЖДОЙ
ВЕЛИЧИНЫ, И ВЫЧИТАНИЕМ "н" ИЗ НЕЕ ПОРЯДКА.

        ТАКИМ ОБРАЗОМ    ПОЛОЖИТЕЛЬНЫЙ  МАСШТАБНЫЙ КОЭФФИЦИЕНТ
ПЕРЕМЕЩАЕТ ДЕСЯТИЧНУЮ ТОЧКУ ВПРАВО   И   УМЕНЬШАЕТ  ПОРЯДОК, А
ОТРИЦАТЕЛЬНЫЙ   МАСШТАБНЫЙ   КОЭФФИЦИЕНТ ПЕРЕМЕЩАЕТ ДЕСЯТИЧНУЮ
ТОЧКУ ВЛЕВО И УВЕЛИЧИВАЕТ ПОРЯДОК.

        ВОЗДЕЙСТВИЕ МАСШТАБНОГО КОЭФФИЦИЕНТА ПРИОСТАНАВЛИВАЕТ-
СЯ ПРИ ВВОДЕ ПОД  УПРАВЛЕНИЕМ   СПЕЦИФИКАЦИИ "г", КОГДА ЗНАЧЕ-
НИЯ   ВЫВОДИМЫХ ДАННЫХ  ЛЕЖАТ ВНУТРИ РАБОЧЕГО ДИАПАЗОНА СПЕЦИ-
ФИКАЦИИ "г",   ТАК КАК   ЭТА СПЕЦИФИКАЦИЯ САМА ВЫПОЛНЯЕТ МАСШ-
ТАБИРОВАНИЕ. ЕСЛИ ЖЕ   ЗНАЧЕНИЕ   ВЕЛИЧИНЫ  ЛЕЖИТ ЗА ПРЕДЕЛАМИ
РАБОЧЕГО ДИАПАЗОНА СПЕЦИФИКАЦИИ "г",   ТО  ВЛИЯНИЕ МАСШТАБНОГО
КОЭФФИЦИЕНТА   БУДЕТ   ТОЧНО  ТАКИМ ЖЕ, КАК И ПРИ СПЕЦИФИКАЦИИ
"е"    (ТАК КАК   В  ЭТОМ СЛУЧАЕ САМА СПЕЦИФИКАЦИЯ "г" ЭКВИВА-
ЛЕНТНА СПЕЦИФИКАЦИИ "е").

        НЕОБХОДИМО ОТМЕТИТЬ, ЧТО ПРИ ВВОДЕ И ВЫВОДЕ ПОД УПРАВ-
ЛЕНИЕМ СПЕЦИФИКАЦИИ   "ф"    МАСШТАБНЫЙ КОЭФФИЦИЕНТ ФАКТИЧЕСКИ
ИЗМЕНЯЕТ ВЕЛИЧИНУ ДАННЫХ,   А  ПРИ ВЫВОДЕ ПОД УПРАВЛЕНИЕМ СПЕ-
ЦИФИКАЦИИ   "е", "д" И "г"   МАСШТАБНЫЙ КОЭФФИЦИЕНТ ВСЕГО ЛИШЬ
ИЗМЕНЯЕТ ФОРМУ,   В КОТОРОЙ   ПЕРЕДАЮТСЯ   ДАННЫЕ.   ПРИ ВВОДЕ
ПОЛОЖИТЕЛЬНЫЙ   МАСШТАБНЫЙ   КОЭФФИЦИЕНТ ПЕРЕМЕЩАЕТ ДЕСЯТИЧНУЮ
ТОЧКУ ВЛЕВО,   А  ОТРИЦАТЕЛЬНЫЙ МАСШТАБНЫЙ КОЭФФИЦИЕНТ - ВПРА-
ВО, В ТО ВРЕМЯ КАК ПРИ ВЫВОДЕ - НАОБОРОТ.

        ЕСЛИ  В СПЕЦИФИКАЦИИ НЕ УКАЗАН МАСШТАБНЫЙ КОЭФФИЦИЕНТ,
ТО ОН СЧИТАЕТСЯ   РАВНЫМ   НУЛЮ.   ЕСЛИ МАСШТАБНЫЙ КОЭФФИЦИЕНТ
БЫЛ   ОДИН   РАЗ ОПРЕДЕЛЕН, ТО ОН ВЛИЯЕТ НА ПОСЛЕДУЮЩИЕ СПЕЦИ-
ФИКАЦИИ   ВЕЩЕСТВЕННЫХ   И С ДВОЙНОЙ ТОЧНОСТЬЮ ПРЕОБРАЗОВАНИЙ,
КОТОРЫЕ   НАХОДЯТСЯ В ЭТОМ ЖЕ СПИСКЕ СПЕЦИФИКАЦИЙ ДО  ТЕХ ПОР,
ПОКА   НЕ  ВСТРЕТИТСЯ   ДРУГОЙ МАСШТАБНЫЙ КОЭФФИЦИЕНТ, КОТОРЫЙ
ИЗМЕНЯЕТ   УПРАВЛЕНИЕ.   ПОВТОРНАЯ   ФОРМАТИЗАЦИЯ НЕ ВЛИЯЕТ НА
МАСШТАБНЫЙ   КОЭФФИЦИЕНТ.       НУЛЕВОЙ КОЭФФИЦИЕНТ МОЖЕТ БЫТЬ
ВОССТАНОВЛЕН ТОЛЬКО ЯВНОЙ СПЕЦИФИКАЦИЕЙ 0Р.

      ПРИМЕРЫ ВЛИЯНИЯ МАСШТАБНОГО КОЭФФИЦИЕНТА ПР ВВОДЕ:

   ФОРМАТ       ВНУТРЕННЕЕ ЗНАЧЕНИЕ     ВНЕШНЕЕ ПРЕДСТАВЛЕНИЕ

    1РЕ12.3        -480.148               чч-4.801Е+02
    1РЕ12.2        -480.148               ччч-4.80Е+02
   -1РЕ12.2        -480.148               ччч-0.05Е+04




                              - 101 -

                          00014-01.35.02



        5.4.4. ГРУППИРОВАНИЕ И ПОВТОРЯЕМЫЕ ГРУППЫ


        РЯД ОДИНАКОВЫХ, РАСПОЛОЖЕННЫХ ДРУГ ЗА ДРУГОМ  СПЕЦИФИ-
КАЦИЙ   В   ФОРМАТЕ МОЖНО ЗАМЕНИТЬ ОДНОЙ СПЕЦИФИКАЦИЕЙ С ПРЕД-
ШЕСТВУЮЩИМ  ЕЙ  КОЭФФИЦИЕНТОМ    ПОВТОРЕНИЯ. ТАКОЕ ОБ'ЕДИНЕНИЕ
МОЖНО ПРОИЗВОДИТЬ   ДЛЯ  СПЕЦИФИКАЦИЙ "и", "о", "ф", "е", "г",
"д", "л" И "а".   КОЭФФИЦИЕНТОМ   ПОВТОРЕНИЯ МОЖЕТ БЫТЬ ТОЛЬКО
ЦЕЛАЯ КОНСТАНТА БЕЗ ЗНАКА. НАПРИМЕР, ОПЕРАТОРЫ:

        30 формат (е10.3,е10.3,е10.3,14,14,14,14)

И

        30 формат (3е10.3,414)

ИДЕНТИЧНЫ.

        АНАЛОГИЧНО ДОПУСКАЕТСЯ ПОВТОРЕНИЕ ГРУППЫ СПЕЦИФИКАЦИЙ,
ЕСЛИ   ЕЕ  ЗАКЛЮЧИТЬ В СКОБКИ И ПЕРЕД ОТКРЫВАЮЩЕЙ СКОБКОЙ ПОС-
ТАВИТЬ   ЦЕЛУЮ   КОНСТАНТУ,   ОЗНАЧАЮЩУЮ КОЛИЧЕСТВО ПОВТОРЕНИЙ
ЭТОЙ ГРУППЫ. НАПРИМЕР, ОПЕРАТОР

        77 формат (215,3(ф4.3,е12.5))

ЭКВИВАЛЕНТНЫ ОПЕРАТОРУ

        77 формат (15,15,ф4.3,е12.5,ф4.3,е12.5,ф4.3,е12.5)

        СПЕЦИФИКАЦИИ "х" И "т", КОТОРЫЕ  ОБЫЧНЫМ    ОБРАЗОМ НЕ
МОГУТ БЫТЬ ПОВТОРЕНЫ, МОЖНО ЗАКЛЮЧИТЬ В СКОБКИ  И   РАССМАТРИ-
ВАТЬ   КАК  ПОВТОРЯЕМУЮ  ГРУППУ.  ТАКИМ ОБРАЗОМ ОНИ МОГУТ БЫТЬ
ПОВТОРЕНЫ НУЖНОЕ ЧИСЛО РАЗ.

        ЕСЛИ  КОЭФФИЦИЕНТ ПОВОРЕНИЯ ГРУППЫ ОПУЩЕН, ОН ПОДРАЗУ-
МЕВАЕТСЯ РАВНЫМ ЕДИНИЦЕ.



        5.4.5. СПЕЦИФИКАЦИИ С ОПУЩЕННЫМИ ЗНАЧЕНИЯМИ



        ЕСЛИ СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ "и", "о", "л",  "ф",
"е", "д", "г"  ИЛИ   "а"  БУДУТ ЗАПИСАНЫ БЕЗ УКАЗАНИЯ КАКОГО-
ЛИБО  ЗНАЧЕНИЯ   ДЛИНЫ  ПОЛЯ,   ТО СТАНДАРТНОЕ ЗНАЧЕНИЕ "в" И
"к",  ПРИМЕНЯЕМОЕ  В ЭТОМ СЛУЧАЕ, БУДЕТ ЗАВИСЕТЬ ОТ ТИПА ДАН-
НЫХ  ЭЛЕМЕНТА  СПИСКА  ВВОДА/ВЫВОДА. СТАНДАРТНЫЕ ЗНАЧЕНИЯ ДЛЯ
ВЕЛИЧИНЫ "в" И "к" ПРИВЕДЕНЫ В ТАБЛ. 4.




                              - 102 -

                          00014-01.35.02



                                               ТАБЛИЦА 4
--------------------------------------------------------------
СПЕЦИФИКАЦИЯ   !   ЭЛЕМЕНТ              !         !
ПРЕОБРАЗОВАНИЯ !   СПИСКА               !    в    !     к
---------------!------------------------!---------!-----------
и  ИЛИ о       ! интегер*2              !    7    !
и  ИЛИ о       ! интегер*4              !   12    !
л              ! логицал                !    2    !
ф,е,г ИЛИ д    ! реал,цомплеь           !  155    !     7
ф,е,г ИЛИ д    ! доубле прецисион       !   25    !    16
а              ! логицал*1              !    1    !
а              ! интегер*2              !    2    !
а              ! логицал*4,интегер*4    !    4    !
а              ! реал,цомплеь           !    4    !
а              ! доубле прецисионн      !    8    !


        ПРИМЕЧАНИЕ. ДЛЯ ПРЕОБРАЗОВАНИЯ "а" ИСПОЛЬЗУЕТСЯ ФАКТИ-
ЧЕСКАЯ ДЛИНА СООТВЕТСТВУЮЩЕГО ЭЛЕМЕНТА СПИСКА ВВОДА/ВЫВОДА.



        5.4.6. УПРАВЛЕНИЕ КАРЕТКОЙ



        ПЕРВЫЙ  СИМВОЛ КАЖДОЙ ЕДИНИЦЫ ЗАПИСИ, ПЕРЕДАВАЕМОЙ  НА
УСТРОЙСТВО   ПЕЧАТИ,   НИКОГДА   НЕ  ПЕЧАТАЕТСЯ:   ЭТОТ СИМВОЛ
ИНТЕРПРЕТИРУЕТСЯ   КАК  СИМВОЛ   УПРАВЛЕНИЯ  КАРЕТКОЙ. СИСТЕМА
ВВОДА/ВЫВОДА  ФОРТРАН   РАСПОЗНАЕТ ОПРЕДЕЛЕННЫЕ СИМВОЛЫ, ВЫДЕ-
ЛЕННЫЕ ДЛЯ ЭТОЙ ЦЕЛИ. ДЕЙСТВИЕ ЭТИХ СИМВОЛОВ СЛЕДУЮЩЕЕ:

ч (ПРОБЕЛ)
     - ПРОДВИЖЕНИЕ НА ОДНУ СТРОКУ;

0 (НУЛЬ)
     - ПРОДВИЖЕНИЕ НА ДВЕ СТРОКИ;

1 (ЕДИНИЦА)
     - ПРОДВИЖЕНИЕ ДО ПЕРВОЙ СТРОКИ СЛЕДУЮЩЕЙ СТРАНИЦЫ;

+ (ПЛЮС)
     - ОТСУТСТВИЕ  ПРОДВИЖЕНИЯ   (ПОЗВОЛЯЕТ  ВЫПОЛНИТЬ   НАЛО-
       ЖЕНИЕ ПЕЧАТИ);

¤ (ЗНАК ДЕНЕЖНОЙ ЕДИНИЦЫ)
     - ПРОДВИЖЕНИЕ   ПЕРЕД   ПЕЧАТЬЮ   НА ОДНУ СТРОКУ И ПОДАВ-
       ЛЕНИЕ ВОЗВРАТА КАРЕТКИ В КОНЦЕ ЗАПИСИ.

        ЛЮБОЙ ДРУГОЙ СИМВОЛ,   ОТЛИЧНЫЙ ОТ ПЕРЕЧИСЛЕННЫХ ВЫШЕ,
РАССМАТРИВАЕТСЯ КАК ПРОБЕЛ  И  УДАЛЯЕТСЯ  ИЗ  ПЕЧАТАЕМОЙ СТРО-
КИ.



                              - 103 -

                          00014-01.35.02


        5.4.7. РАЗДЕЛИТЕЛЬНЫЕ       ЗНАКИ       СПИСКА
               СПЕЦИФИКАЦИЙ



        СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ В СПИСКЕ СПЕЦИФИКАЦИЙ, КАК
ПРАВИЛО,  ОТДЕЛЯЮТСЯ   ДРУГ ОТ ДРУГА  ЗАПЯТЫМИ. ДЛЯ РАЗДЕЛЕНИЯ
СПЕЦИФИКАЦИЙ   МОЖЕТ  ТАКЖЕ ИСПОЛЬЗОВАТЬСЯ НАКЛОННАЯ ЧЕРТА "/"
- ПРИЗНАК   НАЧАЛА   НОВОЙ   ЗАПИСИ.  НАКЛОННАЯ ЧЕРТА ВЫЗЫВАЕТ
ЗАВЕРШЕНИЕ   ВВОДИМОЙ   ИЛИ   ВЫВОДИМОЙ ЗАПИСИ И ИНИЦИИРОВАНИЕ
НОВОЙ ЗАПИСИ. НАПРИМЕР, ЗАПИСЬ:

        врите(6,70) и,л,н,м,о,п
     70 формат (306/15,2ф4.2)

ЭКВИВАЛЕНТНА СЛЕДУЮЩЕЙ:

        врите (6,70) и,л,н
     70 формат (306)
        врите (6,40) м,о,п
     40 формат (15,2ф4.2)

        С ПОМОЩЬЮ НЕСКОЛЬКИХ, ИДУЩИХ ПОДРЯД ПРИЗНАКОВ  НАЧАЛА
НОВОЙ  ЗАПИСИ,  МОЖНО  ВЫПОЛНИТЬ  ПРОПУСК НЕСКОЛЬКИХ ВВОДИМЫХ
ЗАПИСЕЙ  ИЛИ  ВЫВОД  НЕСКОЛЬКИХ  ПУСТЫХ  ЗАПИСЕЙ.  ЕСЛИ МЕЖДУ
ДВУМЯ   СПЕЦИФИКАЦИЯМИ   ПРЕОБРАЗОВАНИЯ  РАСПОЛОЖЕНЫ н ИДУЩИХ
ПОДРЯД   НАКЛОННЫХ ЧЕРТ, ТО ЭТО ВЫЗОВЕТ ПРОПУСК (н-1) ЗАПИСЕЙ
ПРИ ВВОДЕ  ИЛИ   ВЫДАЧУ  (н-1) ПУСТЫХ (СОСТОЯЩИХ ИЗ ПРОБЕЛОВ)
ЗАПИСЕЙ,  Т.Е. ПУСТЫХ СТРОК ПРИ ВЫВОДЕ. ПЕРВАЯ НАКЛОННАЯ ЧЕР-
ТА ЗАКАНЧИВАЕТ   ТЕКУЩУЮ   ЗАПИСЬ,   ВТОРАЯ   НАКЛОННАЯ ЧЕРТА
ЗАКАНЧИВАЕТ   ПЕРВУЮ   ПРОПУСКАЕМУЮ   ИЛИ ПУСТУЮ ЗАПИСЬ И ТАК
ДАЛЕЕ.   НО  ЕСЛИ  н  ПОДРЯД РАСПОЛОЖЕННЫХ ЧЕРТ ВСТРЕЧАЮТСЯ В
НАЧАЛЕ   ИЛИ В КОНЦЕ СПИСКА СПЕЦИФИКАЦИЙ, ОНИ ВЫЗЫВАЮТ н ПРО-
ПУЩЕННЫХ  ИЛИ  ПУСТЫХ ЗАПИСЕЙ, Т.К. ОТКРЫВАЮЩАЯ ИЛИ ЗАКРЫВАЮ-
ЩАЯ  СКОБКИ   СПИСКА   СПЕЦИФИКАЦИЙ ЯВЛЯЮТСЯ ПРИЗНАКОМ НАЧАЛА
НОВОЙ  ЗАПИСИ  И  ПРИЗНАКОМ ЗАВЕРШЕНИЯ ЗАПИСИ. НАПРИМЕР, ОПЕ-
РАТОРЫ:


        врите (5,10)
     10 формат ('1', Т41,'ПРОМЕЖУТОЧНЫЙ'//Т41,'РЕЗУЛЬТАТ'//)

       ВЫПОЛНЯЕТ СЛЕДУЮЩИЙ ВЫВОД:

                (КОЛОНКА 40, В НАЧАЛЕ СТРАНИЦЫ)

                        ПРОМЕЖУТОЧНЫЙ
                (ПУСТАЯ СТРОКА)
                      РЕЗУЛЬТАТ
                (ПУСТАЯ СТРОКА)
                (ПУСТАЯ СТРОКА)
                              - 104 -

                          00014-01.35.02


        5.4.7.1. РАЗДЕЛИТЕЛИ ВНЕШНИХ ПОЛЕЙ


        СПЕЦИФИКАЦИЯ ПРЕОБРАЗОВАНИЯ ОПРЕДЕЛЯЕТ, ЧТО   ОПЕРАТОР
ВВОДА   ДОЛЖЕН   СЧИТАТЬ "W" СИМВОЛОВ ИЗ ВНЕШНЕЙ ЗАПИСИ.  ЕСЛИ
ПОЛЕ ДАННЫХ  В   РАССМАТРИВАЕМОМ   СЛУЧАЕ  СОДЕРЖИТ МЕНЕЕ  "W"
СИМВОЛОВ,   ОПЕРАТОР ВВОДА СЧИТАЕТ НЕСКОЛЬКО СИМВОЛОВ ИЗ  СЛЕ-
ДУЮЩЕГО ПОЛЯ,    ЕСЛИ ТОЛЬКО КОРОТКОЕ ПОЛЕ НЕ БУДЕТ  РАСШИРЕНО
ЗА СЧЕТ ЛЕВЫХ  НЕЗНАЧАЩИХ  НУЛЕЙ ИЛИ ПРОБЕЛОВ. ДЛЯ ТОГО,  ЧТО-
БЫ ИЗБЕЖАТЬ НЕОБХОДИМОСТИ   ЭТОГО  РАСШИРЕНИЯ, ВВОДИМОЕ  ПОЛЕ,
СОДЕРЖАЩЕЕ  МЕНЕЕ "W" СИМВОЛОВ, МОЖЕТ БЫТЬ ЗАВЕРШЕНО  ЗАПЯТОЙ,
КОТОРАЯ  ОТМЕНЯЕТ   ЗНАЧЕНИЕ   ШИРИНЫ   ПОЛЯ  ПО  СПЕЦИФИКАЦИИ
ПРЕОБРАЗОВАНИЯ.   ТАКАЯ   МЕТОДИКА   НАЗЫВАЕТСЯ    ЗАВЕРШЕНИЕМ
КОРОТКОГО ПОЛЯ.   ОНА   УДОБНА  ПРИ ВВОДЕ ДАННЫХ  С КЛАВИАТУРЫ
ТЕРМИНАЛА.   МЕТОДИКА   ПРИМЕНИМА  К СПЕЦИФИКАЦИЯМ  "I" , "O",
"F" , "E",  "D",  "G",  "L" .НАПРИМЕР:

        READ (5,40) M,N,A,B
     40 FORMAT (216,2F10.2)

        ЕСЛИ ВНЕШНЯЯ ЕДИНИЦА ЗАПИСИ, ВВОДИМАЯ ПО ЭТИМ ОПЕРАТО-
РАМ, ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

        1,-3,1.0,47

ТО БУДЕТ ВЫПОЛНЕНО СЛЕДУЮЩЕЕ ПРИСВАИВАНИЕ ЗНАЧЕНИЙ:

        M = 1
        N = -3
        A = 1.0
        B = 0.47

        НЕОБХОДИМО ОТМЕТИТЬ, ЧТО ФИЗИЧЕСКИЙ КОНЕЦ ЗАПИСИ ТАКЖЕ
СЛУЖИТ ОГРАНИЧИТЕЛЕМ ПОЛЯ. ЧАСТЬ "K" СПЕЦИФИКАЦИИ   "W.K"   НЕ
ОТМЕНЯЕТСЯ, КАК ЭТО ВИДНО ИЗ ПРИСВОЕНИЯ ЗНАЧЕНИЯ    ПЕРЕМЕННОЙ
"B".
        ЗАПЯТОЙ МОГУТ БЫТЬ ЗАВЕРШЕНЫ ТОЛЬКО ТЕ ПОЛЯ,   КОТОРЫЕ
СОДЕРЖАТ МЕНЕЕ "W" СИМВОЛОВ. ЕСЛИ ЗА ПОЛЕМ,   СОСТОЯЩЕМ     ИЗ
"W" ИЛИ БОЛЕЕ СИМВОЛОВ, СЛЕДУЕТ ЗАПЯТАЯ,   ТО   ОНА  РАССМАРИ-
ВАЕТСЯ КАК ЧАСТЬ СЛЕДУЮЩЕГО ПОЛЯ.

        ДВЕ  ИДУЩИЕ   ПОДРЯД ЗАПЯТЫЕ ИЛИ ЗАПЯТАЯ, СЛЕДУЮЩАЯ ЗА
ПОЛЕМ, СОДЕРЖАЩИМ   РОВНО   "W"   СИМВОЛОВ,   ОБРАЗУЕТ НУЛЕВОЕ
(ИМЕЮЩЕЕ НУЛЕВУЮ ДЛИНУ)  ПОЛЕ. В ЗАВИСИМОСТИ   ОТ   СООТВЕТСТ-
ВУЮЩЕЙ   СПЕЦИФИКАЦИИ   БУДЕТ ПРИСВОЕНО ОДНО ИЗ СЛЕДУЮЩИХ ЗНА-
ЧЕНИЙ:

        0, 0.0,  0D0  ИЛИ  .FALSE.

        ЗАПРЕЩАЕТСЯ   ИСПОЛЬЗОВАНИЕ   ЗАПЯТОЙ   ДЛЯ ЗАВЕРШЕНИЯ
ПОЛЕЙ,  КОТОРЫЕ  ДОЛЖНЫ БЫТЬ СЧИТАНЫ ПОД УПРАВЛЕНИЕМ СПЕЕЦИФИ-
КАЦИЙ  "A" , "H"   ИЛИ   СПЕЦИФИКАЦИЙ В ВИДЕ БУКВЕННО-ЦИФРОВЫХ
ЛИТЕРАЛОВ.  НО  ЕСЛИ   ФИЗИЧЕСКИЙ  КОНЕЦ ЗАПИСИ ОБНАРУЖИВАЕТСЯ
ДО ТОГО,   КАК  БУДУТ   СЧИТАНЫ   "W"  СИМВОЛОВ, ТО ВЫПОЛНИТСЯ
ЗАВЕРШЕНИЕ   КОРОТКОГО   ПОЛЯ  И СИМВОЛЫ БУДУТ ВВЕДЕНЫ И ПРИС-
ВОЕНЫ   ОБЫЧНЫМ   СПОСОБОМ. В ЭТОМ СЛУЧАЕ В НЕЗАПОЛНЕННЫЕ ПОС-
ЛЕДНИЕ ПОЗИЦИИ   СООТВЕТСТВУЮЩЕГО    ЭЛЕМЕНТА СПИСКА ВВОДА ИЛИ




                              - 105 -

                          00014-01.35.02


СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ БУДУТ ЗАНЕСЕНЫ ПРОБЕЛЫ.



        5.4.7.2. ПЕРЕМЕННЫЙ СПИСОК СПЕЦИФИКАЦИЙ


        СПИСКИ СПЕЦИФИКАЦИЙ МОГУТ ХРАНИТЬСЯ В МАССИВАХ. ТАКОЙ
СПИСОК   СПЕЦИФИКАЦИЙ (НАЗЫВАЕМЫЙ ПЕРЕМЕННЫМ СПИСКОМ СПЕЦИФИ-
КАЦИЙ)   МОЖЕТ БЫТЬ ПОСТРОЕН ИЛИ  ИЗМЕНЕН НЕПОСРЕДСТВЕННО ПРИ
ВЫПОЛНЕНИИ  ПРОГРАММЫ.    ВИД  СПИСКА  СПЕЦИФИКАЦИЙ В МАССИВЕ
ИДЕНТИЧЕН   ОПЕРАТОРУ "FORMAT" ЗА ИСКЛЮЧЕНИЕМ ТОГО, ЧТО В НЕМ
ОТСУТСТВУЮТ   СЛОВО  "FORMAT" И МЕТКА ОПЕРАТОРА. ОДНАКО НАЛИ-
ЧИЕ ОТКРЫВАЮЩЕЙ   И ЗАКРЫВАЮЩЕЙ СКОБОК ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНЫМ.
ПЕРЕМЕННЫЙ СПИСОК   СПЕЦИФИКАЦИЙ   НЕ  МОЖЕТ ХРАНИТЬСЯ В ВИР-
ТУАЛЬНЫХ МАССИВАХ.

        ПРИМЕР ПЕРЕМЕННОГО СПИСКА СПЕЦИФИКАЦИЙ:

        REAL FACT(5,5)
        DOUBLE PRECISION FORM(6),REC,FEST,FEB,SML
        DATA FORM(1),REG,FEST,FEB,SML/'(',')','F8.2',
       1'F9.4,','F9.6'/
        DO 30 J=1,5
        DO 31 I=1,5
        IF (FACT(I,J).LT.100.AND.FACT(I,J).GT.0.1)
       1       FORM(I+1)=FEB
        IF (FACT(I,J).GE.100.)FORM(I+1)=FEST
        IF (FACT(I,J).LE.0.1) FORM(I+1)=SML
     31 CONTINUE
        FORM(I+1)=REG
        WRITE(5,FORM) (FACT(K,J),K=1,5)
     30 CONTINUE
        END

        В ЭТОМ ПРИМЕРЕ ОПЕРАТОР "DATA" ПРИСВАИВАЕТ КОД  ЛЕВОЙ
СКОБКИ   ПЕРВОМУ   ЭЛЕМЕНТУ МАССИВА "FORM" И ПРИСВАИВАЕТ КОДЫ
ПРАВОЙ СКОБКИ   И ТРИ СПЕЦИФИКАЦИИ ПЕРЕМЕННЫМ ДЛЯ ПОСЛЕДУЮЩЕ-
ГО ИСПОЛЬЗОВАНИЯ.   ЗАТЕМ ВЫБИРАЮТСЯ СООТВЕТСТВУЮЩИЕ СПЕЦИФИ-
КАЦИИ ДЛЯ ВКЛЮЧЕНИЯ   ИХ   В  СПИСОК СПЕЕЦИФИКАЦИЙ, ИСХОДЯ ИЗ
ЗНАЧЕНИЙ   ОТДЕЛЬНЫХ   ЭЛЕМЕНТОВ МАССИВА "FAST". ЗАТЕМ СПИСКУ
СПЕЦИФИКАЦИЙ   ПЕРЕД   ЕГО ИСПОЛЬЗОВАНИЕМ В ОПЕРАТОРЕ "WRITE"
ДОБАВЛЯЕТСЯ   ПРАВАЯ СКОБКА.  ТАКИМ ОБРАЗОМ СПИСОК СПЕЦИФИКА-
ЦИЙ ИЗМЕНЯЕТСЯ С КАЖДЫМ ПОВТОРЕНИЕМ ЦИКЛА ОПЕРАТОРА "DO".



        5.4.8. ВЗАИМОДЕЙСТВИЕ УПРАВЛЕНИЯ ФОРМАТОМ И
               СПИСКА ВВОДА/ВЫВОДА



        УПРАВЛЕНИЕ ФОРМАТОМ   ИНИЦИИРУЕТСЯ НАЧАЛОМ ВЫПОЛНЕНИЯ
ОПЕРАТОРА  ФОРМАТНОГО   ВВОДА/ВЫВОДА.   КАЖДОЕ   ДЕЙСТВИЕ  ПО
УПРАВЛЕНИЮ  ФОРМАТОМ   ЗАВИСИТ ОТ ИНФОРМАЦИИ, ПРЕДОСТАВЛЯЕМОЙ
СОВМЕСТНО   ОЧЕРЕДНЫМ  ЭЛЕМЕНТОМ СПИСКА ВВОДА/ВЫВОДА (ЕСЛИ ОН
ИМЕЕТСЯ)   И   ОЧЕРЕДНОЙ СПЕЦИФИКАЦИЕЙ ОПЕРАТОРА "FORMAT" ИЛИ
МАССИВА,   СОДЕРЖАЩЕГО СПИСОК СПЕЦИФИКАЦИЙ. КАК СПИСОК СПЕЦИ-




                              - 106 -

                          00014-01.35.02


ФИКАЦИЙ,   ТАК   И   СПИСОК ВВОДА/ВЫВОДА ПРОСМАТРИВАЕТСЯ СЛЕВА
НАПРАВО (ЗА ИСКЛЮЧЕНИЕМ СЛУЧАЕВ ПОВТОРЕНИЙ).

        ЕСЛИ   ОПЕРАТОР      ВВОДА/ВЫВОДА   СОДЕРЖИТ    СПИСОК
ВВОДА/ВЫВОДА,     ТО В СПИСКЕ СПЕЦИФИКАЦИЙ ДОЛЖНА ИМЕТЬСЯ ХОТЯ
БЫ ОДНА СПЕЦИФИКАЦИЯ    ПРЕОБРАЗОВАНИЯ, ОТЛИЧНАЯ ОТ СПЕЦИФИКА-
ЦИЙ ТИПА "H", "X", "T" И  "P".      ЕСЛИ ЭТО УСЛОВИЕ НЕ ВЫПОЛ-
НЯЕТСЯ, ТО ПРИ ВЫПОЛНЕНИИ ПРОГРАММЫ ФИКСИРУЕТСЯ ОШИБКА.

        ПРИ ВЫПОЛНЕНИИ ОПЕРАТОРА  ФОРМАТНОГО ВВОДА СЧИТЫВАЕТСЯ
ОДНА ЗАПИСЬ С УКАЗАННОГО УСТРОЙСТВА   И  ИНИЦИИРУЕТСЯ УПРАВЛЕ-
НИЕ ФОРМАТОМ; ПОСЛЕ ЭТОГО МОГУТ  БЫТЬ   СЧИТАНЫ ДОПОЛНИТЕЛЬНЫЕ
ЗАПИСИ, КАК УКАЗАНО В СПИСКЕ   СПЕЦИФИКАЦИЙ.   УПРАВЛЕНИЕ ФОР-
МАТОМ   ТРЕБУЕТ  ВВОДА НОВОЙ ЗАПИСИ ВСЯКИЙ РАЗ, КОГДА В СПИСКЕ
СПЕЦИФИКАЦИЙ   ВСТРЕЧАЕТСЯ   НАКЛОННАЯ  ЧЕРТА ИЛИ КОГДА ДОСТИ-
ГАЕТСЯ   ПОСЛЕДНЯЯ  ВНЕШНЯЯ ЗАКРЫВАЮЩАЯ СКОБКА СПИСКА СПЕЦИФИ-
КАЦИЙ, А   В   СПИСКЕ ВВОДА ЕЩЕ ОСТАЛИСЬ НЕЗАПОЛНЕННЫЕ ЭЛЕМЕН-
ТЫ. ПРИ СЧИТЫВАНИИ   НОВОЙ   ЗАПИСИ   ТЕРЯЮТСЯ  ВСЕ ОСТАВШИЕСЯ
СИМВОЛЫ ТЕКУЩЕЙ ЗАПИСИ.

        ПРИ   ВЫПОЛНЕНИИ   ОПЕРАТОРА  ФОРМАТНОГО ВЫВОДА ЗАПИСЬ
ПЕРЕДАЕТСЯ   НА   УКАЗАННОЕ   УСТРОЙСТВО  ТОЛЬКО ПО ЗАВЕРШЕНИИ
УПРАВЛЕНИЯ   ФОРМАТОМ.   ВОЗМОЖЕН ТАКЖЕ ВЫВОД НЕСКОЛЬКИХ ЗАПИ-
СЕЙ   ПРИ   ВЫПОЛНЕНИИ УПРАВЛЕНИЯ ФОРМАТОМ, ЕСЛИ В СПИСКЕ СПЕ-
ЦИФИКАЦИЙ   ВСТРЕТИТСЯ   НАКЛОННАЯ  ЧЕРТА ИЛИ ЕСЛИ ДОСТИГАЕТСЯ
ПОСЛЕДНЯЯ ВНЕШНЯЯ ЗАКРЫВАЮЩАЯ СКОБКА,   А  В СПИСКЕ ВЫВОДА ЕЩЕ
ИМЕЮТСЯ ЭЛЕМЕНТЫ, ПОДЛЕЖАЩИЕ ВЫВОДУ.

        КАЖДАЯ СПЕЦИФИКАЦИЯ ТИПА "I", "O", "F", "E", "D", "G",
"L", "A"  И  "Q"   СООТВЕТСТВУЕТ   ОДНОМУ   ЭЛЕМЕНТУ    СПИСКА
ВВОДА/ВЫВОДА.   СПЕЦИФИКАЦИЯМ  "H", "X", "P", "T" И СПЕЦИФИКА-
ЦИИ В ВИДЕ БУКВЕННО-ЦИФРОВОГО   ЛИТЕРАЛА   НЕ СТАВИТСЯ В СООТ-
ВЕТСТВИЕ НИ ОДИН ЭЛЕМЕНТ СПИСКА. В СЛУЧАЕ   СПЕЦИФИКАЦИИ  ТИПА
"H"   ИЛИ      СПЕЦИФИКАЦИИ В ВИДЕ БУКВЕННО-ЦИФРОВОГО ЛИТЕРАЛА
ПЕРЕДАЧА    ДАННЫХ     ОСУЩЕСТВЛЯЕТСЯ    НЕПОСРЕДСТВЕННО МЕЖДУ
ЗАПИСЬЮ И СПИСКОМ СПЕЦИФИКАЦИЙ.

        ЕСЛИ УПРАВЛЕНИЕ    ФОРМАТОМ  ОБНАРУЖИВАЕТ СПЕЦИФИКАЦИЮ
ТИПА "I", "O", "F", "E", "D", "G", "L", "A"   ИЛИ    "Q",   ТО
ОПРЕДЕЛЯЕТСЯ   НАЛИЧИЕ   СООТВЕТСТВУЮЩЕГО    ЭЛЕМЕНТА В СПИСКЕ
ВВОДА/ВЫВОДА. ЕСЛИ ТАКОЙ ЭЛЕМЕНТ ИМЕЕТСЯ,      ТО   УПРАВЛЕНИЕ
ФОРМАТОМ    ОСУЩЕСТВЛЯЕТ      ПЕРЕДАЧУ СООТВЕТСТВУЮЩИМ ОБРАЗОМ
ПРЕОБРАЗОВАТЕЛЬНЫХ  ДАННЫХ МЕЖДУ ЗАПИСЬЮ И ЭЛЕМЕНТОМ СПИСКА, А
ЗАТЕМ ПЕРЕХОДИТ   К  ОБРАБОТКЕ СЛЕДУЮЩЕЙ СПЕЦИФИКАЦИИ (ЕСЛИ НЕ
ТРЕБУЕТСЯ ПОВТОРЕНИЯ   ТЕКУЩЕЙ    СПЕЦИФИКАЦИИ). ЕСЛИ ЖЕ СООТ-
ВЕТСТВУЮЩЕГО ЭЛЕМЕНТА В СПИСКЕ    НЕ ОБНАРУЖЕНО, ТО УПРАВЛЕНИЕ
ФОРМАТОМ ЗАВЕРШАЕТСЯ.

        ПРИ ДОСТИЖЕНИИ ПОСЛЕДНЕЙ   ЗАКРЫВАЮЩЕЙ СКОБКИ   СПИСКА
СПЕЦИФИКАЦИЙ УПРАВЛЕНИЕ ФОРМАТОМ ОПРЕДЕЛЯЕТ, ИМЕЮТСЯ    ЛИ ЕЩЕ
В СПИСКЕ ВВОДА/ВЫВОДА ЭЛЕМЕНТЫ,     ПОДЛЕЖАЩИЕ ОБРАБОТКЕ. ЕСЛИ
ТАКОВЫХ НЕ ИМЕЕТСЯ, УПРАВЛЕНИЕ   ФОРМАТОМ  ЗАВЕРШАЕТСЯ. ЕСЛИ В
СПИСКЕ   ВВОДА/ВЫВОДА   ОСТАЛИСЬ   НЕОБРАБОТАННЫЕ ЭЛЕМЕНТЫ, ТО
ТЕКУЩАЯ   ЗАПИСЬ   ЗАВЕРШАЕТСЯ,  А УПРАВЛЕНИЕ ФОРМАТОМ ВОЗВРА-
ЩАЕТСЯ   К  САМОЙ ПРАВОЙ ПОВТОРЯЕМОЙ ГРУППЕ СПЕЦИФИКАЦИЙ САМО-
ГО ВЫСОКОГО   УРОВНЯ    (ОТКРЫВАЮЩАЯ СКОБКА КОТОРОЙ СОСТАВЛЯЕТ
ПАРУ С ПРЕДПОСЛЕДНЕЙ   ЗАКРЫВАЮЩЕЙ   СКОБКОЙ СПИСКА СПЕЦИФИКА-
ЦИЙ). ЭТОТ ПРИНЦИП ИЗВЕСТЕН КАК ПОВТОРНАЯ ФОРМАТИЗАЦИЯ.
ЕСЛИ В СПИСКЕ СПЕЦИФИКАЦИЙ   ОТСУТСТВУЮТ   ПОВТОРЯЕМЫЕ ГРУППЫ,




                              - 107 -

                          00014-01.35.02


УПРАВЛЕНИЕ   ФОРМАТОМ  ВЕРНЕТСЯ К НАЧАЛЬНОЙ ОТКРЫВАЮЩЕЙ СКОБКЕ
СПИСКА   СПЕЦИФИКАЦИЙ.   ДЕЙСТВИЯ ПО УПРАВЛЕНИЮ ФОРМАТОМ БУДУТ
ПРОДОЛЖЕНЫ С ЭТОЙ ТОЧКИ.



        5.4.9. СВОДКА ПРАВИЛ ДЛЯ ОПЕРАТОРА "FORMAT"


        В ЭТОМ РАЗДЕЛЕ ПРИВОДИТСЯ ПЕРЕЧЕНЬ ПРАВИЛ,  СВЯЗАННЫХ
СО СТРУКТУРОЙ И ИСПОЛЬЗОВАНИЕМ ОПЕРАТОРА "FORMAT"   (ИЛИ МАС-
СИВА, СОДЕРЖАЩЕГО СПИСОК СПЕЦИФИКАЦИЙ) И   ЕГО СОСТАВНЫХ ЧАС-
ТЕЙ, А ТАКЖЕ ПРАВИЛ, СВЯЗАННЫХ СО СТРУКТУРОЙ   ВНЕШНИХ  ПОЛЕЙ
И ЗАПИСЕЙ, С КОТОРЫМИ ВЗАИМОДЕЙСТВУЕТ СПИСОК СПЕЦИФИКАЦИЙ.



        5.4.9.1. ОБЩИЕ ПРАВИЛА


        ПРАВИЛО 1. ОПЕРАТОР "FORMAT" ОБЯЗАТЕЛЬНО ДОЛЖЕН  ИМЕТЬ
МЕТКУ.

        ПРАВИЛО 2. В СПЕЦИФИКАЦИЯХ, ТАКИХ КАК "RIW" ИЛИ  "NX",
ЧЛЕНЫ   "R", "W" И  "N"    ДОЛЖНЫ  БЫТЬ  ЦЕЛЫМИ ПОЛОЖИТЕЛЬНЫМИ
КОНСТАНТАМИ БЕЗ ЗНАКА. КОЭФФИЦИЕНТ  ПОВТОРЕНИЯ   И  СПЕЦИФИКА-
ЦИЯ ШИРИНЫ ПОЛЯ МОГУТ БЫТЬ ОПУЩЕНЫ.

        ПРАВИЛО 3. В СПЕЦИФИКАЦИЯХ, ТАКИХ КАК "FW.K", ВЕЛИЧИНА
"K" ДОЛЖНА БЫТЬ ЦЕЛОЙ КОНСТАНТОЙ БЕЗ ЗНАКА.   ОНА      ОБЯЗАНА
ПРИСУТСТВОВАТЬ В СПЕЦИФИКАЦИЯХ "F", "E", "D", "G",        ДАЖЕ
ЕСЛИ ОНА РАВНА НУЛЮ.     ПРИСУТСТВИЕ ТОЧКИ ТАКЖЕ ЯВЛЯЕТСЯ ОБЯ-
ЗАТЕЛЬНЫМ. СПЕЦИФИКАЦИЯ   ШИРИНЫ   ПОЛЯ "W" ДОЛЖНА БЫТЬ БОЛЬШЕ
ИЛИ РАВНА "K". ВЕЛИЧИНЫ "W" И "K"    ДОЛЖНЫ ЛИБО ОБЕ ПРИСУТСТ-
ВОВАТЬ, ЛИБО ОБЕ БЫТЬ ОПУЩЕНЫ.

        ПРАВИЛО 4. В СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ "NHC1C2...CN"
ПОСЛЕ КОДА СПЕЦИФИКАЦИИ "H" ДОЛЖНО    ПРИСУТСТВОВАТЬ РОВНО "N"
СИМВОЛОВ.       В ЭТОЙ СПЕЦИФИКАЦИИ МОЖЕТ ПРИСУТСТВОВАТЬ ЛЮБОЙ
СИМВОЛ КОДА   КОИ-7    (СПЕЦИФИКАЦИЯ В ВИДЕ БУКВЕННО-ЦИФРОВОГО
ЛИТЕРАЛА ПОДЧИНЯЕТСЯ ТОМУ ЖЕ ПРАВИЛУ).

        ПРАВИЛО 5. В   МАСШТАБНОМ  КОЭФФИЦИЕНТЕ ВИДА "МР", "М"
ДОЛЖНО БЫТЬ ЦЕЛОЙ КОНСТАНТОЙ   СО   ЗНАКОМ ИЛИ БЕЗ НЕГО, ЛЕЖА-
ЩЕЙ В ДИАПАЗОНЕ ОТ -127 ДО +127   ВКЛЮЧИТЕЛЬНО.     МАСШТАБНЫЙ
КОЭФФИЦИЕНТ   ПРИМЕНЯЕТСЯ   ТОЛЬКО   К СПЕЦИФИКАЦИЯМ "F", "E",
"D" И  "G".      БУДУЧИ ОДИН РАЗ ОПРЕДЕЛЕН, МАСШТАБНЫЙ КОЭФФИ-
ЦИЕНТ ДЕЙСТВУЕТ   НА   ВСЕ  ПОСЛЕДУЮЩИЕ СПЕЦИФИКАЦИИ ИЗ СПИСКА
СПЕЦИФИКАЦИЙ. ДЕЙСТВИЕ ЭТОГО   МАСШТАБНОГО  КОЭФФИЦИЕНТА ПРЕК-
РАЩАЕТСЯ, КОГДА ВСТРЕЧАЕТСЯ ДРУГОЙ МАСШТАБНЫЙ КОЭФФИЦИЕНТ.
ДЛЯ ТОГО,    ЧТОБЫ    ВОССТАНОВИТЬ  НУЛЕВОЙ МАСШТАБНЫЙ КОЭФФИ-
ЦИЕНТ, НАДО ОПРЕДЕЛИТЬ ЕГО В ВИДЕ "0P".       ПОВТОРНАЯ   ФОР-
МАТИЗАЦИЯ НЕ ОКАЗЫВАЕТ ВЛИЯНИЯ НА МАСШТАБНЫЙ КОЭФФИЦИЕНТ.

        ПРАВИЛО 6.  НЕ ДОПУСКАЕТСЯ ИСПОЛЬЗОВАНИЕ  КОЭФФИЦИЕНТА
ПОВТОРЕНИЯ ПЕРЕД   СПЕЦИФИКАЦИЯМИ  "H", "T" И ПЕРЕД СПЕЦИФИКА-
ЦИЕЙ В ВИДЕ БУКВЕННО-ЦИФРОВОГО   ЛИТЕРАЛА   ЗА ИСКЛЮЧЕНИЕМ ТЕХ

                               - 108 -

                          00014-01.35.02


СЛУЧАЕВ,   КОГДА  ЭТИ СПЕЦИФИКАЦИИ ЗАКЛЮЧЕНЫ В СКОБКИ И РАСС-
МАТРИВАЮТСЯ КАК ПОВТОРЯЕМАЯ ГРУППА СПЕЦИФИКАЦИЙ.

        ПРАВИЛО 7. ЕСЛИ В ОПЕРАТОРЕ ВВОДА/ВЫВОДА ИМЕЕТСЯ СПИ-
СОК   ВВОДА/ВЫВОДА, ТО СПИСОК СПЕЦИФИКАЦИЙ СОДЕРЖИТ КАК МИНИ-
МУМ   ОДНУ   СПЕЦИФИКАЦИЮ, ОТЛИЧНУЮ ОТ СПЕЦИФИКАЦИЙ "H", "X",
"P", "T" И БУКВЕННО-ЦИФРОВЫХ ЛИТЕРАЛОВ.

        ПРАВИЛО 8.  СПИСОК СПЕЦИФИКАЦИЙ В МАССИВЕ ДОЛЖЕН БЫТЬ
ПОСТРОЕН ТАКЖЕ, КАК   И   СПИСОК     СПЕЦИФИКАЦИЙ В ОПЕРАТОРЕ
"FORMAT",   ВКЛЮЧАЯ     ОТКРЫВАЮЩУЮ И ЗАКРЫВАЮЩУЮ СКОБКИ. ПРИ
ИСПОЛЬЗОВАНИИ   ИДЕНТИФИКАТОРА  МАССИВА СО СПИСКОМ СПЕЦИФИКА-
ЦИЙ   ВМЕСТО  ОПЕРАТОРА "FORMAT" ЭТОТ ИДЕНТИФИКАТОР НЕ ДОЛЖЕН
БЫТЬ ИНДЕКСИРОВАН.


        5.4.9.2. ПРАВИЛА ДЛЯ ВВОДА

        ПРАВИЛО 1. ВНЕШНЕМУ ПОЛЮ ВВОДИМЫХ ДАННЫХ, СОДЕРЖАЩЕМУ
ОТРИЦАТЕЛЬНУЮ   ВЕЛИЧИНУ, ДОЛЖЕН ПРЕДШЕСТВОВАТЬ ЗНАК "МИНУС".
НИЛИЧИЕ ЗНАКА    "ПЛЮС" ПЕРЕД ЗАПИСЬЮ ПОЛОЖИТЕЛЬНОГО ЗНАЧЕНИЯ
НЕ ЯВЛЯЕТСЯ ОБЯЗАТЕЛЬНЫМ.

        ПРАВИЛО 2. ВНЕШНЕЕ  ПОЛЕ, ПРЕОБРАЗОВАНИЕ КОТОРОГО ПРИ
ВВОДЕ ВЫПОЛНЯЕТСЯ ПОД УПРАВЛЕНИЕМ    СПЕЦИФИКАЦИИ "I", ДОЛЖНО
ИМЕТЬ ФОРМАТ ЦЕЛОЙ КОНСТАНТЫ.   ВНЕШНЕЕ    ПОЛЕ, ВВОДИМОЕ ПОД
УПРАВЛЕНИЕМ СПЕЦИФИКАЦИИ "O", ДОЛЖНО     ИМЕТЬ ФОРМАТ ВОСЬМЕ-
РИЧНОЙ КОНСТАНТЫ БЕЗ ПРЕДШЕСТВУЮЩЕГО  ЕЙ ДВОИЧНОГО АПОСТРОФА.
КОНСТАНТА ТАКЖЕ НЕ ДОЛЖНА СОДЕРЖАТЬ НИ  ДЕСЯТИЧНОЙ  ТОЧКИ, НИ
ПОКАЗАТЕЛЯ СТЕПЕНИ.

        ПРАВИЛО 3. ВНЕШНЕЕ ПОЛЕ, ПРЕОБРАЗОВАНИЕ  КОТОРОГО ПРИ
ВВОДЕ ВЫПОЛНЯЕТСЯ ПОД УПРАВЛЕНИЕМ СПЕЦИФИКАЦИЙ   "F", "E" ИЛИ
"G",    ДОЛЖНО ИМЕТЬ ФОРМАТ ЦЕЛОЙ ИЛИ ВЕЩЕСТВЕННОЙ КОНСТАНТЫ,
ИЛИ   КОНСТАНТЫ     С  ДВОЙНОЙ ТОЧНОСТЬЮ. ОНО МОЖЕТ СОДЕРЖАТЬ
ДЕСЯТИЧНУЮ ТОЧКУ И/ИЛИ   ПОЛЕ ПОКАЗАТЕЛЯ СТЕПЕНИ ТИПА "E" ИЛИ
"D".

        ПРАВИЛО 4. ЕСЛИ ВНЕШНЕЕ ПОЛЕ СОДЕРЖИТ ДЕСЯТИЧНУЮ ТОЧ-
КУ, ТО ФАКТИЧЕСКИЙ РАЗМЕР     ДРОБНОЙ ЧАСТИ ПОЛЯ, УКАЗЫВАЕМЫЙ
ЭТОЙ ТОЧКОЙ, ПЕРЕОПРЕДЕЛЯЕТ   ДЛЯ ЭТОГО ПОЛЯ СПЕЦИФИКАЦИЮ "K"
ИЗ СООТВЕТСТВУЮЩЕЙ СПЕЦИФИКАЦИИ    ДЕЙСТВИТЕЛЬНОГО ПРЕОБРАЗО-
ВАНИЯ.

        ПРАВИЛО 5. ЕСЛИ ВНЕШНЕЕ ПОЛЕ СОДЕРЖИТ ПОКАЗАТЕЛЬ СТЕ-
ПЕНИ, ЭТО ВЫЗЫВАЕТ ИГНОРИРОВАНИЕ     МАСШТАБНОГО КОЭФФИЦИЕНТА
(ЕСЛИ ОН ИМЕЕТСЯ) ПРИ ВЫПОЛНЕНИИ ПРЕОБРАЗОВАНИЯ ЭТОГО ПОЛЯ.

        ПРАВИЛО 6. СПЕЦИФИКАЦИЯ ДЛИНЫ ПОЛЯ ДОЛЖНА БЫТЬ ДОСТА-
ТОЧНА ВЕЛИКА ДЛЯ ТОГО, ЧТОБЫ ОХВАТИТЬ   КРОМЕ  ПОСЛЕДОВАТЕЛЬ-
НОСТИ ЦИФРОВЫХ СИМВОЛОВ ВНЕШНЕГО ПОЛЯ   И  ДРУГИЕ    СИМВОЛЫ,
КОТОРЫЕ МОГУТ В НЕМ ПРИСУТСТВОВАТЬ    (АЛГЕБРАИЧЕСКИЙ   ЗНАК,
ДЕСЯТИЧНАЯ ТОЧКА И/ИЛИ ПРИЗНАК ПОКАЗАТЕЛЯ СТЕПЕНИ).

        ПРАВИЛО 7. ЕДИНСТВЕННЫМ СИМВОЛОМ,    КОТОРЫЙ    МОЖЕТ
ИСПОЛЬЗОВАТЬСЯ КАК   ВНЕШНИЙ   РАЗДЕЛИТЕЛЬ  ЗАПИСИ,  ЯВЛЯЕТСЯ




                              - 109 -

                          00014-01.35.02



ЗАПЯТАЯ.   ОНА   ИСПОЛЬЗУЕТСЯ  ДЛЯ ЗАВЕРШЕНИЯ ВВОДА ПОЛЕЙ, КОТО-
РЫЕ   КОРОЧЕ,   ЧЕМ  ЭТО УКАЗЫВАЕТСЯ В СПЕЦИФИКАЦИИ, А ТАКЖЕ ДЛЯ
ФОРМИРОВАНИЯ НУЛЕВЫХ (ИМЕЮЩИХ НУЛЕВУЮ ДЛИНУ) ПОЛЕЙ.




        5.4.9.3.  ПРАВИЛО 1. СПИСОК СПЕЦИФИКАЦИЙ НЕ ДОЛЖЕН ЗАДА-
ВАТЬ ВЫВОД БОЛЬШЕГО   ЧИСЛА   СИМВОЛОВ,   ЧЕМ ИХ МОЖЕТ СОДЕРЖАТЬ
ВНЕШНЯЯ ЗАПИСЬ (НАПРИМЕР, ЕДИНИЦА ЗАПИСИ    УСТРОЙСТВА    ПЕЧАТИ
НЕ МОЖЕТ   СОДЕРЖАТЬ   БОЛЬШЕ   133 СИМВОЛОВ,   ВКЛЮЧАЯ   СИМВОЛ
УПРАВЛЕНИЯ КАРЕТКОЙ).

        ПРАВИЛО 2.  СПЕЦИФИКАЦИЯ     ДЛИНЫ  ПОЛЯ "W" ДОЛЖНА БЫТЬ
ДОСТАТОЧНО ВЕЛИКА,   ЧТОБЫ     ОХВАТИТЬ     ВСЕ СИМВОЛЫ, КОТОРЫЕ
МОГУТ БЫТЬ    СФОРМИРОВАНЫ   ПРИ  ВЫВОДЕ, ВКЛЮЧАЯ АЛГЕБРАИЧЕСКИЙ
ЗНАК, ДЕСЯТИЧНУЮ ТОЧКУ И ПИЗНАК      ПОКАЗАТЕЛЯ СТЕПЕНИ.  НАПРИ-
МЕР,   СПЕЦИФИКАЦИЯ   ДЛИНЫ   ПОЛЯ В СПЕЦИФИКАЦИИ ПРЕОБРАЗОВАНИЯ
"E" ДОЛЖНА БЫТЬ   ДОСТАТОЧНО   ВЕЛИКА,  ЧТОБЫ ПОЛЕ ВМЕЩАЛО (K+7)
СИМВОЛОВ.

        ПРАВИЛО 3. ПЕРВЫЙ СИМВОЛ  ЗАПИСИ,     ВЫВОДИМЫЙ  НА УСТ-
РОЙСТВО   ПЕЧАТИ   ИЛИ  НА ТЕРМИНАЛ, ИСПОЛЬЗУЕТСЯ ДЛЯ УПРАВЛЕНИЯ
КАРЕТКОЙ. ЭТОТ СИМВОЛ   НИКОГДА НЕ  ПЕЧАТАЕТСЯ.    ПЕРВЫЙ СИМВОЛ
ТАКОЙ ЗАПИСИ ДОЛЖЕН БЫТЬ ПРОБЕЛОМ, НУЛЕМ,   ЕДИНИЦЕЙ,     ЗНАКОМ
ДЕНЕЖНОЙ ЕДИНИЦЫ ИЛИ ЗНАКОМ "ПЛЮС".      ЛЮБОЙ   ДРУГОЙ  СИМВОЛ,
НАХОДЯЩИЙСЯ   НА    ЭТОМ МЕСТЕ, СЧИТАЕТСЯ ПРОБЕЛОМ И ИСКЛЮЧАЕТСЯ
ИЗ ЗАПИСИ.


        5.5. ОПЕРАТОРЫ ОПИСАНИЯ


        ЭТИ ОПЕРАТОРЫ   ЯВЛЯЮТСЯ НЕВЫПОЛНЯЕМЫМИ ОПЕРАТОРАМИ. ОНИ
ОБЕСПЕЧИВАЮТ ТРАНСЛЯТОР   ИНФОРМАЦИЕЙ,      НЕОБХОДИМОЙ ДЛЯ ПРА-
ВИЛЬНОГО    РАЗМЕЩЕНИЯ   ПЕРЕМЕННЫХ   И    МАССИВОВ И ЗАДАНИЯ ИХ
НАЧАЛЬНЫХ ЗНАЧЕНИЙ,   А ТАКЖЕ ОПРЕДЕЛЯЮТ    ДРУГИЕ ХАРАКТЕРИСТИ-
КИ СИМВОЛЬНЫХ ИМЕН, ИСПОЛЬЗУЕМЫХ В ПРОГРАММЕ.


        5.5.1. ОПЕРАТОР "IMPLICIT"


        ОПЕРАТОР   "IMPLICIT"     ПЕРЕОПРЕДЕЛЯЕТ НЕЯВНОЕ ЗАДАНИЕ
ТИПА ИДЕНТИФИКАТОРОВ,   СОГЛАСНО    КОТОРОМУ ВСЕ ИДЕНТИФИКАТОРЫ,
НАЧИНАЮЩИЕСЯ С БУКВ "I", "J", "K", "L", "M"    И    "N" ПРЕДНАЗ-
НАЧАЮТСЯ ДЛЯ ПРЕДСТАВЛЕНИЯ ЦЕЛЫХ ДАННЫХ.         ИДЕНТИФИКАТОРЫ,
НИЧИНАЮЩИЕСЯ    С    ЛЮБОЙ    ДРУГОЙ БУКВЫ,    ПРЕДНАЗНАЧЕНЫ ДЛЯ
ВЕЩЕСТВЕННЫХ ДАННЫХ.

        ОПЕРАТОР "IMPLICIT" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:




                              - 110 -

                          00014-01.35.02



        IMPLICIT TYP(A[,A]...)[,TYP(A[,A]...)]...

ГДЕ

TYP
      - ОДИН ИЗ СЛЕДУЮЩИХ ОПИСАТЕЛЕЙ ТИПА ДАННЫХ:

          INTEGER
          INTEGER*2
          INTEGER*4
          REAL
          REAL*4
          REAL*8
          DOUBLE PRECISION
          COMPLEX
          COMPLEX*8
          BYTE
          LOGICAL
          LOGICAL*1
          LOGICAL*4

A
      - БУКВЕННАЯ СПЕЦИФИКАЦИЯ ВИДА:

          С ИЛИ С1-С2

С
      - БУКВЕННЫЙ СИМВОЛ.

        ПОСЛЕДНЯЯ ФОРМА ОПРЕДЕЛЯЕТ ПОСЛЕДОВАТЕЛЬНОСТЬ БУКВ ОТ
"С1"  ДО  "С2" ВКЛЮЧИТЕЛЬНО, КОТОРЫЕ ДОЛЖНЫ БЫТЬ  РАСПОЛОЖЕНЫ
В АЛФАВИТНОМ ПОРЯДКЕ. ОПЕРАТОР "IMPLICIT"   ПРИСВАИВАЕТ ОПРЕ-
ДЕЛЕННЫЙ ТИП ДАННЫХ ВСЕМ ИДЕНТИФИКАТОРАМ,   НАЧИНАЮЩИМСЯ    С
УКАЗАННОЙ БУКВЫ ИЛИ С ЛЮБОЙ   ИЗ   БУКВ  УКАЗАННОЙ ПОСЛЕДОВА-
ТЕЛЬНОСТИ. ПРИ ЭТОМ ТИП ДАННЫХ ПРИСВАИВАЕТСЯ    ТОЛЬКО    ТЕМ
ИДЕНТИФИКАТОРАМ, У КОТОРЫХ ОН НЕ БЫЛ ОПИСАН ЯВНЫМ ОБРАЗОМ.
НАПРИМЕР, ОПЕРАТОРЫ:

        IMPLICIT INTEGER (I,J,K,L,M,N)
        IMPLICIT REAL    (A-G,P-Z)

ПРЕДСТАВЛЯЮТ СТАНДАРТНЫЕ ОПИСАНИЯ   ТИПА  ПРИ ОТСУТСТВИИ ДРУ-
ГИХ ОПИСАТЕЛЕЙ ТИПА ДАННЫХ.

        ОПЕРАТОРЫ "IMRLICIT" НЕ ДОЛЖНЫ ИМЕТЬ МЕТОК.

        ПРИМЕРЫ:

        IMPLICIT DOUBLE PRECISION Q
        IMPLICIT REAL (S,Y), LOGICAL*1  (B,A-C)

                                       - 111 -

                          00014-01.35.02



        5.5.2. ОПЕРАТОРЫ ОПИСАНИЯ ТИПА


        ОПЕРАТОРЫ ОПИСАНИЯ ТИПА ЯВНЫМ ОБРАЗОМ ОПРЕДЕЛЯЮТ   ТИП
УКАЗАННЫХ ИДЕНТИФИКАТОРОВ.

        ОПЕРАТОР ОПИСАНИЯ ТИПА ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                TYP V[,V]...

ГДЕ

TYP
      - ОДИН ИЗ СЛЕДУЮЩИХ ОПИСАТЕЛЕЙ ТИПА ДАННЫХ:

        BYTE
        LOGICAL
        LOGICAL*1
        LOGICAL*4
        INTEGER
        INTEGER*2
        INTEGER*4
        REAL
        REAL*4
        REAL*8
        DOUBLE PRECISION
        COMPLEX
        COMPLEX*8

V
      - ИДЕНТИФИКАТОР    ПЕРЕМЕННОЙ,     МАССИВА,   ОПЕРАТОРА-
        ФУНКЦИИ    ИЛИ     ПРОГРАММЫ-ФУНКЦИИ,    ИЛИ ОПИСАТЕЛЬ
        МАССИВА.

        ОПЕРАТОР ОПИСАНИЯ ТИПА ВЫЗЫВАЕТ ПРИСВАИВАНИЕ ИДЕНТИФИ-
КАТОРУ    ОПРЕДЕЛЕННОГО    ТИПА. ОН ПЕРЕОПРЕДЕЛЯЕТ ТИП ДАННЫХ,
НЕЯВНО ОПРЕДЕЛЯЕМЫЙ ПЕРВОЙ БУКВОЙ ИДЕНТИФИКАТОРА.

        ОПЕРАТОР ОПИСАНИЯ  ТИПА МОЖЕТ ОПРЕДЕЛЯТЬ МАССИВЫ ВКЛЮ-
ЧЕНИЕМ В ЕГО СПИСОК ОПИСАТЕЛЕЙ    МАССИВОВ. В КАЖДОМ ПРОГРАММ-
НОМ МОДУЛЕ ИДЕНТИФИКАТОР МАССИВА   МОЖЕТ    ПОЯВЛЯТЬСЯ  ТОЛЬКО
ОДИН РАЗ В ОПИСАТЕЛЕ МАССИВА.

        ИДЕНТИФИКАТОРУ   МОЖЕТ  ПРИПИСЫВАТЬСЯ СПРАВА УКАЗАТЕЛЬ
ДЛИНЫ   ТИПА  ДАННЫХ, ИМЕЮЩИЙ ВИД "*S" ("S" - ОДНА ИЗ ДОПУСТИ-
МЫХ   ДЛИН   ДЛЯ   ОБ'ЯВЛЕННОГО   ТИПА ДАННЫХ).   ТАКАЯ ЗАПИСЬ
ПЕРЕОПРЕДЕЛЯЕТ   ДЛЯ  ТОГО ЭЛЕМЕНТА, К КОТОРОМУ ОНА ОТНОСИТСЯ,
ХАРАКТЕРИСТИКУ ДЛИНЫ, УКАЗАННУЮ ОПЕРАТОРОМ. НАПРИМЕР:

        INTEGER*2 L, I, J, M12*4, S, IVEN*4(10)
        REAL*8 ZX1, ZWX, WX2*4, WX4, WX1*8

        ОПЕРАТОРЫ   ОПИСАНИЯ   ТИПА ДОЛЖНЫ ПРЕДШЕСТВОВАТЬ ВСЕМ
ВЫПОЛНЯЕМЫМ   ОПЕРАТОРАМ   И    ВСЕМ    ОПЕРАТОРАМ    ОПИСАНИЯ
"IMPLICIT".   ОНИ  ОБЯЗАНЫ УКАЗЫВАТЬСЯ ДО ПЕРВОГО УПОТРЕБЛЕНИЯ
ЛЮБЫХ ИДЕНТИФИКАТОРОВ, КОТОРЫЕ ОНИ ОПРЕДЕЛЯЮТ.

        ТИП   ДАННЫХ  КАЖДОГО ИДЕНТИФИКАТОРА МОЖЕТ БЫТЬ ОПИСАН
ЯВНЫМ ОБРАЗОМ ТОЛЬКО ОДИН РАЗ.




                              - 112 -

                          00014-01.35.02


        ОПЕРАТОРЫ ОПИСАНИЯ ТИПА НЕ ДОЛЖНЫ ИМЕТЬ МЕТОК. НАПРИ-
МЕР:

        INTEGER CART, MAS(4,4),  RES
        REAL MES,  ITEM
        LOGICAL OPTION



        5.5.3. ОПЕРАТОР "DIMENSION"



        ОПЕРАТОР "DIMENSION" ОПРЕДЕЛЯЕТ РАЗМЕРНОСТЬ МАССИВА И
ЧИСЛО ЭЛЕМЕНТОВ В КАЖДОМ ИЗМЕРЕНИИ.

        ОПЕРАТОР "DIMENSION" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

         DIMENSION A(D)[,A(D)]...

ГДЕ

A
      - ИДЕНТИФИКАТОР МАССИВА;

D
      - ЗНАЧЕНИЕ ИНДЕКСА.

        КАЖДОЕ ВЫРАЖЕНИЕ "A(D)" ПРЕДСТАВЛЯЕТ СОБОЙ  ОПИСАТЕЛЬ
МАССИВА.
        ОПЕРАТОР "DIMENSION" ОТВОДИТ НЕКОТОРОЕ ЧИСЛО ОБЛАСТЕЙ
ПАМЯТИ ПО ОДНОЙ ДЛЯ КАЖДОГО ЭЛЕМЕНТА КАЖДОГО МАССИВА,    УКА-
ЗАННОГО В ОПЕРАТОРЕ. КАЖДАЯ ОБЛАСТЬ ПАМЯТИ СОСТОИТ  ИЗ  ОДНО-
ГО, ДВУХ, ЧЕТЫРЕХ ИЛИ ВОСЬМИ БАЙТОВ В ЗАВИСИМОСТИ   ОТ   ТИПА
ДАННЫХ МАССИВА. ОБЩЕЕ ЧИСЛО ОБЛАСТЕЙ ПАМЯТИ,    ОТВОДИМЫХ ДЛЯ
МАССИВА, РАВНО ПРОИЗВЕДЕНИЮ ВСЕХ ЗНАЧЕНИЙ  ИНДЕКСОВ   ИЗ ОПИ-
САНИЯ ЭТОГО МАССИВА. НАПРИМЕР, ЗАПИСЬ

        DIMENSION COUNT(4,4), MAS(5,5,5)

ОПРЕДЕЛЯЕТ МАССИВ "COUNT", КАК 16 ВЕЩЕСТВЕННЫХ    ЭЛЕМЕНОВ ПО
ДВА СЛОВА КАЖДЫЙ, И МАССИВ "MAS",   КАК   ИМЕЮЩИЙ  125  ЦЕЛЫХ
ЭЛЕМЕНТОВ ПО ОДНМУ СЛОВУ КАЖДЫЙ.

        ОПИСАТЕЛИ МАССИВОВ МОГУТ ТАКЖЕ ВСТРЕЧАТЬСЯ В ОПЕРАТО-
РАХ ОПИСАНИЯ ТИПА И ОПЕРАТОРЕ "COMMON",   НО   ВНУТРИ  ОДНОГО
ПРОГРАММНОГО МОДУЛЯ ИДЕНТИФИКАТОР МАССИВА  МОЖЕТ  ВСТРЕТИТЬСЯ
ТОЛЬКО В ОДНОМ ОПИСАНИИ МАССИВА.

        ОПЕРАТОР "DIMENCION" НЕ ДОЛЖЕН ИМЕТЬ МЕТКИ.

        НАПРИМЕР:

        DIMENCION BAL(7,8,12)
        DIMENCION A(4,4,4),B(2,19),S(50)
        DIMENCION MAS(3,3,3,3)





                              - 113 -

                          00014-01.35.02



        5.5.4. ОПЕРАТОР "COMMON"



        ОПЕРАТОР "COMMON" ОПРЕДЕЛЯЕТ ОДНУ ИЛИ БОЛЕЕ  НЕПРЕРЫВ-
НЫХ ОБЛАСТЕЙ,   КОТОРЫЕ   НАЗЫВАЮТСЯ   ОБЩИМИ БЛОКАМИ (БЛОКАМИ
COMMON). БЛОКУ COMMON МОЖЕТ   В   ОПЕРАТОРЕ  COMMON БЫТЬ ПРИС-
ВОЕНО ИМЯ. ТАКИЕ БЛОКИ НАЗЫВЮТСЯ ИМЕНОВАННЫМИ.   ЕСЛИ   ИМЯ НЕ
ЗАДАНО,   БЛОК НАЗЫВАЕТСЯ   НЕИМЕНОВАННЫМ ОБЩИМ БЛОКОМ. ОПЕРА-
ТОР "COMMON" ТАКЖЕ ОПРЕДЕЛЯЕТ   ПОРЯДОК  СЛЕДОВАНИЯ ПЕРЕМЕННЫХ
И МАССИВОВ, СОСТАВЛЯЮЩИХ КАЖДЫЙ ОБЩИЙ БЛОК.

        ДОПУСКАЕТСЯ ОБРАЩЕНИЕ К ДАННЫМ ОБЩЕГО БЛОКА ИЗ РАЗЛИЧ-
НЫХ   ПРОГРАММНЫХ   МОДУЛЕЙ ПО ОДНОМУ И ТОМУ ЖЕ ИДЕНТИФИКАТОРУ
БЛОКА.

        ОПЕРАТОР "COMMON" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

         COMMON [/[A]/K]  [[,]/[A]/K]...

ГДЕ

A
      - ИДЕНТИФИКАТОР, ЯВЛЯЮЩИЙСЯ ИМЕНЕМ   ОБЩЕГО   БЛОКА, ИЛИ
        ПРОБЕЛ;   ЕСЛИ   ПЕРВЫЙ  ИДЕНТИФИКАТОР ОПУЩЕН, ТО ПЕР-
        ВАЯ ПАРА НАКЛОННЫХ ЧЕРТ   ТАКЖЕ МОЖЕТ БЫТЬ ОПУЩЕНА;

K
      - СПИСОК ИДЕНТИФИКАТОРОВ    ПЕРЕМЕННЫХ,  ИДЕНТИФИКАТОРОВ
        МАССИВОВ И ОПИСАТЕЛЕЙ МАССИВОВ,   РАЗДЕЛЕННЫХ    ЗАПЯ-
        ТЫМИ.

        ИДЕНТИФИКАТОР  ОБЩЕГО  БЛОКА  В  ВЫПОЛНЯЕМОЙ ПРОГРАММЕ
МОЖЕТ БЫТЬ ТАКИМ ЖЕ,   КАК   ИДЕНТИФИКАТОР ПЕРЕМЕННОЙ ИЛИ МАС-
СИВА, НО НЕ ДОЛЖЕН СОВПАДАТЬ   С   ИДЕНТИФИКАТОРОМ ФУНКЦИИ ИЛИ
ПОДПРОГРАММЫ ИЛИ С ИДЕНТИФИКАТОРОМ   ТОЧКИ   ВХОДА  В  ФУНКЦИЮ
ИЛИ ПОДПРОГРАММУ.

        ПРИ КОМПОНОВКЕ  ВЫПОЛНЯЕМОЙ ПРОГРАММЫ ВСЕ ОБЩИЕ БЛОКИ,
ИМЕЮЩИЕ ОДНО И ТО ЖЕ ИМЯ   В   РАЗНЫХ   ПРОГРАММНЫХ   МОДУЛЯХ,
БУДУТ РАЗМЕЩЕНЫ В ОДНОЙ И ТОЙ ЖЕ ОБЛАСТИ ПАМЯТИ.

        ВВИДУ  ТОГО,   ЧТО   ЗАНЕСЕНИЕ  ЭЛЕМЕНТОВ В ОБЩИЙ БЛОК
ВЫПОЛНЯЕТСЯ ПОСЛЕДОВАТЕЛЬНО ОДИН  ЗА  ДРУГИМ,   ТО   ЭЛЕМЕНТЫ,
ОБ'ЯВЛЕННЫЕ В ОПЕРАТОРЕ  "COMMON"   В ОДНОМ ПРОГРАММНОМ МОДУЛЕ
ДОЛЖНЫ СООТВЕТСТВОВАТЬ  ПО  ТИПУ  ДАННЫХ ЭЛЕМЕНТАМ, ПОМЕЩАЕМЫМ
В ОБЩИЙ БЛОК  В  ДРУГОМ  ПРОГРАММНОМ  МОДУЛЕ.   НАПРИМЕР, ЕСЛИ
ОДИН ПРОГРАММНЫЙ МОДУЛЬ СОДЕРЖИТ ОПЕРАТОР

        COMMON COUNT

А ДРУГОЙ ПРОГРАММНЫЙ МОДУЛЬ СОДЕРЖИТ ОПЕРАТОР

        COMMON MORES

ТО МОЖЕТ  ПОЛУЧИТЬСЯ   НЕКОРРЕКТНЫЙ  РЕЗУЛЬТАТ, ТАК КАК ОДНОС-
ЛОВНАЯ ПЕРЕМЕННАЯ "MORES" ПОСТАВЛЕНА  В  СООТВЕТСТВИЕ  ВЕЩЕСТ-
ВЕННОЙ ПЕРЕМЕННОЙ "COUNT", ПРЕДСТАВЛЕННОЙ  БОЛЬШИМ   КОЛИЧЕСТ-
ВОМ СЛОВ.




                              - 114 -

                          00014-01.35.02


        СЛЕДУЕТ ОБРАЩАТЬ ВНИМАНИЕ НА ВНЕСЕНИЕ ЭЛЕМЕНТОВ  ТИПА
"LOGICAL*1" В ОБЩИЙ БЛОК, ЧТОБЫ ОБЕСПЕЧИВАТЬ ВЫРАВНИВАНИЕ  ПО
ГРАНИЦЕ СЛОВА ДАННЫХ ЛЮБЫХ ДРУГИХ ТИПОВ,   РАЗМЕЩАЕМЫХ  ПОСЛЕ
ДАННЫХ "LOGICAL*1". ВСЕ ОБЩИЕ БЛОКИ   НАЧИНАЮТСЯ  В  ПАМЯТИ С
ГРАНИЦЫ СЛОВА (С ЧЕТНОГО АДРЕСА).

        ПРИМЕРЫ:

     ГОЛОВНАЯ ПРОГРАММА             ПОДПРОГРАММА
     COMMON НЕТ,X/BLK/ITEM,Q        SUBROUTINE SCM
              .                     COMMON/BLK/LERO,R//A,B
              .                             .
              .                             .
     CALL SUM                       RETURN
              .                     END
              .

ОПЕРАТОР "COMMON" В ГОЛОВНОЙ ПРОГРАММЕ ПОМЕЩАЕТ  "НЕТ"  И "X"
В НЕИМЕНОВАННЫЙ ОБЩИЙ БЛОК И ПОМЕЩАЕТ "ITEM"  И  "Q" В ИМЕНО-
ВАННЫЙ БЛОК "BLK". ОПЕРАТОРЫ "COMMON" В ПОДПРОГРАММЕ    УСТА-
НАВЛИВАЮТ СООТВЕТСТВИЕ МЕЖДУ "A" И "B" С ОДНОЙ   СТОРОНЫ    И
"НЕТ" И "X" С ДРУГОЙ СТОРОНЫ В НЕИМЕНОВАННОМ БЛОКЕ,   А ТАКЖЕ
МЕЖДУ "LERO" И "R" С ОДНОЙ СТОРОНЫ И "ITEM" И "Q"   С  ДРУГОЙ
СТОРОНЫ В ОБЩЕМ БЛОКЕ "BLK".



        5.5.4.1. ИМЕНОВАННЫЙ И НЕИМЕНОВАННЫЙ ОБЩИЕ БЛОКИ


        ВО ВСЕЙ ВЫПОЛНЯЕМОЙ  ПРОГРАММЕ МОЖЕТ БЫТЬ ТОЛЬКО ОДИН
НЕИМЕНОВАННЫЙ ОБЩИЙ БЛОК.    ОПЕРАТОРЫ   "COMMON"  МОГУТ БЫТЬ
ИСПОЛЬЗОВАНЫ ДЛЯ ПОСТРОЕНИЯ   ЛЮБОГО  ЧИСЛА ИМЕНОВАННЫХ ОБЩИХ
БЛОКОВ.

        ПЕРЕМЕННЫМ ИЗ ИМЕНОВАННОГО   И  НЕИМЕНОВАННОГО БЛОКОВ
МОЖНО ПРИСВАИВАТЬ НАЧАЛЬНЫЕ ЗНАЧЕНИЯ ОПЕРАТОРОМ "DATA".



        5.5.4.2. ОПЕРАТОРЫ "COMMON" С ОПИСАТЕЛЯМИ
                 МАССИВОВ


        В ОПЕРАТОРЕ "COMMON"   МОГУТ  ИСПОЛЬЗОВАТЬСЯ ОПИСАНИЯ
МАССИВОВ.   ИДЕНТИФИКАТОРЫ МАССИВОВ НЕ ДОЛЖНЫ БЫТЬ ИНДЕКСИРО-
ВАНЫ  (НЕ ДОПУСКАЕТСЯ  ПРИПИСЫВАНИЕ К ОБЩЕМУ  БЛОКУ ОТДЕЛЬНЫХ
ЭЛЕМЕНТОВ МАССИВА).   В ПРОГРАММНОМ МОДУЛЕ ИДЕНТИФИКАТОР МАС-
СИВА МОЖЕТ ВСТРЕТИТЬСЯ ТОЛЬКО В ОДНОМ ОПИСАНИИ МАССИВА.
                              - 115 -

                          00014-01.35.02


        5.5.5. ОПЕРАТОР "еяуижаленце"


        ОПЕРАТОР "еяуижаленце" ОПИСЫВАЕТ ДВА ИЛИ БОЛЕЕ  ОБ'ЕК-
ТОВ КАК РАЗМЕЩАЕМЫЕ (ПОЛНОСТЬЮ ИЛИ ЧАСТИЧНО)  В  ОДНОЙ  И  ТОЙ
ЖЕ ОБЛАСТИ ПАМЯТИ.  ОПЕРАТОРЫ   "еяуижаленце"  РАБОТАЮТ С ЭЛЕ-
МЕНТАМИ, НАХОДЯЩИМИСЯ В ОДНОМ И ТОМ ЖЕ ПРОГРАММНОМ МОДУЛЕ.

        ОПЕРАТОР "еяуижаленце" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

                еяуижаленце (к1) ш,(к2)щ...

ГДЕ

ки
      - СПИСОК                         ОПЕРАТОР
                                  "еяуижаленце (а,б,с)";
        еяуижаленце (б(1),ь), (б(2),ы), (б(3),з)




                              - 116 -

                          00014-01.35.02


        5.5.5.1. УСТАНОВЛЕНИЕ ЭКВИВАЛЕНТНОСТИ МАССИВОВ


        ПРИ УСТАНОВЛЕНИИ ЭКВИВАЛЕНТНОСТИ МЕЖДУ ДВУМЯ ЭЛЕМЕНТАМИ
РАЗНЫХ МАССИВОВ ОПЕРАТОР "еяуижаленце"   ТАКЖЕ    УСТАНАВЛИВАЕТ
ЭКВИВАЛЕНТНОСТЬ МЕЖДУ ОСТАЛЬНЫМИ СООТВЕТСТВУЮЩИМИ    ЭЛЕМЕНТАМИ
ЭТИХ ДВУХ МАССИВОВ.О   ОБЛАСТИ  ВЕЩЕСТВЕННОЙ
ПЕРЕМЕННОЙ. СМЕШИВАНИЕ ПОДОБНЫМ   ОБРАЗОМ   РАЗЛИЧНЫХ    ТИПОВ
ДАННЫХ ЯВЛЯЕТСЯ ДОПУСТИМЫМ.   НЕСКОЛЬКО  ЭЛЕМЕНТОВ ОДНОГО ТИПА
ДАННЫХ МОГУТ РАЗДЕЛЯТЬ   ПАМЯТЬ   С   ОДНИМ ЭЛЕМЕНТОМ, ИМЕЮШИМ
ТИП ДАННЫХ БОЛЕЕ ВЫСОКОГО РАНГА. НАПРИМЕР:

        доубле прецисион ден
        интегер*2 иас(4)
        еяуижаленце (ден,иас(1))

ОПЕРАТОР   "еяуижаленсе"  ВЫЗЫВАЕТ ТАКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ,
ПРИ   КОТОРОМ   ЧЕТЫРЕ   ЭЛЕМЕНТА МАССИВА ЗАНИМАЮТ ТУ ЖЕ САМУЮ
ОБЛАСТЬ ПАМЯТИ, ЧТО И ПЕРЕМЕННАЯ С ДВОЙНОЙ ТОЧНОСТЬЮ "ден".

        ОПЕРАТОР  "еяуижаленце" МОЖЕТ ТАКЖЕ ИСПОЛЬЗОВАТЬСЯ ДЛЯ
УКАЗАНИЯ  ЭКВИВАЛЕНТНОСТИ   ИДЕНТИФИКАТОРОВ ПЕРЕМЕННЫХ. НАПРИ-
МЕР, ОПЕРАТОР

        еяуижаленце (ф1,ф2,ф3)

УСТАНАВЛИВАЕТ   ЭКВИВАЛЕНТНОСТЬ   ИДЕНТИФИКАТОРОВ  "ф1", "ф2",
"ф3" ПРИ УСЛОВИИ, ЧТО ОНИ ИМЕЮТ ОДИНАКОВЫЙ ТИП ДАННЫХ.

        ОПЕРАТОР "еяуижаленце" В ПОДПРОГРАММЕ НЕ ДОЛЖЕН СОДЕР-
ЖАТЬ ФОРМАЛЬНЫХ ПАРАМЕТРОВ.

ПРИМЕРЫ:

        еяуижаленце (а,б),(б,с)   ВЫПОЛНЯЕТСЯ ТАК ЖЕ, КАК
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ТАКИМ ОБРАЗОМ,     ЕСЛИ   ПЕРВЫЕ  ЭЛЕМЕНТЫ
ДВУХ МАССИВОВ ОДНОЙ   РАЗМЕРНОСТИ   ЭКВИВАЛЕНТНЫ, ТО ОБА МАССИ-
ВА ЦЕЛИКОМ РАЗДЕЛЯЮТ ОДНУ ОБЛАСТЬ  ПАМЯТИ.   ЕСЛИ   ТРЕТИЙ ЭЛЕ-
МЕНТ    5    ЭЛЕМЕНТНОГО   МАССИВА СДЕЛАН ЭКВИВАЛЕНТНЫМ ПЕРВОМУ
ЭЛЕМЕНТУ ДРУГОГО МАССИВА,   ТО   ПОСЛЕДНИЕ ТРИ ЭЛЕМЕНТА ПЕРВОГО
МАССИВА СОВПАДАЮТ В ПАМЯТИ   С   ПЕРВЫМИ  ТРЕМЯ ЭЛЕМЕНТАМИ ВТО-
РОГО МАССИВА.

        ОПЕРАТОР "еяуижаленце" НЕ МОЖЕТ  ВЫДЕЛИТЬ  ОДНУ И ТУ ЖЕ
ОБЛАСТЬ ПАМЯТИ ДВУМ   ИЛИ   НЕСКОЛЬКИМ  ЭЛЕМЕНТАМ ОДНОГО И ТОГО
ЖЕ МАССИВА.   ЗАПРЕЩАЮТСЯ ТАКЖЕ   ЛЮБЫЕ  ПРИСВАИВАНИЯ  ОБЛАСТЕЙ
ПАМЯТИ,  НАРУШАЮЩИЕ   НОРМАЛЬНОЕ   ПОСЛЕДОВАТЕЛЬНОЕ ЗАПОМИНАНИЕ
ЭЛЕМЕНТОВ   МАССИВА   В  ПАМЯТИ (НАПРИМЕР, УСТАНОВЛЕНИЕ ЭКВИВА-
ЛЕНТНОСТИ   МЕЖДУ   ДВУМЯ ПЕРВЫМИ ЭЛЕМЕНТАМИ РАЗНЫХ МАССИВОВ, А
ЗАТЕМ   ПОПЫТКА   УСТАНОВЛЕНИЯ   ЭКВИВАЛЕНТНОСТИ   МЕЖДУ ВТОРЫМ
ЭЛЕМЕНТОМ ОДНОГО МАССИВА И ШЕСТЫМ ЭЛЕМЕНТОМ ДРУГОГО).

        В ОПЕРАТОРЕ  "еяуижаленце" (И ТОЛЬКО В НЕМ) ДОПУСКАЕТСЯ
УКАЗАНИЕ   ЭЛЕМЕНТА   МАССИВА  ПО ОДНОМУ ИНДЕКСУ (Т.Е. ПОСЛЕДО-
ВАТЕЛЬНОМУ   НОМЕРУ   ЭЛЕМЕНТА),   ДАЖЕ   ЕСЛИ  ЭТОТ МАССИВ БЫЛ
ОПРЕДЕЛЕН КАК МНОГОМЕРНЫЙ.

        НАПРИМЕР, ОПЕРАТОРЫ

         дименсион том(2,2),тер(2,2,2)
         еяуижаленце (том(4),тер(7))

ВЫЗОВУТ   РАЗДЕЛЕНИЕ   ВСЕМ  МАССИВОМ "том" ЧАСТИ ОБЛАСТИ ПАМЯ-
ТИ, ПРЕДНАЗНАЧЕННОЙ ДЛЯ МАССИВА   "тер",   КАК ПОКАЗАНО В ТАБЛ.
5.

                                             ТАБЛИЦА 5
------------------------------------------------------------
         МАССИВ "тер"      !          МАССИВ "том"
---------------------------!----------------!---------------
 ЭЛЕМЕНТ     НОМЕР         !   ЭЛЕМЕНТ      !НОМЕР
 МАССИВА     ЭЛЕМЕНТА      !   МАССИВА      !ЭЛЕМЕНТА
---------------------------!----------------!---------------
 тер(1,1,1)     1          !                !
 тер(2,1,1)     2          !                !
 тер(1,2,1)     3          !                !
 тер(2,2,1)     4          !   том(1,1)     !   1
 тер(1,1,2)     5          !   том(2,1)     !   2
 тер(2,1,2)     6          !   том(1,2)     !   3
 тер(1,2,2)     7          !   том(2,2)     !   4
 тер(2,2,2)     8          !                !

ТАБЛ. 5 ПОКАЗЫВАЕТ, ЧТО ОПЕРАТОРЫ

        еяуижаленце (том(1),тер(4))
  И
        еяуижаленце (тер(1,2,2),том(4))





                              - 117 -

                          00014-01.35.02



В РЕЗУЛЬТАТЕ ДАЮТ ОДНО И ТО ЖЕ РАЗМЕЩЕНИЕ ДВУХ МАССИВОВ.


        5.5.5.2. ВЗАИМОДЕЙСТВИЕ ОПЕРАТОРОВ "цоммон" И
                 "еяуижаленце"


        ПРИ УСТАНОВЛЕНИИ ЭКВИВАЛЕНТНОСТИ МЕЖДУ НЕКОТОРЫМ ЭЛЕ-
МЕНТОМ И ОБ'ЕКТОМ, ХРАНЯЩИМСЯ В ОБЩЕМ БЛОКЕ,    ОБЩИЙ    БЛОК
МОЖЕТ БЫТЬ РАСШИРЕН ЗА ЕГО ПЕРВОНАЧАЛЬНЫЕ ГРАНИЦЫ.   ОПЕРАТОР
"еяуижаленце" МОЖЕТ РАСШИРИТЬ ОБЩИЙ   БЛОК   ТОЛЬКО   ЗА СЧЕТ
РАСШИРЕНИЯ ОБЛАСТИ ЗА ПОСЛЕДНИЙ   ЭЛЕМЕНТ      ПРЕДВАРИТЕЛЬНО
ПОСТРОЕННОГО ОБЩЕГО БЛОКА (НО НЕ ЗА СЧЕТ   ПОМЕЩЕНИЯ ДОПОЛНИ-
ТЕЛЬНОЙ ОБЛАСТИ ПЕРЕД ПЕРВЫМ ЭЛЕМЕНТОМ СУЩЕСТВУЮЩЕГО   ОБЩЕГО
БЛОКА).

        ПРИМЕР ДОПУСТИМОГО РАСШИРЕНИЯ ОБЩЕГО БЛОКА:

         дименсион ц(4),е(6)
         цоммон ц
         еяуижаленце (ц(2),е(1))

   СУЩЕСТВУЮЩИЙ   ОБЩИЙ  БЛОК     ОБЛАСТЬ  РАСШИРЕНЯ

   ц(1)  ц(2)    ц(3)   ц(4)
         е(1)    е(2)   е(3)       е(4)  е(5)  е(6)

        ПРИМЕР НЕДОПУСТИМОГО РАСШИРЕНИЯ ОБЩЕГО БЛОКА:

         дименсион ц(4), е(6)
         цоммон
         еяуижаленце (ц(2),е(3))

        ОБЛАСТЬ         СУЩЕСТВУЮЩИЙ          ОБЛАСТЬ
      РАСШИРЕНИЯ        ОБЩИЙ БЛОК            РАСШИРЕНИЯ
                    ц(1)  ц(2)   ц(3)   ц(4)
         е(1)       е(2)  е(3)   е(4)   е(5)   е(6)

        ЕСЛИ ДВА ЭЛЕМЕНТА ПРИПИСАНЫ ОДНОМУ И ТОМУ ЖЕ  ОБЩЕМУ
БЛОКУ ИЛИ РАЗНЫМ ОБЩИМ БЛОКАМ, МЕЖДУ НИМИ НЕЛЬЗЯ  УСТАНАВЛИ-
ВАТЬ ЭКВИВАЛЕНТНОСТЬ.


        5.5.5.3. ОПЕРАТОР "еяуижаленце" И МАССИВЫ ТИПА
                 "логицал*1"

        ЕСЛИ ЭЛЕМЕНТ МАССИВА ТИПА "логицал*1",   КОТОРЫЙ НЕ
ВЫРАВНЕН ПО ГРАНИЦЕ СЛОВА,   УСТАНАВЛИВАЕТСЯ  ЭКВИВАЛЕНТНЫМ
МАССИВУ ИЛИ ПЕРЕМЕННОЙ ДРУГОГО ТИПА ДАННЫХ,  ЭТО МОЖЕТ ВЫЗ-
ВАТЬ ТАКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ, ПРИ КОТОРОМ ПЕРЕМЕННАЯ ИЛИ
ВСЕ ЭЛЕМЕНТЫ МАССИВА ДАННЫХ ТИПА,   НЕ   СОВПАДАЮЩЕГО     С
логицал*1 (ИЛИ быте), НЕ БУДУТ ВЫРАВНЕНЫ ПО ГРАНИЦЕ СЛОВА.
ЕСЛИ ЭТО ПРОИЗОЙДЕТ, ТО ПОПЫТКА ОБРАТИТЬСЯ К ТАКОЙ ПЕРЕМЕН-
НОЙ ИЛИ ЭЛЕМЕНТАМ ТАКОГО МАССИВА ВЫЗОВЕТ ОШИБКУ  ПРИ ВЫПОЛ-




                              - 118 -

                          00014-01.35.02


НЕНИИ ПРОГРАММЫ.


        5.5.6. ОПЕРАТОР "еьтернал"


        ОПЕРАТОР "еьтернал" ПОЗВОЛЯЕТ ИСПОЛЬЗОВАТЬ ИДЕНТИФИКА-
ТОРЫ ВНЕШНИХ ПРОЦЕДУР (ФУНКЦИЙ, ПОДПРОГРАММ   И   БИБЛИОТЕЧНЫХ
ФУНКЦИЙ ФОРТРАН) В КАЧЕСТВЕ ФАКТИЧЕСКИХ ПАРАМЕТРОВ   ДЛЯ  ДРУ-
ГИХ ПОДПРОГРАММ. ОПЕРАТОР "еьтернал" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

        еьтернал жш,жщ...

ГДЕ

ж
      - ИДЕНТИФИКАТОР ПОДПРОГРАММЫ   ИЛИ   ИДЕНТИФИКАТОР  ФОР-
        МАЛЬНОГО ПАРАМЕТРА, КОТОРЫЙ ПОСТАВЛЕН   В   СООТВЕТСТ-
        ВИЕ ИДЕНТИФИКАТОРУ ПОДПРОГРАММЫ.

        ОПЕРАТОР "еьтернал" ОБ'ЯВЛЯЕТ КАЖДЫЙ  ИДЕНТИФИКАТОР ИЗ
СПИСКА КАК ИДЕНТИФИКАТОР ВНЕШНЕЙ ПРОЦЕДУРЫ.   ТАКОЙ  ИДЕНТИФИ-
КАТОР ЗАТЕМ МОЖЕТ ИСПОЛЬЗОВАТЬСЯ   КАК   ФАКТИЧЕСКИЙ  ПАРАМЕТР
ДЛЯ ПОДПРОГРАММЫ. ПОСЛЕ ЭТОГО ПОДПРОГРАММА   МОЖЕТ   ИСПОЛЬЗО-
ВАТЬ ИДЕНТИФИКАТОР СООТВЕТСТВУЮЩЕГО   ФОРМАЛЬНОГО    ПАРАМЕТРА
ДЛЯ ОБРАЩЕНИЯ К ФУНКЦИИ ИЛИ В ОПЕРАТОРЕ "цалл".

        НЕОБХОДИМО ЗАМЕТИТЬ, ЧТО ПОЛНОЕ ОБРАЩЕНИЕ  К  ФУНКЦИИ,
ИСПОЛЬЗУЕМОЕ В КАЧЕСТВЕ ПАРАМЕТРА, НАПРИМЕР:

        цалл субр(е,сорт(б),ц)

ПРЕДСТАВЛЯЕТ ЗНАЧЕНИЕ, А НЕ ИДЕНТИФИКАТОР ПОДПРОГРАММЫ;
ИДЕНТИФИКАТОР ФУНКЦИИ   НЕ НУЖДАЕТСЯ   В ОБ'ЯВЛЕНИИ ОПЕРАТОРОМ
"еьтернал".

        ПРИМЕР:

         ГОЛОВНАЯ ПРОГРАММА          ПОДПРОГРАММЫ
 еьтернал син,цос,тан             суброутине триг(ь,ф,ы)
     .                            ы=ф(ь)
     .                            ретурн
 цалл триг(арц,син,сец)           енд
     .
     .
 цалл триг(арц,цос,цор)
     .
     .                            фунцтион тан(ь)
 цалл триг(арц,тан,тгн)           тан=син(ь)/цос(ь)
     .                            ретурн
     .                            енд

КАЖДЫЙ ОПЕРАТОР "цалл" ПЕРЕСЫЛАЕТ   ИДЕНТИФИКАТОР  ФУНКЦИИ  В
ПОДПРОГРАММУ "триг". ФУНКЦИЯ ЗАТЕМ ВЫЗЫВАЕТСЯ ОБРАЩЕНИЕМ    К
ФУНКЦИИ ф(ь) ВО ВТОРОМ ОПЕРАТОРЕ ПОДПРОГРАММЫ "триг".   ТАКИМ
ОБРАЗОМ, РЕЗУЛЬТАТОМ РАБОТЫ ВТОРОГО ОПЕРАТОРА БУДЕТ:




                              - 119 -

                          00014-01.35.02


                ы=син(ь)
                ы=цос(ь)
      ИЛИ
                ы=тан(ь)

В   ЗАВИСИМОСТИ  ОТ ТОГО, КАКОЙ ИЗ ОПЕРАТОРОВ "цалл" ОБРАЩАЕТ-
СЯ  К  "триг"   (ФУНКЦИЯ "син" И "цос" ЯВЛЯЮТСЯ ПРИМЕРАМИ ТРИ-
ГОНОМЕТРИЧЕСКИХ   ФУНКЦИЙ,   КОТОРЫЕ   ЯВЛЯЮТСЯ  БИБЛИОТЕЧНЫМИ
ФУНКЦИЯМИ ФОРТРАН).



        5.5.7. ОПЕРАТОР "дата"


        ОПЕРАТОР ПРИСВАИВАНИЯ НАЧАЛЬНЫХ ЗНАЧЕНИЙ "дата" ПОЗВО-
ЛЯЕТ   ВЫПОЛНИТЬ  ПРИСВАИВАНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ ПЕРЕМЕННЫМ И
ЭЛЕМЕНТАМ МАССИВА ЕЩЕ ДО ВЫПОЛНЕНИЯ ПРОГРАММЫ.


        ОПЕРАТОР "дата" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

        дата к/цонст/шш,щк/цонст/щ...

ГДЕ

к
      - СПИСОК,   СОСТОЯЩИЙ   ИЗ  ОДНОГО ИЛИ БОЛЕЕ ИДЕНТИФИКА-
        ТОРОВ   ПЕРЕМЕННЫХ,   ИДЕНТИФИКАТОРОВ   МАССИВОВ   ИЛИ
        ИДЕНТИФИКАТОРОВ   ЭЛЕМЕНТОВ   МАССИВОВ;  ВСЕ ЭТИ ИДЕН-
        ТИФИКАТОРЫ    ОТДЕЛЯЮТСЯ   ДРУГ   ОТ   ДРУГА ЗАПЯТЫМИ;
        ИНДЕКСНЫЕ ВЫРАЖЕНИЯ ДОЛЖНЫ БЫТЬ КОНСТАНТАМИ;

цонст
      - СПИСОК КОНСТАНТ;   КОНСТАНТЫ  ИМЕЮТ  ОДНУ ИЗ СЛЕДУЮЩИХ
        ФОРМ:

               ж ИЛИ н*ж

н
      - НЕНУЛЕВАЯ   ЦЕЛАЯ   КОНСТАНТА   БЕЗ ЗНАКА, КОТОРАЯ УКА-
        ЗЫВАЕТ, СКОЛЬКО РАЗ ЗНАЧЕНИЕ   "ж"   ДОЛЖНО  БЫТЬ ПРИС-
        ВОЕНО   ПОСЛЕДОВАТЕЛЬНЫМ   ЭЛЕМЕНТАМ   ИЗ СООТВЕТСТВУЮ-
        ШЕГО СПИСКА.

        ОПЕРАТОР   "дата" ВЫЗЫВАЕТ ПРИСВАИВАНИЕ ПОСТОЯННЫХ ЗНА-
ЧЕНИЙ ИЗ КАЖДОГО  СПИСКА   "цонст"   ЭЛЕМЕНТАМ  ИЗ  ПРЕДЫДУЩЕГО
СПИСКА "к".   ПРИСВАИВАНИЕ   ЗНАЧЕНИЙ  ВЫПОЛНЯЕТСЯ В ТОМ ПОРЯД-
КЕ, В КАКОМ ОНИ РАСПОЛОЖЕНЫ.

        ЕСЛИ  В  ОПЕРАТОРЕ "дата" ВСТРЕЧАЕТСЯ НЕИНДЕКСИРОВАННЫЙ
ИДЕНТИФИКАТОР   МАССИВА,   ТО ВЫПОЛНЯЕТСЯ ПРИСВАИВАНИЕ ЗНАЧЕНИЙ
КАЖДОМУ ЭЛЕМЕНТУ ЭТОГО МАССИВА.   ТАКИМ   ОБРАЗОМ СООТВЕТСТВУЮ-
ЩИЙ СПИСОК  КОНСТАНТ  ДОЛЖЕН  СОДЕРЖАТЬ  ДОСТАТОЧНОЕ КОЛИЧЕСТВО
ВЕЛИЧИН,  ЧТОБЫ ЗАПОЛНИТЬ ВЕСЬ  МАССИВ.   ЗАПОЛНЕНИЕ  ЭЛЕМЕНТОВ
МАССИВА ВЫПОЛНЯЕТСЯ В ПОРЯДКЕ ИНДЕКСНОЙ ПРОГРЕССИИ.

        ЕСЛИ ВЫПОЛНЯЕТСЯ  ПРИСВАИВАНИЕ ТЕКСТОВЫХ КОНСТАНТ ПЕРЕ-
МЕННОЙ ИЛИ ЭЛЕМЕНТУ МАССИВА,   ЧИСЛО  БАЙТОВ,   КОТОРОЕ   МОЖЕТ

                             - 121 -

                       00014 - 01.35.02

ПОДПРОГРАММЫ, ТОЧКИ ВХОДА ИЛИ ОБЩЕГО БЛОКА ЭТОЙ ПРОГРАММЫ.


                     6. ПОДПРОГРАММЫ


     ВСЕ ПОДПРОГРАММЫ ФОРТРАН ДЕЛЯТСЯ НА ДВА ОБЩИХ  КЛАССА:
ПОДПРОГРАММЫ, НАПИСАННЫЕ ПОЛЬЗОВАТЕЛЕМ,И ПОДПРОГРАММЫ, ПРЕ-
ДОСТАВЛЯЕМЫЕ СИСТЕМОЙ ФОРТРАН. ПОДПРОГРАММЫ  ТАКЖЕ  ДЕЛЯТСЯ
НА СЛЕДУЮЩИЕ КАТЕГОРИИ:  АРИФМЕТИЧЕСКИЕ  ОПЕРАТОРЫ-ФУНКЦИИ,
ПОДПРОГРАММЫ-ФУНКЦИИ И ПОДПРОГРАММЫ.


     6.1. ПАРАМЕТРЫ ПОДПРОГРАММ


     ПАРАМЕТРЫ ПОДПРОГРАММ ОПИСЫВАЮТСЯ ДВАЖДЫ - В ВИДЕ ФОР-
МАЛЬНЫХ ПАРАМЕТРОВ И В ВИДЕ ФАКТИЧЕСКИХ ПАРАМЕТРОВ.

     ФОРМАЛЬНЫЕ ПАРАМЕТРЫ ИСПОЛЬЗУЮТСЯ В ОПРЕДЕЛЕНИИ  ПОДП-
РОГРАММЫ  ДЛЯ  ПРЕДСТАВЛЕНИЯ  СООТВЕТСТВУЮЩИХ   ФАКТИЧЕСКИХ
ПАРАМЕТРОВ. ФОРМАЛЬНЫЕ ПАРАМЕТРЫ ПРИСУТСТВУЮТ В  ОПЕРАТОРАХ
"FUNCTION" И "SUBROUTINE" ИЛИ В ОПРЕДЕЛЕНИИ АРИФМЕТИЧЕСКОГО
ОПЕРАТОРА-ФУНКЦИИ  КАК   НЕИНДЕКСИРОВАННЫЕ   ИДЕНТИФИКАТОРЫ
ПЕРЕМЕННЫХ. ФАКТИЧЕСКИЕ ПАРАМЕТРЫ ПРИСУТСТВУЮТ В  ОБРАЩЕНИИ
К ФУНКЦИИ ИЛИ В ОПЕРАТОРЕ "CALL" И ОБЕСПЕЧИВАЮТ ФАКТИЧЕСКИЕ
ЗНАЧЕНИЯ, КОТОРЫЕ ДОЛЖНЫ  ИСПОЛЬЗОВАТЬСЯ  ПРИ  ВЫЧИСЛЕНИЯХ.
ФАКТИЧЕСКИЕ ПАРАМЕТРЫ МОГУТ БЫТЬ КОНСТАНТАМИ,  ПЕРЕМЕННЫМИ,
МАССИВАМИ, ЭЛЕМЕНТАМИ МАССИВОВ, ВЫРАЖЕНИЯМИ ИЛИ ИДЕНТИФИКА-
ТОРАМИ ПОДПРОГРАММ.

     МЕЖДУ ФАКТИЧЕСКИМИ И ФОРМАЛЬНЫМИ ПАРАМЕТРАМИ  УСТАНАВ-
ЛИВАЕТСЯ СООТВЕТСТВИЕ ВО ВРЕМЯ ПЕРЕДАЧИ УПРАВЛЕНИЯ В  ПОДП-
РОГРАММУ. ФАКТИЧЕСКИЙ И ФОРМАЛЬНЫЙ ПАРАМЕТРЫ, МЕЖДУ КОТОРЫ-
МИ УСТАНАВЛИВАЕТСЯ СООТВЕТСТВИЕ,  ДОЛЖНЫ  ИМЕТЬ  ОДИНАКОВЫЙ
ТИП ДАННЫХ.  ФОРМАЛЬНЫЙ  ПАРАМЕТР,  ОПИСАННЫЙ  КАК  МАССИВ,
МОЖЕТ БЫТЬ ПОСТАВЛЕН В СООТВЕТСТВИЕ  МАССИВУ  ИЛИ  ЭЛЕМЕНТУ
МАССИВА.

     ЕСЛИ ФАКТИЧЕСКИМ ПАРАМЕТРОМ ЯВЛЯЕТСЯ КОНСТАНТА,  ВЫРА-
ЖЕНИЕ ИЛИ ИДЕНТИФИКАТОР ПОДПРОГРАММЫ, ПОДПРОГРАММА НЕ ДОЛЖ-
НА ИЗМЕНЯТЬ ЗНАЧЕНИЕ СООТВЕТСТВУЮЩЕГО ФОРМАЛЬНОГО  ПАРАМЕТ-
РА.

     ФОРМАЛЬНЫЕ ПАРАМЕТРЫ НЕ ДОЛЖНЫ ВСТРЕЧАТЬСЯ В  ОПЕРАТО-
РАХ "COMMON", "EQUIVALENCE" И "DATA".











                         - 122 -

                   00014 - 01.35.02

     6.2. ПОЛЬЗОВАТЕЛЬСКИЕ ПОДПРОГРАММЫ


     ПЕРЕДАЧА УПРАВЛЕНИЯ ФУНКЦИИ (ПОДПРОГРАММЕ-ФУНКЦИИ  ИЛИ
ОПЕРАТОРУ-ФУНКЦИИ) ОСУЩЕСТВЛЯЕТСЯ ПО ОБРАЩЕНИЮ К ФУНКЦИИ, В
ТО ВРЕМЯ КАК ПЕРЕДАЧА УПРАВЛЕНИЯ ПОДПРОГРАММЕ ОСУЩЕСТВЛЯЕТ-
СЯ ПО ОПЕРАТОРУ "CALL". ОБРАЩЕНИЕ  К  ФУНКЦИИ  ПРЕДСТАВЛЯЕТ
СОБОЙ ИДЕНТИФИКАТОР ФУНКЦИИ СО СПИСКОМ ПАРАМЕТРОВ,  КОТОРЫЙ
ВСТРЕЧАЕТСЯ В ВЫРАЖЕНИИ. ФУНКЦИЯ ВСЕГДА ПЕРЕДАЕТ  РЕЗУЛЬТАТ
В ВЫЗЫВАЮЩУЮ ПРОГРАММУ. КАК  ФУНКЦИИ,  ТАК  И  ПОДПРОГРАММЫ
МОГУТ ПЕРЕДАВАТЬ В ВЫЗЫВАЮЩУЮ ПРОГРАММУ НЕКОТОРЫЕ  ДОПОЛНИ-
ТЕЛЬНЫЕ ЗНАЧЕНИЯ, ПРИСВАИВАЯ ИХ СВОИМ ПАРАМЕТРАМ.  ПОДПРОГ-
РАММА МОЖЕТ ОБРАЩАТЬСЯ К ДРУГИМ ПОДПРОГРАММАМ,  НО  ОНА  НЕ
МОЖЕТ ПРЯМО ИЛИ КОСВЕННО ОБРАЩАТЬСЯ К САМОЙ СЕБЕ.


     6.2.1. АРИФМЕТИЧЕСКИЕ ОПЕРАТОРЫ-ФУНКЦИИ


     АРИФМЕТИЧЕСКИЙ  ОПЕРАТОР-ФУНКЦИЯ  ПРЕДСТАВЛЯЕТ   СОБОЙ
ПРОЦЕДУРУ, ОПРЕДЕЛЯЕМУЮ ОТДЕЛЬНЫМ ОПЕРАТОРОМ; ЭТОТ ОПЕРАТОР
ПОХОЖ НА АРИФМЕТИЧЕСКИЙ  ОПЕРАТОР  ПРИСВАИВАНИЯ.  ПОЯВЛЕНИЕ
ОБРАЩЕНИЯ К ФУНКЦИИ  ВНУТРИ  ТОГО  ЖЕ  ПРОГРАММНОГО  МОДУЛЯ
ВЫЗЫВАЕТ ВЫПОЛНЕНИЕ ВЫЧИСЛЕНИЙ И ПЕРЕДАЧУ ПОЛУЧЕННОГО  ЗНА-
ЧЕНИЯ В ТО ВЫРАЖЕНИЕ, В  КОТОРОМ  ВСТРЕТИЛОСЬ  ОБРАЩЕНИЕ  К
ОПЕРАТОРУ-ФУНКЦИИ.

     АРИФМЕТИЧЕСКИЙ ОПЕРАТОР-ФУНКЦИЯ ОПРЕДЕЛЯЕТСЯ СЛЕДУЮЩЕЙ
КОНСТРУКЦИЕЙ:

      F(P[,P]...) = E

 ГДЕ

F
       - ИДЕНТИФИКАТОР ФУНКЦИИ;

P
       - ФОРМАЛЬНЫЙ ПАРАМЕТР;

E
       - ВЫРАЖЕНИЕ.

ВЫРАЖЕНИЕ  ПРЕДСТАВЛЯЕТ  СОБОЙ  АРИФМЕТИЧЕСКОЕ   ВЫРАЖЕНИЕ,
ОПРЕДЕЛЯЮЩЕЕ ВЫЧИСЛЕНИЯ,  КОТОРЫЕ  ВЫПОЛНЯЮТСЯ  ОПЕРАТОРОМ-
ФУНКЦИЕЙ.

     ОБРАЩЕНИЕ К ОПЕРАТОРУ-ФУНКЦИИ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

      F([P[,P]...])

 ГДЕ

F
       - ИДЕНТИФИКАТОР ФУНКЦИИ;








                            - 123 -

                      00014 - 01.35.02

P
       - ФАКТИЧЕСКИЙ ПАРАМЕТР.

     ПРИ ПОЯВЛЕНИИ В ВЫРАЖЕНИИ ОПЕРАТОРА-ФУНКЦИИ ВЫПОЛНЯЕТ-
СЯ ПОДСТАНОВКА ФАКТИЧЕСКИХ ПАРАМЕТРОВ НА  МЕСТО  СООТВЕТСТ-
ВУЮЩИХ ИМ ФОРМАЛЬНЫХ ПАРАМЕТРОВ  В  ОПРЕДЕЛЕНИИ  ОПЕРАТОРА-
ФУНКЦИИ. ПОСЛЕ ЭТОГО  ВЫПОЛНЯЕТСЯ  ВЫЧИСЛЕНИЕ  ВЫРАЖЕНИЯ  И
ПОЛУЧЕННОЕ ЗНАЧЕНИЕ ИСПОЛЬЗУЕТСЯ ДЛЯ ВЫЧИСЛЕНИЯ  ВЫРАЖЕНИЯ,
СОДЕРЖАЩЕГО ОБРАЩЕНИЕ К ФУНКЦИИ.

     ТИП  РЕЗУЛЬТАТА  ОПЕРАТОРА-ФУНКЦИИ  ОПРЕДЕЛЯЕТСЯ  ЛИБО
НЕЯВНЫМ ОБРАЗОМ ПО ПЕРВОЙ БУКВЕ  ИДЕНТИФИКАТОРА  ОПЕРАТОРА-
ФУНКЦИИ, ЛИБО ЯВНЫМ ОБРАЗОМ В ОПЕРАТОРЕ ОПИСАНИЯ ТИПА ЭТОГО
ИМЕНИ.

     ФОРМАЛЬНЫЕ  ПАРАМЕТРЫ  В  ОПРЕДЕЛЕНИИ  АРИФМЕТИЧЕСКОГО
ОПЕРАТОРА-ФУНКЦИИ СЛУЖАТ ТОЛЬКО  ДЛЯ  УКАЗАНИЯ  КОЛИЧЕСТВА,
ПОРЯДКА РАСПОЛОЖЕНИЯ И ТИПА ФАКТИЧЕСКИХ ПАРАМЕТРОВ.  ТЕ  ЖЕ
САМЫЕ ИМЕНА МОГУТ ИСПОЛЬЗОВАТЬСЯ  ДЛЯ  ПРЕДСТАВЛЕНИЯ  ЛЮБЫХ
ДРУГИХ ОБ'ЕКТОВ В ЛЮБОМ МЕСТЕ ДАННОГО ПРОГРАММНОГО  МОДУЛЯ.
НЕОБХОДИМО ЗАМЕТИТЬ, ЧТО ЗА ИСКЛЮЧЕНИЕМ ТИПА ДАННЫХ  ОПИСЫ-
ВАЮЩАЯ ИНФОРМАЦИЯ (ТАКАЯ КАК РАСПОЛОЖЕНИЕ В ОБЩЕМ БЛОКЕ ИЛИ
ОПИСАНИЕ МАССИВА), ОТНОСЯЩАЯСЯ К ТАКОМУ ОБ'ЕКТУ,  НИКАК  НЕ
ОТНОСИТСЯ К ФОРМАЛЬНЫМ ПАРАМЕТРАМ ОПЕРАТОРА-ФУНКЦИИ.  ИДЕН-
ТИФИКАТОР  АРИФМЕТИЧЕСКОГО   ОПЕРАТОРА-ФУНКЦИИ   НЕ   МОЖЕТ
ИСПОЛЬЗОВАТЬСЯ ДЛЯ ПРЕДСТАВЛЕНИЯ НИКАКОГО ДРУГОГО ОБ'ЕКТА В
ТОМ ЖЕ ПРОГРАММНОМ МОДУЛЕ.

     ВЫРАЖЕНИЕ В ОПРЕДЕЛЕНИИ ОПЕРАТОРА-ФУНКЦИИ МОЖЕТ СОДЕР-
ЖАТЬ ОБРАЩЕНИЯ К ФУНКЦИЯМ. ЕСЛИ В ЭТОМ ВЫРАЖЕНИИ ВСТРЕЧАЕТ-
СЯ ОБРАЩЕНИЕ К ДРУГОМУ  ОПЕРАТОРУ-ФУНКЦИИ,  ТО  НЕОБХОДИМО,
ЧТОБЫ ВЫЗЫВАЕМЫЙ БЫЛ ОПРЕДЕЛЕН РАНЕЕ.

     ВСЕ  ОБРАЩЕНИЯ  К  АРИФМЕТИЧЕСКОМУ   ОПЕРАТОРУ-ФУНКЦИИ
ДОЛЖНЫ БЫТЬ РАСПОЛОЖЕНЫ В ТОМ ЖЕ ПРОГРАММНОМ МОДУЛЕ, ЧТО  И
ОПРЕДЕЛЕНИЕ ЭТОЙ ФУНКЦИИ.

     ОБРАЩЕНИЕ К ОПЕРАТОРУ-ФУНКЦИИ МОЖЕТ БЫТЬ  ЛИБО  ЧАСТЬЮ
ВЫРАЖЕНИЯ, ЛИБО САМИМ ВЫРАЖЕНИЕМ. ОНО НЕ  ДОЛЖНО  ИСПОЛЬЗО-
ВАТЬСЯ В КАЧЕСТВЕ ЛЕВОЙ  ЧАСТИ  В  ОПЕРАТОРЕ  ПРИСВАИВАНИЯ.
ФАКТИЧЕСКИЕ ПАРАМЕТРЫ ПО СВОЕМУ КОЛИЧЕСТВУ, ПОРЯДКУ  РАСПО-
ЛОЖЕНИЯ И ТИПУ ДОЛЖНЫ СООТВЕТСТВОВАТЬ  ФОРМАЛЬНЫМ  ПАРАМЕТ-
РАМ. ПЕРЕД ЛЮБЫМ ОБРАЩЕНИЕМ  К  АРИФМЕТИЧЕСКОМУ  ОПЕРАТОРУ-
ФУНКЦИИ ФАКТИЧЕСКИМ ПАРАМЕТРАМ ДОЛЖНЫ БЫТЬ ПРИСВОЕНЫ ЗНАЧЕ-
НИЯ.

     ПРИМЕРЫ ОПРЕДЕЛЕНИЯ АРИФМЕТИЧЕСКИХ ОПЕРАТОРОВ-ФУНКЦИЙ:

          VALUE(RADIUS)=4.189*RADIUS**3
          SER(X)=(EXP(X)-EXP(-X))*2.5
          WEG(A,B,C,5.0)=(A+B+C)/5.0

ПОСЛЕДНЯЯ  ЗАПИСЬ  НЕДОПУСТИМА;  ЗАПРЕЩАЕТСЯ   ИСПОЛЬЗОВАТЬ
КОНСТАНТУ В КАЧЕСТВЕ  ФОРМАЛЬНОГО  ПАРАМЕТРА.  ОБРАЩЕНИЯ  К
АРИФМЕТИЧЕСКИМ ОПЕРАТОРАМ-ФУНКЦИЯМ:

          ARC(A,B,C)=(A+B+C)/5.0 ! ОПРЕДЕЛЕНИЕ
          VEROC=ARC(TECO1,TECO2,XLEB)
          IF (ARC(P,Q,D).LT.ARC(X,Y,Z)) GOTO 600









                            - 124 -

                      00014 - 01.35.02


          FINIS =  ARC(TECO3,TECO4,MET2)

ПОСЛЕДНЯЯ ЗАПИСЬ НЕВЕРНА; ТИП ДАННЫХ ТРЕТЬЕГО  ФАКТИЧЕСКОГО
ПАРАМЕТРА НЕ СОВПАДАЕТ С ТИПОМ ДАННЫХ ФОРМАЛЬНОГО  ПАРАМЕТ-
РА.



     6.2.2. ПОДПРОГРАММА-ФУНКЦИЯ



     ПОДПРОГРАММА-ФУНКЦИЯ  ПРЕДСТАВЛЯЕТ  СОБОЙ  ПРОГРАММНЫЙ
МОДУЛЬ, НАЧИНАЮЩИЙСЯ С  ОПЕРАТОРА  "FUNCTION",  ЗА  КОТОРЫМ
ИДЕТ ПОСЛЕДОВАТЕЛЬНОСТЬ ОПЕРАТОРОВ,  ОПРЕДЕЛЯЮЩИХ  ВЫЧИСЛИ-
ТЕЛЬНУЮ  ПРОЦЕДУРУ.  ПЕРЕДАЧА  УПРАВЛЕНИЯ  В  ПОДПРОГРАММУ-
ФУНКЦИЮ ОСУЩЕСТВЛЯЕТСЯ ПО ОБРАЩЕНИЮ К  ФУНКЦИИ,  А  ВОЗВРАТ
УПРАВЛЕНИЯ В ВЫЗЫВАЮЩИЙ ПРОГРАММНЫЙ  МОДУЛЬ  ОСУЩЕСТВЛЯЕТСЯ
ПО ОПЕРАТОРУ "RETURN".

     ПОДПРОГРАММА-ФУНКЦИЯ ПЕРЕДАЕТ В ВЫЗЫВАЮЩИЙ ПРОГРАММНЫЙ
МОДУЛЬ ЕДИНСТВЕННОЕ ЗНАЧЕНИЕ, ПРИСВАИВАЯ ЭТО ЗНАЧЕНИЕ ИМЕНИ
ФУНКЦИИ. ТИП  ДАННЫХ  ПЕРЕДАВАЕМОГО  ЗНАЧЕНИЯ  ОПРЕДЕЛЯЕТСЯ
ТИПОМ ИДЕНТИФИКАТОРА ФУНКЦИИ.

     ОПЕРАТОР "FUNCTION" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

      [TYP]FUNCTION NAM[*N][([P[P]...])]

 ГДЕ

TYP
      - УКАЗАТЕЛЬ ТИПА ДАННЫХ ИМЕНИ ФУНКЦИИ;

NAM
      - ИДЕНТИФИКАТОР ФУНКЦИИ;

*N
      - УКАЗАТЕЛЬ ДЛИНЫ ТИПА ДАННЫХ;

P
      - ФОРМАЛЬНЫЕ ПАРАМЕТРЫ.

    ОБРАЩЕНИЕ К ФУНКЦИИ, ПЕРЕДАЮЩЕЕ УПРАВЛЕНИЕ ПОДПРОГРАМ-
МЕ-ФУНКЦИИ, ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

      NAM ([P[,P]...])

 ГДЕ

NAM
      - ИМЯ ФУНКЦИИ;

Р
      - ФАКТИЧЕСКИЙ ПАРАМЕТР.

     КОГДА УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ В ПОДПРОГРАММУ-ФУНКЦИЮ,  В
ОПЕРАТОРЕ "FUNCTION" ПРОИСХОДИТ ЗАМЕНА ФОРМАЛЬНЫХ  ПАРАМЕТ-
РОВ ЗНАЧЕНИЯМИ СООТВЕТСТВУЮЩИХ ФАКТИЧЕСКИХ ПАРАМЕТРОВ. ПОС-










                      - 125 -

                00014 - 01.35.02


ЛЕ ЭТОГО ВЫПОЛНЯЮТСЯ ОПЕРАТОРЫ ПОДПРОГРАММЫ. ПЕРЕД ВЫПОЛНЕ-
НИЕМ ОПЕРАТОРА "RETURN" В ПОДПРОГРАММЕ-ФУНКЦИИ  ИДЕНТИФИКА-
ТОРУ ФУНКЦИИ ДОЛЖНО БЫТЬ ПРИСВОЕНО  ЗНАЧЕНИЕ.  ПОСЛЕ  ТОГО,
КАК УПРАВЛЕНИЕ ВЕРНЕТСЯ В  ВЫЗЫВАЮЩИЙ  ПРОГРАММНЫЙ  МОДУЛЬ,
ЗНАЧЕНИЕ, ПРИСВОЕННОЕ ИДЕНТИФИКАТОРУ ФУНКЦИИ, БУДЕТ ДОСТУП-
НЫМ ДЛЯ ВЫРАЖЕНИЯ, СОДЕРЖАЩЕГО ОБРАЩЕНИЯ К ФУНКЦИИ, И БУДЕТ
ИСПОЛЬЗОВАНО ДЛЯ ВЫЧИСЛЕНИЯ ЗНАЧЕНИЯ ЭТОГО ВЫРАЖЕНИЯ.

     ТИП ДАННЫХ ИДЕНТИФИКАТОРА МОЖЕТ  БЫТЬ  ОПРЕДЕЛЕН  ЛИБО
НЕЯВНО, ЛИБО ЯВНО В ОПЕРАТОРЕ "FUNCTION", ЛИБО ЯВНО В  ОПЕ-
РАТОРЕ ОПИСАНИЯ ТИПА. ТИП ИДЕНТИФИКАТОРА  ФУНКЦИИ,  ОПРЕДЕ-
ЛЯЕМЫЙ В ПОДПРОГРАММЕ-ФУНКЦИИ, ДОЛЖЕН БЫТЬ ТАКИМ ЖЕ, КАК  И
ТИП ИДЕНТИФИКАТОРА-ФУНКЦИИ В ВЫЗЫВАЮЩЕМ ПРОГРАММНОМ МОДУЛЕ.

     ОПЕРАТОР "FUNCTION" ДОЛЖЕН БЫТЬ  ПЕРВЫМ  ОПЕРАТОРОМ  В
ПОДПРОГРАММЕ-ФУНКЦИИ. ОН НЕ ДОЛЖЕН ИМЕТЬ МЕТКУ.

     ПОДПРОГРАММА-ФУНКЦИЯ  НЕ  ДОЛЖНА  СОДЕРЖАТЬ   ОПЕРАТОР
"SUBROUTINE", "BLOCK DATA" ИЛИ ДРУГОЙ ОПЕРАТОР  "FUNCTION",
ОТЛИЧНЫЙ ОТ ЕЕ ПЕРВОГО ОПЕРАТОРА.

     ПРИМЕР:

      FUNCTION ROOT(B)
      X=1.0
   3  EX=EXP(X)
      EPIC=1./EX
      ROOT=((EX+EPIC)*.5+COS(X)-B)/((EX-EPIC)*.5-SIN(X))
      IF(ABS(X-ROOT).LT.1E-6) RETURN
      X=ROOT
      GO TO 3
      END

     В ЭТОМ ПРИМЕРЕ ПОДПРОГРАММА-ФУНКЦИЯ ИСПОЛЬЗУЕТ  ИТЕРА-
ЦИОННЫЙ МЕТОД НЬЮТОНА-РАФСОНА ДЛЯ ВЫЧИСЛЕНИЯ КОРНЯ  УРАВНЕ-
НИЯ:

      F(X)= COSH(X)+COS(X)-B=0

ЗНАЧЕНИЕ   "В"   ПЕРЕСЫЛАЕТСЯ   В    КАЧЕСТВЕ    ПАРАМЕТРА.
ИТЕРАЦИОННАЯ ФОРМУЛА ДЛЯ ЭТОГО КОРНЯ ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

    X(I+1)=X(I) - [COSH(XI)+COS(XI)-B]/[SINH(XI)-SIN(XI)]

ЭТО ВЫЧИСЛЕНИЕ ПОВТОРЯЕТСЯ ДО ТЕХ ПОР, ПОКА РАЗНОСТЬ  МЕЖДУ
"X(I)" И "X(I+1)" НЕ СТАНЕТ МЕНЬШЕ, ЧЕМ  1*10**(-6).  ПОДП-
РОГРАММА-ФУНКЦИЯ ИСПОЛЬЗУЕТ  БИБЛИОТЕЧНЫЕ  ФУНКЦИИ  ФОРТРАН
"EXP", "SIN", "COS" И "ABS".



     6.2.3. ПОДПРОГРАММА



     ПОДПРОГРАММА ЯВЛЯЕТСЯ ПРОГРАММНЫМ МОДУЛЕМ, НАЧИНАЮЩИМ-
СЯ С ОПЕРАТОРА "SUBROUTINE", ЗА КОТОРЫМ ИДЕТ ПОСЛЕДОВАТЕЛЬ-
НОСТЬ ОПЕРАТОРОВ,  ОПРЕДЕЛЯЮЩИХ  ВЫЧИСЛИТЕЛЬНУЮ  ПРОЦЕДУРУ.
ПЕРЕДАЧА УПРАВЛЕНИЯ ПОДПРОГРАММЕ ОСУЩЕСТВЛЯЕТСЯ ПО ОПЕРАТО-

                           - 126 -

                     00014 - 01.35.02


РУ "CALL", А ВОЗВРАТ В ВЫЗЫВАЮЩИЙ ПРОГРАММНЫЙ МОДУЛЬ  -  ПО
ОПЕРАТОРУ "RETURN".

     ОПЕРАТОР "SUBROUTINE" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

          SUBROUTINE NAM[([P[,P]...])]

 ГДЕ

NAM
       - ИДЕНТИФИКАТОР ПОДПРОГРАММЫ;

Р
       - ФОРМАЛЬНЫЙ ПАРАМЕТР.

     ПРИ  ПЕРЕДАЧЕ  УПРАВЛЕНИЯ  В  ПОДПРОГРАММУ  ФОРМАЛЬНЫЕ
ПАРАМЕТРЫ  ОПЕРАТОРА  "SUBROUTINE"  ЗАМЕНЯЮТСЯ  ЗНАЧЕНИЯМИ,
ИСПОЛЬЗУЕМЫМИ КАК ФАКТИЧЕСКИЕ ПАРАМЕТРЫ В ОПЕРАТОРЕ "CALL".
ПОСЛЕ ЭТОГО ВЫПОЛНЯЮТСЯ ОПЕРАТОРЫ ПОДПРОГРАММЫ.

     ОПЕРАТОР "SUBROUTINE" ОБЯЗАН  БЫТЬ  ПЕРВЫМ  ОПЕРАТОРОМ
ПОДПРОГРАММЫ; У НЕГО НЕ ДОЛЖНО БЫТЬ МЕТКИ.

     ПОДПРОГРАММА НЕ МОЖЕТ СОДЕРЖАТЬ ОПЕРАТОРОВ "FUNCTION",
"BLOCK DATA" ИЛИ "SUBROUTINE" (ЗА ИСКЛЮЧЕНИЕМ ПЕРВОГО  ОПЕ-
РАТОРА ПОДПРОГРАММЫ).

     ПРИМЕР:

                ГОЛОВНАЯ ПРОГРАММА

      COMMON NFACES,ERCE,VOLUME
      ACCEPT 70,NFACES,ERCE
   70 FORMAT (I2,F8.5)
      CALL OBMNG
      TYPE 72,VOLUME
   72 FORMAT (' OB''EM=',F8.5)
      STOP
      END

          ПОДПРОГРАММА

      SUBROUTINE OBMNG
      COMMON NFACES, ERCE, VOLUME
      CUBED =ERCE**3
      GO TO (6,6,6,1,6,2,6,3,6,6,6,4,6,6,6,6,6,6,6,5,6)
     1NFACES
   1  VOLUME = CUBED*0.11785
      RETURN
   2  VOLUME = CUBED
      RETURN
   3  VOLUME = CUBED*0.47140
      RETURN
   4  VOLUME = CUBED*7.66312
      RETURN
   5  VOLUME = CUBED*2.18170
      RETURN
   6  TYPE 25,NFACES
   25 FORMAT(' НЕПРАВИЛЬНЫЙ МНОГОГРАННИК ИМЕЕТ',I3,










                            - 127 -

                      00014 - 01.35.02


     1'ГРАНЕЙ.')
      RETURN
      END

В ЭТОМ ПРИМЕРЕ  ПОДПРОГРАММА  ВЫЧИСЛЯЕТ  ОБ'ЕМ  ПРАВИЛЬНОГО
МНОГОГРАННИКА, ЗАДАННОГО ЧИСЛОМ ГРАНЕЙ И ДЛИНОЙ РЕБРА.  ОНА
ИСПОЛЬЗУЕТ ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА "GO TO" ДЛЯ  ОПРЕ-
ДЕЛЕНИЯ ТОГО, ЯВЛЯЕТСЯ ЛИ ДАННЫЙ  МНОГОГРАННИК  ТЕТРАЭДРОМ,
ГЕКСАЭДРОМ, ДОДЕКАЭДРОМ  ИЛИ  ИКОСАЭДРОМ,  И  ДЛЯ  ПЕРЕДАЧИ
УПРАВЛЕНИЯ СООТВЕТСТВУЮЩЕЙ ПРОЦЕДУРЕ ДЛЯ ВЫЧИСЛЕНИЯ ОБ'ЕМА.
ЕСЛИ ЧИСЛО ГРАНЕЙ ТЕЛА ОТЛИЧНО ОТ 4, 6, 8, 12 ИЛИ 20, ПОДП-
РОГРАММА ВЫВОДИТ СООБЩЕНИЕ ОБ ОШИБКЕ НА ТЕРМИНАЛ ОПЕРАТОРА.




     6.2.4. ПОДПРОГРАММА ДАННЫХ "BLOCK DATA"



     ПОДПРОГРАММА  ДАННЫХ  ИСПОЛЬЗУЕТСЯ  ДЛЯ   ПРИСВАИВАНИЯ
НАЧАЛЬНЫХ  ЗНАЧЕНИЙ  ОБ'ЕКТАМ,  НАХОДЯЩИМСЯ  В  ИМЕНОВАННЫХ
ОБЩИХ БЛОКАХ, ОДНОВРЕМЕННО С ОПРЕДЕЛЕНИЕМ ЭТИХ БЛОКОВ.  ОНА
НАЧИНАЕТСЯ С ИЗ ОПЕРАТОРА "BLOCK DATA", ЗА КОТОРЫМ  СЛЕДУЕТ
РЯД ОПЕРАТОРОВ ОПИСАНИЯ.

     ОПЕРАТОР "BLOCK DATA" ИМЕЕТ СЛЕДУЮЩИЙ ВИД:

      BLOCK DATA [NAM]

 ГДЕ

NAM
       - ИДЕНТИФИКАТОР.

     В ПОДПРОГРАММЕ ДАННЫХ РАЗРЕШЕНО ИСПОЛЬЗОВАТЬ СЛЕДУЮЩИЕ
ОПЕРАТОРЫ: ОПЕРАТОРЫ ОПИСАНИЯ ТИПА,  ОПЕРАТОРЫ  "IMPLICIT",
"DIMENTION", "COMMON", "EQUIVALENCE" И "DATA".

     ОПЕРАТОРЫ ОПИСАНИЯ В  ПОДПРОГРАММЕ  ДАННЫХ  ОПРЕДЕЛЯЮТ
ОБЩИЕ БЛОКИ, РАЗМЕЩАЮТ ПЕРЕМЕННЫЕ И МАССИВЫ В ЭТИХ БЛОКАХ И
ПРИСВАИВАЮТ НАЧАЛЬНЫЕ ЗНАЧЕНИЯ ЭТИМ ЭЛЕМЕНТАМ.

     ОПЕРАТОР "BLOCK DATA" ОБЯЗАН  БЫТЬ  ПЕРВЫМ  ОПЕРАТОРОМ
ПОДПРОГРАММЫ ДАННЫХ. ОН НЕ ДОЛЖЕН ИМЕТЬ МЕТКУ.

     ПОДПРОГРАММА ДАННЫХ НЕ  ДОЛЖНА  СОДЕРЖАТЬ  ВЫПОЛНЯЕМЫХ
ОПЕРАТОРОВ.

     ЕСЛИ В ПОДПРОГРАММЕ ДАННЫХ ЗАДАЮТСЯ НАЧАЛЬНЫЕ ЗНАЧЕНИЯ
НЕКОТОРОГО ЭЛЕМЕНТА ИМЕНОВАННОГО ОБЩЕГО БЛОКА, ТО  В  ПОДП-
РОГРАММЕ ДОЛЖЕН ПРИСУТСТВОВАТЬ ПОЛНЫЙ НАБОР ОПЕРАТОРОВ ОПИ-
САНИЯ, ЗАДАЮЩИХ ВЕСЬ БЛОК, ДАЖЕ ЕСЛИ НЕКОТОРЫЕ ИЗ ЭЛЕМЕНТОВ
ЭТОГО БЛОКА НЕ ПОЯВЛЯЮТСЯ В ОПЕРАТОРЕ "DATA". ОДНОЙ  И  ТОЙ
ЖЕ ПОДПРОГРАММОЙ  МОГУТ  БЫТЬ  ОПРЕДЕЛЕНЫ  НЕСКОЛЬКО  ОБЩИХ
БЛОКОВ.

     ПРИМЕР:








                       - 128 -

                 00014 - 01.35.02


       BLOCK DATA
       INTEGER X,Y
       LOGICAL Q,W
       DOUBLE PRECISION D
       DIMENSION R(4)
       COMMON/BLK1/R,X,Q,D,BLK2,W,Y,Z
       DATA R/2.0,3*4.0/,Q/.FALSE./,D/0.317638D-7/,W
      1/.TRUE./Z/3.5/
       END



     6.2.5. БИБЛИОТЕЧНЫЕ ФУНКЦИИ ФОРТРАНА



     ПЕРЕЧЕНЬ БИБЛИОТЕЧНЫХ ФУНКЦИЙ ФОРТРАНА ПРИВЕДЕН В ПРИ-
ЛОЖЕНИИ 2. ОБРАЩЕНИЯ К БИБЛИОТЕЧНЫМ ФУНКЦИЯМ ФОРТРАН  ЗАПИ-
СЫВАЮТСЯ В ТАКОМ ЖЕ ВИДЕ, КАК И ОБРАЩЕНИЯ К  ПОЛЬЗОВАТЕЛЬС-
КИМ ФУНКЦИЯМ. НАПРИМЕР:

      R= ABS(X-1)

ВЫПОЛНЯЕТ ВЫЧИСЛЕНИЕ АБСОЛЮТНОГО ЗНАЧЕНИЯ "Х-1" И  ПРИСВАИ-
ВАЕТ ПОЛУЧЕННОЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ "R".

     В ПРИЛОЖЕНИИ 2 ТАКЖЕ УКАЗЫВАЕТСЯ ТИП РЕЗУЛЬТАТА КАЖДОЙ
БИБЛИОТЕЧНОЙ ФУНКЦИИ И ТИП ФАКТИЧЕСКИХ ПАРАМЕТРОВ. ПАРАМЕТ-
РЫ, ПЕРЕДАВАЕМЫЕ В ЭТИ ФУНКЦИИ, НЕ ДОЛЖНЫ БЫТЬ  ИДЕНТИФИКА-
ТОРАМИ МАССИВОВ ИЛИ ИДЕНТИФИКАТОРАМИ ПОДПРОГРАММ.








                        - 129 -

                  00014 - 01.35.02



                 7. sredstwa otladki



     otlado~nymi sredstwami qzyka fortran-IV ЯВЛЯЮТСЯ СИЛЬ-
НО РАЗВИТЫЕ СИСТЕМЫ ДИАГНОСТИКИ НА ЭТАПЕ  ТРАНСЛЯЦИИ  ПРОГ-
РАММЫ И НА ЭТАПЕ ЕЕ ВЫПОЛНЕНИЯ.

     ДОПОЛНИТЕЛЬНЫМ ОТЛАДОЧНЫМ СРЕДСТВОМ МОГУТ БЫТЬ  ОПЕРА-
ТОРЫ ЯЗЫКА ФОРТРАН, ИМЕЮЩИЕ СИМВОЛ "D" В ПЕРВОЙ ПОЗИЦИИ.











                           - 130 -

                     00014 - 01.35.02



                                               ПРИЛОЖЕНИЕ 1



                       НАБОРЫ СИМВОЛОВ






                 1. НАБОР СИМВОЛОВ ФОРТРАН IV



     В НАБОР СИМВОЛОВ ФОРТРАН IV ВХОДЯТ:

       - БУКВЫ ОТ "A" ДО "Z" (ЛАТИНСКИЕ) И БУКВЫ  КИРИЛЛИЦЫ
         ОТ "А" ДО "Я";

       - ЦИФРЫ ОТ 0 ДО 9;

       - СПЕЦИАЛЬНЫЕ СИМВОЛЫ, ПРИВЕДЕНННЫЕ НИЖЕ:

           СИМВОЛ          НАЗВАНИЕ

                       ПРОБЕЛ, ПРОПУСК ИЛИ ТАБУЛЯЦИЯ
             =         РАВНО
             +         ПЛЮС
             -         МИНУС
             *         ЗВЕЗДОЧКА
             /         НАКЛОННАЯ ЧЕРТА
             (         ОТКРЫВАЮЩАЯ СКОБКА
             )         ЗАКРЫВАЮЩАЯ СКОБКА
             ,         ЗАПЯТАЯ
             .         ДЕСЯТИЧНАЯ ТОЧКА
             '         АПОСТРОФ
             "         КАВЫЧКИ
             ¤         ЗНАК ДЕНЕЖНОЙ ЕДИНИЦЫ
             :         ДВОЕТОЧИЕ.

     БУКВЫ  КИРИЛЛИЦЫ  МОГУТ  ИСПОЛЬЗОВАТЬСЯ  В  ОПЕРАТОРАХ
ФОРТРАНА ТОЛЬКО В СОСТАВЕ ХОЛЛЕРИТОВСКОЙ КОНСТАНТЫ ИЛИ БУК-
ВЕННО-ЦИФРОВОГО ЛИТЕРАЛА. В  КОММЕНТАРИЯХ  МОГУТ  ИСПОЛЬЗО-
ВАТЬСЯ ЛЮБЫЕ СИМВОЛЫ КОИ-7.

                            - 131 -

                      00014 - 01.35.02


                     2. СИМВОЛЬНЫЙ КОД




     В ТАБЛ. 1 ПРИВЕДЕНЫ ВОСЬМЕРИЧНЫЕ ЗНАЧЕНИЯ ЗНАКОВ  СИМ-
ВОЛЬНОГО КОДА (КОИ-7), МЕЖДУНАРОДНОЕ  ОБОЗНАЧЕНИЕ,  РУССКОЕ
ОБОЗНАЧЕНИЕ И СПОСОБ НАБОРА С КЛАВИАТУРЫ.

                                              ТАБЛИЦА 1

                 НАБОР ЗНАКОВ СИМВОЛЬНОГО КОДА

 ----------------------------------------------------------
 ВОСЬМЕРИЧНЫЙ! МЕЖДУНАРОДНОЕ! РУССКОЕ НАИМЕНОВАНИЕ И СПОСОБ
     КОД     !  ОБОЗНАЧЕНИЕ !   ВВОДА  С  КЛАВИАТУРЫ
 ----------------------------------------------------------
     000     !     NUL      ! ПУСТО
             !              !
     001     !     SOH      ! НАЧАЛО ЗАГАЛОВКА; CTRL/A*
             !              !
     002     !     STX      ! НАЧАЛО ТЕКСТА; CTRL/B
             !              !
     003     !     ETX      ! КОНЕЦ ТЕКСТА; CTRL/C
             !              !
     004     !     EOT      ! КОНЕЦ ПЕРЕДАЧИ; CTRL/D
             !              !
     005     !     ENQ      ! КТО ТАМ?; CTRL/E
             !              !
     006     !     ACK      ! ПОДТВЕРЖДЕНИЕ; CTRL/F
             !              !
     007     !     BEL      ! ЗВОНОК; CTRL/G
             !              !
     010     !     BS       ! ВОЗВРАТ НА ШАГ; CTRL/H
             !              !
     011     !     HT       ! ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ;
             !              ! CTRL/I
     012     !     LF       ! ПЕРЕВОД СТРОКИ; CTRL/J
             !              !
     013     !     VT       ! ВЕРТИКАЛЬНАЯ ТАБУЛЯЦИЯ;
             !              ! CTRL/K
     014     !     FF       ! ПЕРЕВОД ФОРМАТА; CTRL/L
             !              !
     015     !     CR       ! ВОЗВРАТ КАРЕТКИ; CTRL/M
             !              !
     016     !     SO       ! ВЫХОД; CTRL/N
             !              !
     017     !     SI       ! ВХОД; CTRL/O
             !              !
     020     !     DLE      ! АВТОРЕГИСТР 1; CTRL/P
             !              !
     021     !     DC1      ! СИМВОЛ УПРАВЛЕНИЯ УСТРОЙ-
             !              ! СТВОМ 1; CTRL/Q
     022     !     DC2      ! СИМВОЛ УПРАВЛЕНИЯ УСТРОЙ-
             !              ! СТВОМ 2; CTRL/R










                          - 132 -

                    00014 - 01.35.02




                                     ПРОДОЛЖЕНИЕ ТАБЛ. 1
 ----------------------------------------------------------
 ВОСЬМЕРИЧНЫЙ! МЕЖДУНАРОДНОЕ! РУССКОЕ НАИМЕНОВАНИЕ И СПОСОБ
     КОД     !  ОБОЗНАЧЕНИЕ !   ВВОДА  С  КЛАВИАТУРЫ
 ----------------------------------------------------------
     023     !     DC3      ! СИМВОЛ  УПРАВЛЕНИЯ УСТРОЙ-
             !              ! СТВОМ 3; CTRL/S
     024     !     DC4      ! СТОП; CTRL/T
             !              !
     025     !     NAK      ! ОТРИЦАНИЕ; CTRL/U
             !              !
     026     !     SYN      ! СИНХРОНИЗАЦИЯ; CTRL/V
             !              !
     027     !     ETB      ! КОНЕЦ БЛОКА; CTRL/W
             !              !
     030     !     CAN      ! АННУЛИРОВАНИЕ; CTRL/X
             !              !
     031     !     EM       ! КОНЕЦ НОСИТЕЛЯ; CTRL/Y
             !              !
     032     !     SUB      ! ЗАМЕНА; CTRL/Z
             !              !
     033     !     ESC      ! АВТОРЕГИСТР 2;
             !              !
     034     !     FS       ! РАЗДЕЛИТЕЛЬ ФАЙЛОВ;
             !              !
             !              !
     035     !     GS       ! РАЗДЕЛИТЕЛЬ ГРУПП;
             !              !
             !              !
     036     !     RS       ! РАЗДЕЛИТЕЛЬ ЗАПИСЕЙ;
             !              !
             !              !
     037     !     US       ! РАЗДЕЛИТЕЛЬ ЭЛЕМЕНТОВ;
             !              !
             !              !
     040     !              ! ПРОБЕЛ
             !              !
     041     !     !        ! ВОСКЛИЦАТЕЛЬНЫЙ ЗНАК
             !              !
     042     !     "        ! КАВЫЧКИ
             !              !
     043     !     #        ! НОМЕР
             !              !
     044     !     ¤        ! ЗНАК ДЕНЕЖНОЙ ЕДИНИЦЫ
             !              !
     045     !     %        ! ПРОЦЕНТ
             !              !
     046     !     &        ! КОММЕРЧЕСКОЕ "И"
             !              !
     047     !     '        ! АПОСТРОФ
             !              !
     050     !     (        ! КРУГЛАЯ СКОБКА ЛЕВАЯ
             !              !
     051     !     )        ! КРУГЛАЯ СКОБКА ПРАВАЯ
             !              !
     052     !     *        ! ЗВЕЗДОЧКА











                         - 133 -

                   00014 - 01.35.02




                                     ПРОДОЛЖЕНИЕ ТАБЛ. 1
 ----------------------------------------------------------
 ВОСЬМЕРИЧНЫЙ! МЕЖДУНАРОДНОЕ! РУССКОЕ НАИМЕНОВАНИЕ И СПОСОБ
     КОД     !  ОБОЗНАЧЕНИЕ !   ВВОДА  С  КЛАВИАТУРЫ
 ----------------------------------------------------------
     053     !     +        ! ПЛЮС
             !              !
     054     !     '        ! ЗАПЯТАЯ
             !              !
     055     !     -        ! МИНУС
             !              !
     056     !     .        ! ТОЧКА
             !              !
     057     !     /        ! ДРОБНАЯ ЧЕРТА
             !              !
     060     !     0        ! ЦИФРЫ 0 - 9
             !              !
     061     !     1        !
             !              !
     062     !     2        !
             !              !
     063     !     3        !
             !              !
     064     !     4        !
             !              !
     065     !     5        !
             !              !
     066     !     6        !
             !              !
     067     !     7        !
             !              !
     070     !     8        !
             !              !
     071     !     9        !
             !              !
     072     !     :        ! ДВОЕТОЧИЕ
             !              !
     073     !     ;        ! ТОЧКА С ЗАПЯТОЙ
             !              !
     074     !     <        ! МЕНЬШЕ
             !              !
     075     !     =        ! РАВНО
             !              !
     076     !     >        ! БОЛЬШЕ
             !              !
     077     !     ?        ! ВОПРОСИТЕЛЬНЫЙ ЗНАК
             !              !
     100     !     @        ! КОММЕРЧЕСКОЕ "ЭТ"
             !              !
     101     !     A        ! С ЭТОГО ЗНАКА ДО Z - ЛАТИН-
             !              ! СКИЕ ПРОПИСНЫЕ БУКВЫ
     102     !     B        !
             !              !
     103     !     C        !
             !              !
     104     !     D        !














                         - 134 -

                   00014 - 01.35.02




                                     ПРОДОЛЖЕНИЕ ТАБЛ. 1
 ----------------------------------------------------------
 ВОСЬМЕРИЧНЫЙ! МЕЖДУНАРОДНОЕ! РУССКОЕ НАИМЕНОВАНИЕ И СПОСОБ
     КОД     !  ОБОЗНАЧЕНИЕ !   ВВОДА  С  КЛАВИАТУРЫ
 ----------------------------------------------------------
     105     !     E        !
             !              !
     106     !     F        !
             !              !
     107     !     G        !
             !              !
     110     !     H        !
             !              !
     111     !     I        !
             !              !
     112     !     J        !
             !              !
     113     !     K        !
             !              !
     114     !     L        !
             !              !
     115     !     M        !
             !              !
     116     !     N        !
             !              !
     117     !     O        !
             !              !
     120     !     P        !
             !              !
     121     !     Q        !
             !              !
     122     !     R        !
             !              !
     123     !     S        !
             !              !
     124     !     T        !
             !              !
     125     !     U        !
             !              !
     126     !     V        !
             !              !
     127     !     W        !
             !              !
     130     !     X        !
             !              !
     131     !     Y        !
             !              !
     132     !     Z        !
             !              !
     133     !     [        ! КВАДРАТНАЯ СКОБКА ЛЕВАЯ
             !              !
     134     !     \        ! ОБРАТНАЯ ДРОБНАЯ ЧЕРТА
             !              !
     135     !     ]        ! КВАДРАТНАЯ СКОБКА ПРАВАЯ











                         - 135 -

                   00014 - 01.35.02




                                     ПРОДОЛЖЕНИЕ ТАБЛ. 1
 ----------------------------------------------------------
 ВОСЬМЕРИЧНЫЙ! МЕЖДУНАРОДНОЕ! РУССКОЕ НАИМЕНОВАНИЕ И СПОСОБ
     КОД     !  ОБОЗНАЧЕНИЕ !   ВВОДА  С  КЛАВИАТУРЫ
 ----------------------------------------------------------
     136     !     ^        ! СТРЕЛКА ВВЕРХ
             !              !
     137     !     _        ! ПОДЧЕРКИВАНИЕ
             !              !
     140     !     Ю        ! С ЭТОГО ЗНАКА ДО "Ч" -
             !              ! БУКВЫ КИРИЛЛИЦЫ
     141     !     А        !
             !              !
     142     !     Б        !
             !              !
     143     !     Ц        !
             !              !
     144     !     Д        !
             !              !
     145     !     Е        !
             !              !
     146     !     Ф        !
             !              !
     147     !     Г        !
             !              !
     150     !     Х        !
             !              !
     151     !     И        !
             !              !
     152     !     Й        !
             !              !
     153     !     К        !
             !              !
     154     !     Л        !
             !              !
     155     !     М        !
             !              !
     156     !     Н        !
             !              !
     157     !     О        !
             !              !
     160     !     П        !
             !              !
     161     !     Я        !
             !              !
     162     !     Р        !
             !              !
     163     !     С        !
             !              !
     164     !     Т        !
             !              !
     165     !     У        !
             !              !
     166     !     Ж        !


                           - 136 -

                     00014 - 01.35.02


                                    ПРОДОЛЖЕНИЕ ТАБЛ. 1

 ----------------------------------------------------------
 ВОСЬМЕРИЧНЫЙ! МЕЖДУНАРОДНОЕ! РУССКОЕ НАИМЕНОВАНИЕ И СПОСОБ
     КОД     !  ОБОЗНАЧЕНИЕ !   ВВОДА  С  КЛАВИАТУРЫ
 ----------------------------------------------------------
     167     !     В        !
             !              !
     170     !     Ь        !
             !              !
     171     !     Ы        !
             !              !
     172     !     З        !
             !              !
     173     !     Ш        !
             !              !
     174     !     Э        !
             !              !
     175     !     Щ        !
             !              !
     176     !     Ч        !
             !              !
     177     !     DEL      ! ЗАБОЙ
             !              !

*) ЗАПИСЬ ТИПА CTRL/A ОЗНАЧАЕТ, ЧТО ДЛЯ ВВОДА ЗНАКА С  КЛА-
ВИАТУРЫ ТЕРМИНАЛА ТРЕБУЕТСЯ НАЖАТИЕ КЛАВИШИ "А" ПРИ НАЖАТОЙ
КЛАВИШЕ "CTRL".





                3. НАБОР СИМВОЛОВ RADIX-50




     RADIX-50 - ЭТО  СПЕЦИАЛЬНОЕ  ПРЕДСТАВЛЕНИЕ  СИМВОЛЬНЫХ
ДАННЫХ, ПРИ КОТОРОМ В СЛОВО ПАМЯТИ МОЖЕТ БЫТЬ  ПОМЕЩЕНО  ДО
ТРЕХ СИМВОЛОВ  ИЗ  НАБОРА  СИМВОЛОВ  RADIX-50  (ЯВЛЯЮЩЕГОСЯ
ПОДМНОЖЕСТВОМ ЗНАКОВ СИМВОЛЬНОГО КОДА).

     В ТАБЛ. 2 ПРИВЕДЕНЫ СИМВОЛЫ RADIX-50 И  СООТВЕТСТВУЮЩИЕ
ИМ КОДЫ.













                            - 137 -

                      00014 - 01.35.02


                                        ТАБЛИЦА 2

                   НАБОР СИМВОЛОВ RADIX-50

     ----------------------------------------------
        СИМВОЛ     !ЭКВИВАЛЕНТНОЕ !  ЗНАЧЕНИЕ
                   !ЗНАЧЕНИЕ СИМ- !  RADIX-50
                   !ВОЛЬНОГО КОДА !(ВОСЬМЕРИЧНОЕ)
                   !(ВОСЬМЕРИЧНОЕ)!
     ----------------------------------------------
        ПРОБЕЛ     !     40       !       0
                   !              !
         A - Z     !  101 - 132   !     1 - 32
                   !              !
           ¤       !     44       !       33
                   !              !
           .       !     56       !       34
                   !              !
      НЕ ИСП.      !              !       35
                   !              !
          0 - 9    !   60 - 71    !    36 - 47
                   !              !

     ЗАПОМИНАНИЕ ВЕЛИЧИН RADIX-50 ОСУЩЕСТВЛЯЕТСЯ  ПОСРЕДСТ-
ВОМ УПАКОВКИ ИХ (ДО ТРЕХ СИМВОЛОВ В СЛОВО) В ОТДЕЛЬНУЮ ЧИС-
ЛОВУЮ ВЕЛИЧИНУ СОГЛАСНО ФОРМУЛЕ:

                    ((I*50 + J)*50 +K)

ГДЕ

I, J И K

       - ПРЕДСТАВЛЯЮТ КОДЫ СИМВОЛОВ RADIX-50.

     ТАКИМ ОБРАЗОМ, МАКСИМАЛЬНОЙ ВЕЛИЧИНОЙ RADIX-50 БУДЕТ:

              47*50*50 + 47*50 + 47 = 174777

     ТАБЛ. 3 ПОЗВОЛЯЕТ ПРЕДСТАВИТЬ В RADIX-50 НАБОРЫ ДО 3-Х
СИМВОЛОВ. НАПРИМЕР, ДЛЯ НАБОРА СИМВОЛОВ "Х2В" КОД  RADIX-50
ПОЛУЧАЕТСЯ СЛОЖЕНИЕМ СЛЕДУЮЩИХ ВОСЬМЕРИЧНЫХ ЧИСЕЛ:

              Х = 113000
              2 = 002400
              В = 000002
              ----------
            Х2В = 115402










                         - 138 -

                   00014 - 01.35.02


                                         ТАБЛИЦА 3

 ---------------------------------------------------------
  ПЕРВЫЙ СИМВОЛ   !  ВТОРОЙ СИМВОЛ   !  ТРЕТИЙ СИМВОЛ
 ---------------------------------------------------------
 ПРОБЕЛ  000000   ! ПРОБЕЛ  000000   !  ПРОБЕЛ  000000
                  !                  !
 A       003100   !  A      000050   !  A       000001
                  !                  !
 B       006200   !  B      000120   !  B       000002
                  !                  !
 C       011300   !  C      000170   !  C       000003
                  !                  !
 D       014400   !  D      000240   !  D       000004
                  !                  !
 E       017500   !  E      000310   !  E       000005
                  !                  !
 F       022600   !  F      000360   !  F       000006
                  !                  !
 G       025700   !  G      000430   !  G       000007
                  !                  !
 H       031000   !  H      000500   !  H       000010
                  !                  !
 I       034100   !  I      000550   !  I       000011
                  !                  !
 J       037200   !  J      000620   !  J       000012
                  !                  !
 K       042300   !  K      000670   !  K       000013
                  !                  !
 L       045400   !  L      000740   !  L       000014
                  !                  !
 M       050500   !  M      001010   !  M       000015
                  !                  !
 N       053600   !  N      001060   !  N       000016
                  !                  !
 O       056700   !  O      001130   !  O       000017
                  !                  !
 P       062000   !  P      001200   !  P       000020
                  !                  !
 Q       065100   !  Q      001250   !  Q       000021
                  !                  !
 R       070200   !  R      001320   !  R       000022
                  !                  !
 S       073300   !  S      001370   !  S       000023
                  !                  !
 T       076400   !  T      001440   !  T       000024
                  !                  !
 U       101500   !  U      001510   !  U       000025
                  !                  !
 V       104600   !  V      001560   !  V       000026
                  !                  !
 W       107700   !  W      001630   !  W       000027
                  !                  !
 X       113000   !  X      001700   !  X       000030
                  !                  !
 Y       116100   !  Y      001750   !  Y       000031
                  !                  !
 Z       121200   !  Z      002020   !  Z       000032












                        - 139 -

                  00014 - 01.35.02




                                   ПРОДОЛЖЕНИЕ ТАБЛ.3
 ---------------------------------------------------------
  ПЕРВЫЙ СИМВОЛ   !  ВТОРОЙ СИМВОЛ   !  ТРЕТИЙ СИМВОЛ
 ---------------------------------------------------------
 ¤       124300   !  ¤      002070   !  4      000033
                  !                  !
 .       127400   !  .      002140   !  .      000034
                  !                  !
 НЕ ИСП. 132500   ! НЕ ИСП. 002210   ! НЕ ИСП. 000035
                  !                  !
 0       135600   !  0      002260   !  0      000036
                  !                  !
 1       140700   !  1      002330   !  1      000037
                  !                  !
 2       144000   !  2      002400   !  2      000040
                  !                  !
 3       147100   !  3      002450   !  3      000041
                  !                  !
 4       152200   !  4      002520   !  4      000042
                  !                  !
 5       155300   !  5      002570   !  5      000043
                  !                  !
 6       160400   !  6      002640   !  6      000044
                  !                  !
 7       163500   !  7      002710   !  7      000045
                  !                  !
 8       166600   !  8      002760   !  8      000046
                  !                  !
 9       171700   !  9      003030   !  9      000047
                  !                  !














                                - 140 -

                          00014 - 01.35.02


                                               ПРИЛОЖЕНИЕ 2


               ОСНОВНЫЕ СВЕДЕНИЯ О ЯЗЫКЕ ФОРТРАН IV




                             1. ОПЕРАЦИИ


     ОПЕРАЦИИ КАЖДОГО ТИПА ПРИВЕДЕНЫ В ТАБЛ.  1  В  ПОРЯДКЕ
УБЫВАНИЯ ПРИОРИТЕТА.

                                             ТАБЛИЦА 1

                   ОПЕРАЦИИ ФОРТРАНА
 ----------------------------------------------------------
  ТИП      ! ЗНАК  ОПЕРАЦИИ  И        !     ОПЕРАНДЫ
 ОПЕРАЦИИ  !      ОПИСАНИЕ            !
 ----------------------------------------------------------
  АРИФМЕ-  ! ** ВОЗВЕДЕНИЕ В СТЕПЕНЬ  ! АРИФМЕТИЧЕСКИЕ ИЛИ
 ТИЧЕСКИЙ  ! *,/ УМНОЖЕНИЕ, ДЕЛЕНИЕ   !ЛОГИЧЕСКИЕ КОНСТАН-
           ! +,- СЛОЖЕНИЕ, ВЫЧИТАНИЕ, ! ТЫ И ВЫРАЖЕНИЯ
           ! УНАРНЫЕ ПЛЮС И МИНУС     !
 ----------------------------------------------------------
 ОТНОШЕНИЯ ! .GT.  БОЛЬШЕ             ! АРИФМЕТИЧЕСКИЕ ИЛИ
           ! .GE.  БОЛЬШЕ ИЛИ РАВНО   !ЛОГИЧЕСКИЕ КОНСТАН-
           ! .LT.  МЕНЬШЕ             ! ТЫ, ПЕРЕМЕННЫЕ И
           ! .LE.  МЕНЬШЕ ИЛИ РАВНО   !ВЫРАЖЕНИЯ (ВСЕ ОПЕ-
           ! .EQ   РАВНО              ! РАЦИИ ОТНОШЕНИЙ
           ! .NE.  НЕ РАВНО           ! ИМЕЮТ ОДИНАКОВЫЙ
           !                          ! ПРИОРИТЕТ)
 ----------------------------------------------------------
 ЛОГИЧЕСКИЙ!.NOT. .NOT.А ИСТИННО ТОГДА! ЛОГИЧЕСКИЕ ИЛИ
           !      И ТОЛЬКО ТОГДА, КОГ-! ЦЕЛЫЕ КОНСТАНТЫ,
           !      ДА "А" ЛОЖНО        ! ПЕРЕМЕННЫЕ И
           !.AND. A.AND.В ИСТИННО ТОГ-! ВЫРАЖЕНИЯ
           !      ДА И ТОЛЬКО ТОГДА,  !
           !      КОГДА ОБА ОПЕРАНДА  !
           !      "А" И "В" ИСТИННЫ   !
           !.OR.  A.OR.В ИСТИННО ТОГДА!
           !      И ТОЛЬКО ТОГДА, КОГ-!
           !      ДА ЛИБО "А", ЛИБО   !
           !      "В", ЛИБО И "А" И   !
           !      "В" ИСТИННЫ         !
           !.EQV  A.EQV.В ИСТИННО ТОГ-!(ПРИОРИТЕТ ТАКОЙ
           !      ДА, КОГДА "А" И "В" !ЖЕ, КАК И У .X.)
           !      ОБА ИСТИННЫ ИЛИ "А" !
           !      И "В" ОБА ЛОЖНЫ     !
           !.XOR. A.XOR.В ИСТИННО ТОГ-!(ПРИОРИТЕТ ТАКОЙ
           !      ДА И ТОЛЬКО ТОГДА,  !ЖЕ, КАК И У .EQV.)
           !      КОГДА "А" ИСТИННО, А!
           !                          !

                               - 141 -

                         00014 - 01.35.02


                                       ПРОДОЛЖЕНИЕ ТАБЛ.1
 ----------------------------------------------------------
   ТИП     ! ЗНАК  ОПЕРАЦИИ  И        !     ОПЕРАНДЫ
 ОПЕРАЦИИ  !      ОПИСАНИЕ            !
 ----------------------------------------------------------
           !    "В" ЛОЖНО ИЛИ КОГДА   !
           !    "В" ИСТИННО, А  "А"   !
           !    ЛОЖНО                 !



                     2. ОПЕРАТОРЫ



     НИЖЕ ПРИВЕДЕН ПЕРЕЧЕНЬ ОПЕРАТОРОВ ФОРТРАНА, ДАН ОСНОВ-
НОЙ ФОРМАТ КАЖДОГО ОПЕРАТОРА И КРАТКИЕ ПОЯСНЕНИЯ.

АССЕРТ
       - СМ. READ, ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД;
       - СМ. READ, ВВОД ПОД УПРАВЛЕНИЕМ СПИСКА.

 АРИФМЕТИЧЕСКОЕ/ЛОГИЧЕСКОЕ ПРИСВАИВАНИЕ W=A

   W - ИДЕНТИФИКАТОР ПЕРЕМЕННОЙ ИЛИ ИДЕНТИФИКАТОР ЭЛЕМЕНТА
       МАССИВА;
   A - ВЫРАЖЕНИЕ.

       - ПЕРЕМЕННОЙ ПРИСВАИВАЕТСЯ ЗНАЧЕНИЕ  АРИФМЕТИЧЕСКОГО
         ИЛИ ЛОГИЧЕСКОГО ВЫРАЖЕНИЯ.

 АРИФМЕТИЧЕСКИЙ ОПЕРАТОР-ФУНКЦИЯ F([P[,P]...])=E

   F - ИДЕНТИФИКАТОР;
   P - ИДЕНТИФИКАТОР;
   E - ВЫРАЖЕНИЕ.

       - СТРОИТСЯ  ФУНКЦИЯ  ПОЛЬЗОВАТЕЛЯ,  В  КОТОРОЙ   "Р"
         ЯВЛЯЕТСЯ ФОРМАЛЬНЫМ ПАРАМЕТРОМ.  ПРИ  ОБРАЩЕНИИ  К
         НЕЙ ВЫПОЛНЯЕТСЯ ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ С ИСПОЛЬЗОВА-
         НИЕМ ЗНАЧЕНИЙ ФАКТИЧЕСКИХ ПАРАМЕТРОВ.

 ASSIGN S TO W

   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   W - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ.

       - УСТАНАВЛИВАЕТСЯ СООТВЕТСТВИЕ МЕЖДУ МЕТКОЙ ОПЕРАТО-
         РА "S" И ЦЕЛОЙ  ПЕРЕМЕННОЙ  "W"  ДЛЯ  ПОСЛЕДУЮЩЕГО
         ИСПОЛЬЗОВАНИЯ В ОПЕРАТОРЕ ПЕРЕХОДА ПО  ПРЕДПИСАНИЮ
         GO TO.

 BACKSPACE U

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА.

       - ВОЗВРАТ К ПРЕДЫДУЩЕЙ ЗАПИСИ В ФАЙЛЕ,  ОТКРЫТОГО  В








                               - 142 -

                         00014 - 01.35.02



         ТЕКУЩИЙ МОМЕНТ ВРЕМЕНИ  НА  ЛОГИЧЕСКОМ  УСТРОЙСТВЕ
         "U".

 BLOCK DATA [NAM]

   NAM - ИДЕНТИФИКАТОР.

       - ОПРЕДЕЛЯЕТ СЛЕДУЮЩУЮ ЗА НИМ ПОДПРОГРАММУ КАК ПОДП-
         РОГРАММУ ДАННЫХ.

 CALL S[([,P][, [P]]...)]

   S - ИДЕНТИФИКАТОР ПОДПРОГРАММЫ;
   P - ВЫРАЖЕНИЕ, ИДЕНТИФИКАТОР ПРОЦЕДУРЫ ИЛИ ИДЕНТИФИКАТОР
       МАССИВА.

       - ВЫЗЫВАЕТСЯ ПОДПРОГРАММА С ИДЕНТИФИКАТОРОМ "S". ПРИ
         ЭТОМ ЕЙ ПЕРЕДАЮТСЯ ФАКТИЧЕСКИЕ ПАРАМЕТРЫ  "P"  ДЛЯ
         ЗАМЕНЫ ФОРМАЛЬНЫХ ПАРАМЕТРОВ В  ОПРЕДЕЛЕНИИ  ПОДП-
         РОГРАММЫ.

 CLOSE (P[,P]...)

   Р - НАБОР ИЗ СЛЕДУЮЩИХ ЗАПИСЕЙ:
          UNIT=E
          DISPOSE='SAVE' ИЛИ 'KEEP'
     ИЛИ  DISPOSE='DELETE'
     ИЛИ  DISPOSE='PRINT'
          ERR=S
   E - ЧИСЛОВОЕ ВЫРАЖЕНИЕ;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА.

       - ЗАКРЫВАЕТ УКАЗАННЫЙ ЛОГИЧЕСКИЙ НОМЕР.

 COMMON [/[A]/] K[[,]/[A]/K]...

   А - ИДЕНТИФИКАТОР ОБЩЕГО БЛОКА;
   К - СПИСОК,  СОСТОЯЩИЙ    ИЗ   ОДНОГО   ИЛИ  НЕСКОЛЬКИХ
       ИДЕНТИФИКАТОРОВ  ПЕРЕМЕННЫХ,  ИДЕНТИФИКАТОРОВ  МАС-
       СИВОВ ИЛИ ОПИСАТЕЛЕЙ МАССИВОВ, РАЗДЕЛЕННЫХ ЗАПЯТЫМИ.

       - РЕЗЕРВИРУЕТ УЧАСТОК ОПЕРАТИВНОЙ ПАМЯТИ, ПОМЕЧЕННЫЙ
         ИДЕНТИФИКАТОРОМ БЛОКА COMMON, ДЛЯ РАЗМЕЩЕНИЯ ПЕРЕ-
         МЕННЫХ, СВЯЗАННЫХ С ЭТИМ БЛОКОМ.

 CONTINUE

       - ПЕРЕДАЕТ УПРАВЛЕНИЕ НА СЛЕДУЮЩИЙ ВЫПОЛНЯЕМЫЙ   ОПЕ-
         РАТОР.

 DATA K/C/[[,] K/C/]...

   К - СПИСОК, СОСТОЯЩИЙ ИЗ ОДНОГО ИЛИ  НЕСКОЛЬКИХ ИДЕНТИ-
       ФИКАТОРОВ ПЕРЕМЕННЫХ, ИДЕНТИФИКАТОРОВ МАССИВОВ ИЛИ
       ИДЕНТИФИКАТОРОВ ЭЛЕМЕНТОВ МАССИВОВ, РАЗДЕЛЕННЫХ ЗА-
       ПЯТЫМИ. ИНДЕКСНЫЕ ВЫРАЖЕНИЯ ДОЛЖНЫ БЫТЬ КОНСТАНТА-
       МИ;
   С - СПИСОК, СОСТОЯЩИЙ ИЗ ОДНОЙ ИЛИ НЕСКОЛЬКИХ КОНСТАНТ,






                               - 143 -

                         00014 - 01.35.02


       РАЗДЕЛЕННЫХ  ЗАПЯТЫМИ,  ПРИЧЕМ   КАЖДОЙ   КОНСТАНТЕ
       МОЖЕТ  ПРЕДШЕСТВОВАТЬ   НЕОБЯЗАТЕЛЬНАЯ   ФОРМА   J*
       (J - НЕНУЛЕВАЯ ЦЕЛАЯ КОНСТАНТА БЕЗ ЗНАКА).

       - ВЫЗЫВАЕТ ПРИСВАИВАНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ ИЗ СПИСКА
         КОНСТАНТ СООТВЕТСТВУЮЩИМ ЭЛЕМЕНТАМ СПИСКА  ИДЕНТИ-
         ФИКАТОРОВ ПЕРЕМЕННЫХ.

 DECODE(C,F,B[,ERR=S])[K]

   C - ЦЕЛОЕ ВЫРАЖЕНИЕ;
   F - МЕТКА ОПЕРАТОРА FORMAT ИЛИ  ИДЕНТИФИКАТОР  МАССИВА;
   B - ИДЕНТИФИКАТОР  ПЕРЕМЕННОЙ,  ИДЕНТИФИКАТОР  МАССИВА
       ИЛИ ИДЕНТИФИКАТОР ЭЛЕМЕНТА МАССИВА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ПЕРЕМЕННЫХ.

       - ПРЕОБРАЗУЕТ ЭЛЕМЕНТЫ СПИСКА ИЗ СИМВОЛЬНОГО  ПРЕДС-
         ТАВЛЕНИЯ ВО ВНУТРЕННИЙ ФОРМАТ; ЗНАЧЕНИЕ "С" УКАЗЫ-
         ВАЕТ ЧИСЛО СИМВОЛОВ, "F" ОПРЕДЕЛЯЕТ ФОРМАТ, А  "В"
         - ИДЕНТИФИКАТОР МАССИВА (ПЕРЕМЕННОЙ  ИЛИ  ЭЛЕМЕНТА
         МАССИВА), СОДЕРЖАЩЕГО ПРЕОБРАЗУЕМЫЕ СИМВОЛЫ.

 DEFINE FILE V(M,N,U,C)[,V(M,N,U,C)]...

   V - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   M - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   N - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   C - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ.

       - ОПРЕДЕЛЯЕТ СТРУКТУРУ ЗАПИСЕЙ В ФАЙЛЕ ПРЯМОГО  ДОС-
         ТУПА ("V" - НОМЕР ЛОГИЧЕСКОГО  УСТРОЙСТВА,  "М"  -
         ЧИСЛО ЗАПИСЕЙ ФИКСИРОВАННОЙ ДЛИНЫ В ФАЙЛЕ,  "N"  -
         ДЛИНА ЗАПИСИ В СЛОВАХ, "U" - ФИКСИРОВАННЫЙ  ПАРА -
         МЕТР И "С" - СВЯЗАННАЯ ПЕРЕМЕННАЯ ФАЙЛА).

 DIMENSION A(D)[,A(D)]...

   A(D) - ОПИСАТЕЛЬ МАССИВА.

       - ОПРЕДЕЛЯЕТ ОБ'ЕМ ПАМЯТИ, ТРЕБУЮЩЕЙСЯ ДЛЯ МАССИВОВ.

 DO S[,] I=E1,E2[,E3]

   S          - МЕТКА ПОСЛЕДНЕГО ВЫПОЛНЯЕМОГО ОПЕРАТОРА
                В ЦИКЛЕ;
   I          - ИДЕНТИФИКАТОР ПЕРЕМЕННОЙ ЦИКЛА;
   E1,E2[,E3] - ЦЕЛЫЕ ВЫРАЖЕНИЯ.

       - ВЫПОЛНЯЮТСЯ СЛЕДУЮЩИЕ ДЕЙСТВИЯ:
        1) УСТАНОВКА I=E1;
        2) ВЫПОЛНЕНИЕ ОПЕРАТОРОВ ДО ОПЕРАТОРА С НОМЕРОМ "S"
           ВКЛЮЧИТЕЛЬНО;
        3) ВЫЧИСЛЕНИЕ I=I+E3;
        4) ПОВТОРЕНИЕ ПУНКТОВ 2) И 3) "М" РАЗ
           [M = MAX(1,INT((E2-E1)/E3)+1)]

 ENCODE(C,F,B[, ERR=S])[K]





                               - 144 -

                         00014 - 01.35.02



   C - ЦЕЛОЕ ВЫРАЖЕНИЕ;
   F - МЕТКА ОПЕРАТОРА FORMAT ИЛИ  ИДЕНТИФИКАТОР  МАССИВА;
   В - ИДЕНТИФИКАТОР  ПЕРЕМЕННОЙ,  ИДЕНТИФИКАТОР   МАССИВА
       ИЛИ ИДЕНТИФИКАТОР ЭЛЕМЕНТА МАССИВА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   К - СПИСОК ВВОДА/ВЫВОДА.

       - ПРЕОБРАЗУЕТ ЭЛЕМЕНТЫ ИЗ СПИСКА ПЕРЕМЕННЫХ  В  СИМ-
         ВОЛЬНОЕ ПРЕДСТАВЛЕНИЕ; "С" ОПРЕДЕЛЯЕТ  ЧИСЛО  СИМ-
         ВОЛОВ В БУФЕРЕ, "F" ОПРЕДЕЛЯЕТ СПЕЦИФИКАЦИЮ ФОРМА-
         ТА (МЕТКА ОПЕРАТОРА ИЛИ МАССИВ), А "В" - ИДЕНТИФИ-
         КАТОР ОБ'ЕКТА, ИСПОЛЬЗУЕМОГО КАК БУФЕР.

 END
       - ЗАВЕРШАЕТ ПРОГРАММНЫЙ МОДУЛЬ.

END FILE U

  U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ КОНСТАНТА.

      - НА ЛОГИЧЕСКОЕ УСТРОЙСТВО "U" ЗАПИСЫВАЕТСЯ  ПРИЗНАК
        КОНЦА ФАЙЛА.

 END=S, ERR=S

   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА.

       - ПЕРЕДАЧА УПРАВЛЕНИЯ ПО КОНЦУ ФАЙЛА ИЛИ  ОШИБОЧНОМУ
         СОСТОЯНИЮ,  ЯВЛЯЮЩАЯСЯ  НЕОБЯЗАТЕЛЬНЫМ   ЭЛЕМЕНТОМ
         ЛЮБОГО ОПЕРАТОРА ВВОДА/ВЫВОДА. ЭТОТ ЭЛЕМЕНТ ПОЗВО-
         ЛЯЕТ ПРОГРАММЕ ПЕРЕЙТИ К ОПЕРАТОРУ С  НОМЕРОМ  "S"
         ПРИ УСЛОВИИ КОНЦА ФАЙЛА (END=) ИЛИ  ПРИ  ОШИБОЧНОМ
         СОСТОЯНИИ (ERR=).

 EQUIVALENCE (K)[,(K)]...

   K - СПИСОК, СОСТОЯЩИЙ ИЗ ДВУХ ИЛИ БОЛЕЕ ИДЕНТИФИКАТОРОВ
       ПЕРЕМЕННЫХ, ИДЕНТИФИКАТОРОВ  МАССИВОВ ИЛИ ИДЕНТИФИ-
       КАТОРОВ ЭЛЕМЕНТОВ МАССИВОВ, РАЗДЕЛЕННЫХ ЗАПЯТЫМИ.
       ИНДЕКСНЫЕ ВЫРАЖЕНИЯ ДОЛЖНЫ БЫТЬ КОНСТАНТАМИ.

       - КАЖДЫЙ ИЗ ИДЕНТИФИКАТОРОВ,  ПРИНАДЛЕЖАЩИХ  СПИСКУ,
         РАЗМЕЩАЕТСЯ В ОДНОЙ И ТОЙ ЖЕ ОБЛАСТИ ПАМЯТИ.

 EXTERNAL V [,V]...

   V - ИДЕНТИФИКАТОР ПОДПРОГРАММЫ.

       - ОПИСЫВАЕТ ИДЕНТИФИКАТОРЫ, КАК ИДЕНТИФИКАТОРЫ ВНЕШ-
         НЕЙ ПРОЦЕДУРЫ.

 FIND(U'R)

   U - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   R - ЦЕЛОЕ ВЫРАЖЕНИЕ.

       - ПОЗИЦИОНИРУЕТ ФАЙЛ НА ЛОГИЧЕСКОМ УСТРОЙСТВЕ "U"  К
         ЗАПИСИ  С  НОМЕРОМ  "R",  УСТАНАВЛИВАЕТ  СВЯЗАННУЮ







                               - 145 -

                         00014 - 01.35.02



         ПЕРЕМЕННУЮ НА НОМЕР ЗАПИСИ, РАВНЫЙ "R".

 FORMAT(СПЕЦИФИКАЦИЯ ПРЕОБРАЗОВАНИЯ)

       - ОПИСЫВАЕТ ФОРМАТ, В КОТОРОМ ДОЛЖНА  БЫТЬ  ПЕРЕДАНА
         ОДНА ИЛИ НЕСКОЛЬКО ЗАПИСЕЙ. ОПЕРАТОР ДОЛЖЕН  ИМЕТЬ
         МЕТКУ.

 [TYP] FUNCTION NAM[*N][([P[,P]...])]

   TYP - УКАЗАТЕЛЬ ТИПА ДАННЫХ;
   NAM - ИДЕНТИФИКАТОР;
   *N  - УКАЗАТЕЛЬ ДЛИНЫ ДАННЫХ;
   P   - ИДЕНТИФИКАТОР.

       - ЯВЛЯЕТСЯ ПЕРВЫМ ОПЕРАТОРОМ ПОДПРОГРАММЫ - ФУНКЦИИ,
         УКАЗЫВАЯ ЕЕ ИДЕНТИФИКАТОР И  ФОРМАЛЬНЫЕ  ПАРАМЕТРЫ
         "Р". МОЖЕТ ВКЛЮЧАТЬ НЕОБЯЗАТЕЛЬНЫЙ УКАЗАТЕЛЬ ТИПА.

 GO TO S

   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА.

       - БЕЗУСЛОВНЫЙ ПЕРЕХОД. ПЕРЕДАЕТ УПРАВЛЕНИЕ ОПЕРАТОРУ
         С МЕТКОЙ "S".

 GO TO (K1,K2,...,KN)[,] M

   K1,K2,...,KN - СПИСОК,СОСТОЯЩИЙ ИЗ ОДНОЙ ИЛИ НЕСКОЛЬКИХ
                 МЕТОК  ВЫПОЛНЯЕМЫХ  ОПЕРАТОРОВ,  РАЗДЕ-
                 ЛЕННЫХ ЗАПЯТЫМИ;
   М           - ЦЕЛОЕ ВЫРАЖЕНИЕ.

       - ВЫЧИСЛЯЕМЫЙ ОПЕРАТОР ПЕРЕХОДА; ПЕРЕДАЕТ УПРАВЛЕНИЕ
         ОПЕРАТОРУ С МЕТКОЙ, ОПРЕДЕЛЯЕМОЙ ЗНАЧЕНИЕМ ВЫРАЖЕ-
         НИЯ "М"; ЕСЛИ "М" РАВНО 1,  УПРАВЛЕНИЕ  ПЕРЕДАЕТСЯ
         ОПЕРАТОРУ С ПЕРВОЙ МЕТКОЙ ИЗ СПИСКА; ЕСЛИ "М" РАВ-
         НО 2, УПРАВЛЕНИЕ ПЕРЕДАЕТСЯ  ОПЕРАТОРУ  СО  ВТОРОЙ
         МЕТКОЙ И Т.Д; ЕСЛИ "М" МЕНЬШЕ ЕДИНИЦЫ ИЛИ  БОЛЬШЕ,
         ЧЕМ ИМЕЮЩЕЕСЯ  ЧИСЛО  МЕТОК,  ПЕРЕДАЧА  УПРАВЛЕНИЯ
         ПРОИСХОДИТ НА СЛЕДУЮЩИЙ ВЫПОЛНЯЕМЫЙ ОПЕРАТОР.

 GO TO V [[,](K1,K2,...,KN)]

   V            - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ;
   K1,K2,...,K3 - СПИСОК, СОСТОЯЩИЙ ИЗ ОДНОЙ ИЛИ НЕСКОЛЬКИХ
                  МЕТОК ВЫПОЛНЯЕМЫХ ОПЕРАТОРОВ, РАЗДЕЛЕННЫХ
                  ЗАПЯТЫМИ.

       - ПЕРЕХОД ПО ПРЕДПИСАНИЮ; ПЕРЕДАЕТ УПРАВЛЕНИЕ ОПЕРА-
         ТОРУ, КОТОРЫЙ БЫЛ  ПОСЛЕДНИМ  УСТАНОВЛЕН  В  СООТ-
         ВЕТСТВИЕ ПЕРЕМЕННОЙ "V" ОПЕРАТОРОМ ASSIGN.

 IF (M) K1,K2,K3

   M        - ВЫРАЖЕНИЕ;
   K1,K2,K3 - МЕТКИ ВЫПОЛНЯЕМЫХ ОПЕРАТОРОВ.

                            - 146 -

                      00014 - 01.35.02


       - АРИФМЕТИЧЕСКИЙ ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА;  ПЕРЕ-
         ДАЕТ УПРАВЛЕНИЕ ОПЕРАТОРУ С НОМЕРОМ К1, К2 ИЛИ К3,
         В ЗАВИСИМОСТИ ОТ ЗНАЧЕНИЯ ВЫРАЖЕНИЯ; ЕСЛИ ЗНАЧЕНИЕ
         ВЫРАЖЕНИЯ МЕНЬШЕ НУЛЯ, ТО ВЫПОЛНЯЕТСЯ  ПЕРЕХОД  НА
         "К1"; ЕСЛИ ЗНАЧЕНИЯ ВЫРАЖЕНИЯ РАВНО НУЛЮ -  ВЫПОЛ-
         НЯЕТСЯ ПЕРЕХОД НА "К2";  ЕСЛИ  ЗНАЧЕНИЕ  ВЫРАЖЕНИЯ
         БОЛЬШЕ НУЛЯ - ВЫПОЛНЯЕТСЯ ПЕРЕХОД НА "К3".

 IF (E) S

   E - ВЫРАЖЕНИЕ;
   S - ЛЮБОЙ ВЫПОЛНЯЕМЫЙ ОПЕРАТОР ЗА ИСКЛЮЧЕНИЕМ ОПЕРАТОРА
       DO И ЛОГИЧЕСКОГО УСЛОВИЯ ОПЕРАТОРА IF.

       - ЛОГИЧЕСКИЙ УСЛОВНЫЙ ОПЕРАТОР.  ВЫПОЛНЯЕТ  ОПЕРАТОР
         "S" ПРИ УСЛОВИИ ИСТИННОСТИ ВЫРАЖЕНИЯ.

 IMPLICIT TYP (A[,A]...)[,TYP(A[,A]...)]...

   TYP - УКАЗАТЕЛЬ ТИПА ДАННЫХ;
   А   - ОДНА, ЛИБО ДВЕ БУКВЫ В АЛФАВИТНОМ ПОРЯДКЕ, РАЗДЕ-
         ЛЕННЫЕ ЗНАКОМ "-"; (НАПРИМЕР, X-Y, C-D).

       - ЭЛЕМЕНТЫ "А"  ПРЕДСТАВЛЯЮТ  ОТДЕЛЬНЫЕ  БУКВЫ  (ИЛИ
         НАБОРЫ БУКВ), ПРИСУТСТВИЕ КОТОРЫХ В КАЧЕСТВЕ  ПЕР-
         ВОЙ БУКВЫ  ИДЕНТИФИКАТОРА  ПЕРЕМЕННОЙ  ЗАДАЕТ  ТИП
         ЭТОЙ ПЕРЕМЕННОЙ.

 OPEN (P[,P]...)

   P - НАБОР ИЗ СЛЕДУЮЩИХ ФОРМ:
               UNIT=E
               NAME=N
               TYPE='OLD'
           ИЛИ TYPE ='NEW'
           ИЛИ TYPE='SCRATCH'
           ИЛИ TYPE='UNKNOWN'
               ACCESS='SEQUENTIAL'
           ИЛИ ACCESS='DIRECT'
           ИЛИ ACCESS='APPEND'
               READONLY
               FORM='FORMATTED'
           ИЛИ FORM='UNFORMATTED'
               RECORDSIZE=E
               ERR=S
               BUFFERCOUNT=E
               INITIALSIZE=E
               EXTENDSIZE=E
               NOSPANBLOCKS
               SHARED
               DISPOSE(DISP)='SAVE'
           ИЛИ DISPOSE(DISP)='KEEP'
           ИЛИ DISPOSE(DISP)='PRINT'
           ИЛИ DISPOSE(DISP)='DELETE'
               ASSOCIATEVARIABLE=V
               CARRIAGECONTROL='FORTRAN'
           ИЛИ CARRIAGECONTROL='LIST'
           ИЛИ CARRIAGECONTROL='NONE'









                            - 147 -

                      00014 - 01.35.02


               MAXREC=E
               BLOCKSIZE=E
 ГДЕ

Е
       - ЧИСЛОВОЕ ВЫРАЖЕНИЕ;

S
       - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;

V
       - ИДЕНТИФИКАТОР ЦЕЛОЙ ПЕРЕМЕННОЙ;

N
       - ИДЕНТИФИКАТОР МАССИВА,  ИДЕНТИФИКАТОР  ПЕРЕМЕННОЙ,
         ИДЕНТИФИКАТОР  ЭЛЕМЕНТА  МАССИВА   ИЛИ   БУКВЕННО-
         ЦИФРОВОЙ ЛИТЕРАЛ.

       - ОТКРЫВАЕТ ФАЙЛ НА УКАЗАННОМ ЛОГИЧЕСКОМ  УСТРОЙСТВЕ
         В СООТВЕТСТВИИ С ПАРАМЕТРАМИ, ОПРЕДЕЛЕННЫМИ КЛЮЧЕ-
         ВЫМИ СЛОВАМИ.

 PAUSE[N]

   N - ПОСЛЕДОВАТЕЛЬНОСТЬ ДЕСЯТИЧНЫХ  ЦИФР,  СОДЕРЖАЩАЯ ОТ
   ОДНОЙ ДО ПЯТИ ЦИФР, ИЛИ БУКВЕННО-ЦИФРОВОЙ ЛИТЕРАЛ,  ИЛИ
   ВОСЬМЕРИЧНАЯ КОНСТАНТА.

       - ПРИОСТАНАВЛИВАЕТ ВЫПОЛНЕНИЕ ПРОГРАММЫ И ВЫВОДИТ НА
         ТЕРМИНАЛ ОПЕРАТОРА "N", ЕСЛИ "N" ЗАДАНО.

 PRINT
       - СМ. WRITE, ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД/ВЫВОД.

       - СМ. WRITE, ВВОД/ВЫВОД ПОД УПРАВЛЕНИЕМ СПИСКА.

 PROGRAM NAM

   NAM - ИДЕНТИФИКАТОР.

       - ОПРЕДЕЛЯЕТ ИДЕНТИФИКАТОР ГОЛОВНОЙ ПРОГРАММЫ.

 READ (U,F[,END=S][,ERR=S])[K]
 READ F[,K]
 ACCEPT F[,K]

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   F - МЕТКА ОПЕРАТОРА FORMAT ИЛИ ИДЕНТИФИКАТОР МАССИВА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ВВОДА.

       - ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ  ВВОД.  СЧИТЫВАЕТ  ОДНУ
         ИЛИ БОЛЕЕ ЛОГИЧЕСИКХ ЗАПИСЕЙ С  УСТРОЙСТВА  "U"  И
         ПРИСВАИВАЕТ  ЭЛЕМЕНТАМ  СПИСКА   ВВОДА   ЗНАЧЕНИЯ,
         ПРЕОБРАЗОВАННЫЕ В  СООТВЕТСТВИИ  СО  СПЕЦИФИКАЦИЕЙ
         ФОРМАТА В ОПЕРАТОРЕ "F".

 READ(U[,END=S][,ERR=S])[K]








                            - 148 -

                      00014 - 01.35.02


   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК  ВВОДА.

       - НЕФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД. СЧИТЫВАЕТ  ОДНУ
         НЕФОРМАТНУЮ ЗАПИСЬ С УСТРОЙСТВА "U" И  ПРИСВАИВАЕТ
         ЗНАЧЕНИЯ ЭЛЕМЕНТАМ СПИСКА.

 READ (U'R[ERR=S])[K]
   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   R - ЦЕЛОЕ ВЫРАЖЕНИЕ;
   C - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ВВОДА.

       - НЕФОРМАТНЫЙ  ВВОД  С  ПРЯМЫМ  ДОСТУПОМ;  СЧИТЫВАЕТ
         ЗАПИСЬ "R" С УСТРОЙСТВА "U" И ПРИСВАИВАЕТ ЗНАЧЕНИЯ
         ЭЛЕМЕНТАМ СПИСКА.

 READ(U,*[,END=S][,ERR=S])K
 READ *,K
 ACCEPT *,K

  U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
  * - УКАЗЫВАЕТ НА ЗАДАНИЕ ФОРМАТА ПОД УПРАВЛЕНИЕМ СПИСКА;
  S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
  K - СПИСОК ВВОДА.

       - ВВОД ПОД УПРАВЛЕНИЕМ СПИСКА;  СЧИТЫВАЕТ  ОДНУ  ИЛИ
         НЕСКОЛЬКО ЗАПИСЕЙ С УСТРОЙСТВА "U"  И  ПРИСВАИВАЕТ
         КАЖДОМУ ЭЛЕМЕНТУ СПИСКА ЗНАЧЕНИЕ,  ПРЕОБРАЗОВАННОЕ
         В СООТВЕТСТВИИ С ТИПОМ ДАННЫХ ЭТОГО ЭЛЕМЕНТА СПИС-
         КА.

 RETURN

       - ВОЗВРАЩАЕТ УПРАВЛЕНИЕ В  ВЫЗЫВАЮЩУЮ  ПРОГРАММУ  ИЗ
         ВЫПОЛНЯЕМОЙ ПОДПРОГРАММЫ.

 REWIND U

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ КОНСТАНТА.

       - ВЫЗЫВАЕТ ВОЗВРАТ К НАЧАЛУ ФАЙЛА, ОТКРЫТОГО В  НАС-
         ТОЯЩИЙ МОМЕНТ НА ЛОГИЧЕСКОМ УСТРОЙСТВЕ "U".

 STOP[N]

   N - ПОСЛЕДОВАТЕЛЬНОСТЬ   ДЕСЯТИЧНЫХ   ЦИФР,   БУКВЕННО-
       ЦИФРОВОЙ ЛИТЕРАЛ ИЛИ ВОСЬМЕРИЧНАЯ КОНСТАНТА.

       - ПРЕКРАЩАЕТ ВЫПОЛНЕНИЕ ПРОГРАММЫ И ВЫВОДИТ НА ТЕР-
         МИНАЛ ОПЕРАТОРА "N", ЕСЛИ "N" ЗАДАНО.

 SUBROUTINE NAM [([P[,P]...])]

   NAM - ИДЕНТИФИКАТОР;
   Р   - ИДЕНТИФИКАТОР.

       - НАЧИНАЕТ ПОДПРОГРАММУ, УКАЗЫВАЯ ЕЕ ИДЕНТИФИКАТР И








                            - 149 -

                      00014 - 01.35.02


         ИДЕНТИФИКАТОРЫ ФОРМАЛЬНЫХ ПАРАМЕТРОВ "Р".

 TYPE

       - СМ. WRITE, ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВЫВОД;
       - СМ. WRITE, ВЫВОД ПОД УПРАВЛЕНИЕМ СПИСКА.

 TYP V[,V]...

   TYP - УКАЗАТЕЛЬ ТИПА ДАННЫХ;
   V - ИДЕНТИФИКАТОР ПЕРЕМЕННОЙ ,  ИДЕНТИФИКАТОР  МАССИВА,
       ИДЕНТИФИКАТОР ФУНКЦИИ  ИЛИ  ТОЧКИ  ВХОДА В ФУНКЦИЮ,
       ИЛИ ОПИСАТЕЛЬ МАССИВА. ЗА ИДЕНТИФИКАТОРОМ  МОЖЕТ
       СЛЕДОВАТЬ НЕОБЯЗАТЕЛЬНЫЙ УКАЗАТЕЛЬ ДЛИНЫ ТИПА
       ДАННЫХ (*N).

       - ИДЕНТИФИКАТОРАМ "V" В ДАННОЙ  ПРОГРАММНОЙ  ЕДИНИЦЕ
         ПРИСВАИВАЕТСЯ УКАЗАННЫЙ ТИП. ТИП МОЖЕТ БЫТЬ  ОДНИМ
         ИЗ СЛЕДУЮЩИХ:

               DOUBLE PRECISION
               COMPLEX
               COMPLEX*8
               REAL
               REAL*4
               REAL*8
               INTEGER
               INTEGER*2
               INTEGER*8
               BYTE
               LOGICAL
               LOGICAL*1
               LOGICAL*4

 WRITE(U,F[,ERR=S])[K]
 PRINT F[,K]
 TYPE F[,K]

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   F - МЕТКА ОПЕРАТОРА FORMAT ИЛИ ИДЕНТИФИКАТОР МАССИВА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ВЫВОДА.

       - ФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ  ВЫВОД;  ЗАПИСЫВАЕТ  НА
         УСТРОЙСТВО "U" ОДНУ ИЛИ НЕСКОЛЬКО ЗАПИСЕЙ,  СОДЕР-
         ЖАЩИХ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ  СПИСКА,  ПРЕОБРАЗОВАННЫЕ
         СОГЛАСНО СПЕЦИФИКАЦИИ ФОРМАТА "F".

 WRITE (U[,ERR=S])[K]

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ВЫВОДА.

       - НЕФОРМАТНЫЙ ПОСЛЕДОВАТЕЛЬНЫЙ ВЫВОД. ЗАПИСЫВАЕТ  НА
         УСТРОЙСТВО "U" ОДНУ НЕФОРМАТНУЮ ЗАПИСЬ, СОДЕРЖАЩУЮ
         ЗНАЧЕНИЯ ЭЛЕМЕНТОВ СПИСКА.











                            - 150 -

                      00014 - 01.35.02




 WRITE (U'N [,ERR=S])[K]

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   N - ЦЕЛОЕ ВЫРАЖЕНИЕ;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ВЫВОДА.

       - НЕФОРМАТНЫЙ ВЫВОД С ПРЯМЫМ ДОСТУПОМ; ЗАПИСЫВАЕТ НА
         УСТРОЙСТВО "U"  ЗАПИСЬ  "N",  СОДЕРЖАЩУЮ  ЗНАЧЕНИЯ
         ЭЛЕМЕНТОВ СПИСКА.

 WRITE (U,*[,ERR=S])K
 PRINT *,K
 TYPE *,K

   U - ЦЕЛАЯ ПЕРЕМЕННАЯ ИЛИ ЦЕЛАЯ КОНСТАНТА;
   * - УКАЗЫВАЕТ  НА  ЗАДАНИЕ  ФОРМАТА   ПОД   УПРАВЛЕНИЕМ
       СПИСКА;
   S - МЕТКА ВЫПОЛНЯЕМОГО ОПЕРАТОРА;
   K - СПИСОК ВЫВОДА.

       - ВЫВОД ПОД УПРАВЛЕНИЕМ СПИСКА; ЗАПИСЫВАЕТ  НА  УСТ-
         РОЙСТВО "U" ОДНУ ИЛИ НЕСКОЛЬКО ЗАПИСЕЙ, СОДЕРЖАЩИХ
         ЗНАЧЕНИЯ ЭЛЕМЕНТОВ СПИСКА, ПРЕОБРАЗОВАННЫХ В СООТ-
         ВЕТСТВИИ С ТИПОМ ДАННЫХ ЭЛЕМЕНТОВ СПИСКА.

                           - 151 -

                     00014 - 01.35.02


           3. БИБЛИОТЕЧНЫЕ ФУНКЦИИ ФОРТРАНА



     ФУНКЦИИ ПРЕОБРАЗОВАНИЯ
     ----------------------

ABS(X)
       - ВЕЩЕСТВЕННОЕ АБСОЛЮТНОЕ ЗНАЧЕНИЕ; ТИП ПАРАМЕТРА  -
         ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

IABS(I)
       - ЦЕЛОЕ АБСОЛЮТНОЕ ЗНАЧЕНИЕ; ТИП ПАРАМЕТРА -  ЦЕЛЫЙ,	
         ТИП ФУНКЦИИ - ЦЕЛЫЙ.

DABS(X)
       - АБСОЛЮТНОЕ ЗНАЧЕНИЕ С ДВОЙНОЙ ТОЧНОСТЬЮ; ТИП ПАРА-
         МЕТРА - С ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП ФУНКЦИИ - С ДВОЙ-
         НОЙ ТОЧНОСТЬЮ.

CABS(Z)
       - АБСОЛЮТНОЕ    ЗНАЧЕНИЕ    КОМПЛЕКСНОЙ     ВЕЛИЧИНЫ
         (Z=(X,Y)), CABS(Z)=(X**2+Y**2)**0,5; ТИП ПАРАМЕТРА
         - КОМПЛЕКСНЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

FLOAT(I)
       - ПРЕОБРАЗОВАНИЕ ЦЕЛОЙ ВЕЛИЧИНЫ В ВЕЩЕСТВЕННУЮ;  ТИП
         ПАРАМЕТРА - ЦЕЛЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

IFIX(X)
       - ПРЕОБРАЗОВАНИЕ  ВЕЩЕСТВЕННОЙ  ВЕЛИЧИНЫ  В   ЦЕЛУЮ;
         IFIX(X)  ЭКВИВАЛЕНТНА  INT(X);  ТИП  ПАРАМЕТРА   -
         ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ЦЕЛЫЙ.

SNGL(X)
       - ПРЕОБРАЗОВАНИЕ  ВЕЛИЧИНЫ  С  ДВОЙНОЙ  ТОЧНОСТЬЮ  В
         ВЕЩЕСТВЕННУЮ ВЕЛИЧИНУ; ТИП ПАРАМЕТРА -  С  ДВОЙНОЙ
         ТОЧНОСТЬЮ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

DBLE(X)
       - ПРЕОБРАЗОВАНИЕ ВЕЩЕСТВЕННОЙ ВЕЛИЧИНЫ В ВЕЛИЧИНУ  С
         ДВОЙНОЙ ТОЧНОСТЬЮ; ТИП ПАРАМЕТРА  -  ВЕЩЕСТВЕННЫЙ,
         ТИП ФУНКЦИИ - С ДВОЙНОЙ ТОЧНОСТЬЮ.

REAL(Z)
       - ВЫДЕЛЕНИЕ ДЕЙСТВИТЕЛЬНОЙ ЧАСТИ В КОМПЛЕКСНОЙ ВЕЛИ-
         ЧИНЕ; ТИП ПАРАМЕТРА - КОМПЛЕКСНЫЙ, ТИП  ФУНКЦИИ  -
         ВЕЩЕСТВЕННЫЙ.

AIMAG(Z)
       - ВЫДЕЛЕНИЕ МНИМОЙ ЧАСТИ В КОМПЛЕКСНОЙ ВЕЛИЧИНЕ; ТИП
         ПАРАМЕТРА - КОМПЛЕКСНЫЙ, ТИП ФУНКЦИИ -  ВЕЩЕСТВЕН-
         НЫЙ.

CMPLX(X,Y)
       - ОБ'ЕДИНЕНИЕ ДВУХ ВЕЩЕСТВЕННЫХ ВЕЛИЧИН В  КОМПЛЕКС-
         НУЮ ВЕЛИЧИНУ  CMPLX(X,Y)=X+I+*Y;  ТИП  ПАРАМЕТРА  -
         ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - КОМПЛЕКСНЫЙ.







                           - 152 -

                     00014 - 01.35.02



     ФУНКЦИИ ВЫДЕЛЕНИЯ ЦЕЛОЙ ЧАСТИ
     -----------------------------

     РЕЗУЛЬТАТОМ ФУНКЦИЙ  ВЫДЕЛЕНИЯ  ЦЕЛОЙ  ЧАСТИ  ЯВЛЯЕТСЯ
НАИБОЛЬШЕЕ ЦЕЛОЕ ЧИСЛО, НЕ ПРЕВЫШАЮЩЕЕ ПО АБСОЛЮТНОЙ  ВЕЛИ-
ЧИНЕ АРГУМЕНТ ФУНКЦИИ. ФУНКЦИИ ПРИСВАИВАЕТСЯ ЗНАК  АРГУМЕН-
ТА.

AINT(X)
       - ВЫДЕЛЕНИЕ ЦЕЛОЙ ЧАСТИ ВЕЩЕСТВЕННОЙ  ВЕЛИЧИНЫ;  ТИП
         ПАРАМЕТРА - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕН-
         НЫЙ.

INT(X)
       - ВЫДЕЛЕНИЕ ЦЕЛОЙ ЧАСТИ ВЕЩЕСТВЕННОЙ  ВЕЛИЧИНЫ;  ТИП
         ПАРАМЕТРА - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ЦЕЛЫЙ.

IDINT(X)
       - ВЫДЕЛЕНИЕ ЦЕЛОЙ  ЧАСТИ  ВЕЛИЧИНЫ  С  ДВОЙНОЙ  ТОЧ-
         НОСТЬЮ; ТИП  ПАРАМЕТРА  -  ДВОЙНОЙ  ТОЧНОСТИ,  ТИП
         ФУНКЦИИ - ЦЕЛЫЙ.


     ФУНКЦИИ ОСТАТКА
     ---------------

     РЕЗУЛЬТАТОМ ФУНКЦИЙ ОСТАТКА ЯВЛЯЕТСЯ ОСТАТОК ОТ  ДЕЛЕ-
НИЯ ПЕРВОГО АРГУМЕНТА НА ВТОРОЙ.

AMOD(X,Y)
       - ОСТАТОК ВЕЩЕСТВЕННЫЙ; ТИП ПАРАМЕТРОВ -  ВЕЩЕСТВЕН-
         НЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

MOD(I,J)
       - ОСТАТОК ЦЕЛЫЙ; ТИП ПАРАМЕТРОВ - ЦЕЛЫЙ, ТИП ФУНКЦИИ
         - ЦЕЛЫЙ.

DMOD(X,Y)
       - ОСТАТОК С ДВОЙНОЙ ТОЧНОСТЬЮ; ТИП ПАРАМЕТРА - ДВОЙ-
         НОЙ ТОЧНОСТИ, ТИП ФУНКЦИИ - ДВОЙНОЙ ТОЧНОСТИ.



     ФУНКЦИИ ВЫБОРА МАКСИМАЛЬНОГО ЗНАЧЕНИЯ
     -------------------------------------

     РЕЗУЛЬТАТОМ  ФУНКЦИЙ  ВЫБОРА  МАКСИМАЛЬНОГО   ЗНАЧЕНИЯ
ЯВЛЯЕТСЯ НАТБОЛЬШЕЕ ЗНАЧЕНИЕ ИЗ АРГУМЕНТОВ СПИСКА,  СОСТОЯ-
ЩЕГО ИЗ ДВУХ ИЛИ БОЛЕЕ АРГУМЕНТОВ.

AMAX0(I,J,...)
       - МАКСИМАЛЬНОЕ ВЕЩЕСТВЕННОЕ ЗНАЧЕНИЕ ИЗ СПИСКА ЦЕЛЫХ
         АРГУМЕНТОВ; ТИП ПАРАМЕТРОВ - ЦЕЛЫЙ, ТИП ФУНКЦИИ  -
         ВЕЩЕСТВЕННЫЙ.

AMAX1(X,Y,...)
       - МАКСИМАЛЬНОЕ  ВЕЩЕСТВЕННОЕ  ЗНАЧЕНИЕ   ИЗ   СПИСКА
         ВЕЩЕСТВЕННЫХ АРГУМЕНТОВ; ТИП ПАРАМЕТРОВ ВЕЩЕСТВЕН-
         НЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.









                           - 153 -

                     00014 - 01.35.02


MAX0(I,J,...)
       - МАКСИМАЛЬНОЕ ЦЕЛОЕ ЗНАЧЕНИЕ ИЗ СПИСКА ЦЕЛЫХ  АРГУ-
         МЕНТОВ; ТИП  ПАРАМЕТРА  -  ЦЕЛЫЙ,  ТИП  ФУНКЦИИ  -
         ЦЕЛЫЙ.

MAX1(X,Y,...)
       - МАКСИМАЛЬНОЕ ЦЕЛОЕ ЗНАЧЕНИЕ ИЗ СПИСКА ВЕЩЕСТВЕННЫХ
         АРГУМЕНТОВ;  ТИП  ПАРАМЕТРА  -  ВЕЩЕСТВЕННЫЙ,  ТИП
         ФУНКЦИИ - ЦЕЛЫЙ.

DMAX1(X,Y,...)
       - МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ ДВОЙНОЙ ТОЧНОСТИ  ИЗ  СПИСКА
         АРГУМЕНТОВ С ДВОЙНОЙ ТОЧНОСТЬЮ; ТИП ПАРАМЕТРА -  С
         ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП ФУНКЦИИ -  С  ДВОЙНОЙ  ТОЧ-
         НОСТЬЮ.


     ФУНКЦИИ ВЫБОРА МИНИМАЛЬНОГО ЗНАЧЕНИЯ
     ------------------------------------

     РЕЗУЛЬТАТОМ  ФУНКЦИЙ  ВЫБОРА   МИНИМАЛЬНОГО   ЗНАЧЕНИЯ
ЯВЛЯЕТСЯ НАИМЕНЬШЕЕ ЗНАЧЕНИЕ ИЗ СПИСКА АРГУМЕНТОВ,  СОСТОЯ-
ЩЕГО ИЗ ДВУХ ИЛИ БОЛЕЕ АРГУМЕНТОВ.

AMIN0(I,J,...)
       - МИНИМАЛЬНОЕ ВЕЩЕСТВЕННОЕ ЗНАЧЕНИЕ ИЗ СПИСКА  ЦЕЛЫХ
         АРГУМЕНТОВ; ТИП ПАРАМЕТРОВ - ЦЕЛЫЙ, ТИП ФУНКЦИИ  -
         ВЕЩЕСТВЕННЫЙ.

AMIN1(X,Y,...)
       - МИНИМАЛЬНОЕ  ВЕЩЕСТВЕННОЕ   ЗНАЧЕНИЕ   ИЗ   СПИСКА
         ВЕЩЕСТВЕННЫХ АРГУМЕНТОВ; ТИП ПАРАМЕТРОВ -  ВЕЩЕСТ-
         ВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

MIN0(I,J,...)
       - МИНИМАЛЬНОЕ ЦЕЛОЕ ЗНАЧЕНИЕ ИЗ СПИСКА  ЦЕЛЫХ  АРГУ-
         МЕНТОВ; ТИП ПАРАМЕТРОВ  -  ЦЕЛЫЙ,  ТИП  ФУНКЦИИ  -
         ЦЕЛЫЙ.

MIN1(X,Y,...)
       - МИНИМАЛЬНОЕ ЦЕЛОЕ ЗНАЧЕНИЕ ИЗ СПИСКА  ВЕЩЕСТВЕННЫХ
         АРГУМЕНТОВ; ТИП  ПАРАМЕТРОВ  -  ВЕЩЕСТВЕННЫЙ,  ТИП
         ФУНКЦИИ - ЦЕЛЫЙ.

DMIN1(X,Y,...)
       - МИНИМАЛЬНОЕ ЗНАЧЕНИЕ С ДВОЙНОЙ ТОЧНОСТЬЮ ИЗ СПИСКА
         ПАРАМЕТРОВ С ДВОЙНОЙ ТОЧНОСТЬЮ; ТИП ПАРАМЕТРОВ - С
         ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП ФУНКЦИИ -  С  ДВОЙНОЙ  ТОЧ-
         НОСТЬЮ.


     ФУНКЦИИ ПРИСВАИВАНИЯ ЗНАКА
     --------------------------

     РЕЗУЛЬТАТОМ ФУНКЦИИ ПРИСВАИВАНИЯ ЗНАКА ЯВЛЯЕТСЯ  АБСО-
ЛЮТНОЕ ЗНАЧЕНИЕ ПЕРВОГО АРГУМЕНТА С ПРИСВОЕННЫМ ЕМУ  ЗНАКОМ
ВТОРОГО АРГУМЕНТА.

SIGN(X,Y)
       - ПРИСВАИВАНИЕ  ЗНАКА  ВЕЩЕСТВЕННОЙ  ВЕЛИЧИНЕ;   ТИП









                           - 154 -

                     00014 - 01.35.02


         ПАРАМЕТРОВ - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ  -  ВЕЩЕСТ-
         ВЕННЫЙ.

ISIGN(I,J)
       - ПРИСВАИВАНИЕ ЗНАКА ЦЕЛОЙ ВЕЛИЧИНЕ; ТИП  ПАРАМЕТРОВ
         - ЦЕЛЫЙ, ТИП ФУНКЦИИ -ЦЕЛЫЙ.

DSIGN(X,Y)
       - ПРИСВАИВАНИЕ ЗНАКА ВЕЛИЧИНЕ С  ДВОЙНОЙ  ТОЧНОСТЬЮ;
         ТИП ПАРАМЕТРОВ - С ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП  ФУНКЦИИ
         - С ДВОЙНОЙ ТОЧНОСТЬЮ.



     ФУНКЦИИ ПОЛОЖИТЕЛЬНОЙ РАЗНОСТИ
     ------------------------------

     РЕЗУЛЬТАТОМ ФУНКЦИИ  ПОЛОЖИТЕЛЬНОЙ  РАЗНОСТИ  ЯВЛЯЕТСЯ
РАЗНОСТЬ ПЕРВОГО АРГУМЕНТА И МИНИМАЛЬНОГО ИЗ ДВУХ  АРГУМЕН-
ТОВ.

DIM(X,Y)
       - ПОЛОЖИТЕЛЬНАЯ РАЗНОСТЬ ВЕЩЕСТВЕННЫХ  ВЕЛИЧИН;  ТИП
         ПАРАМЕТРОВ - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ  -  ВЕЩЕСТ-
         ВЕННЫЙ.

IDIM(I,J)
       - ПОЛОЖИТЕЛЬНАЯ РАЗНОСТЬ ЦЕЛЫХ ВЕЛИЧИН; ТИП ПАРАМЕТ-
         РОВ - ЦЕЛЫЙ, ТИП ФУНКЦИИ - ЦЕЛЫЙ.


     ЭКСПОНЕНЦИАЛЬНЫЕ ФУНКЦИИ
     ------------------------

     РЕЗУЛЬТАТОМ ЭКСПОНЕНЦИАЛЬНЫХ ФУНКЦИЙ ЯВЛЯЕТСЯ ЗНАЧЕНИЕ
"Е", ВОЗВЕДЕННОЕ В СТЕПЕНЬ, РАВНУЮ АРГУМЕНТУ.

EXP(X)
       - E**X. ТИП ПАРАМЕТРА - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ  -
         ВЕЩЕСТВЕННЫЙ;

DEXP(X)
       - E**X. ТИП ПАРАМЕТРА -  С  ДВОЙНОЙ  ТОЧНОСТЬЮ,  ТИП
         ФУНКЦИИ - С ДВОЙНОЙ ТОЧНОСТЬЮ.

CEXP(Z)
       - E**Z. ТИП ПАРАМЕТРА - КОМПЛЕКСНЫЙ, ТИП  ФУНКЦИИ  -
         КОМПЛЕКСНЫЙ.


     ЛОГАРИФМИЧЕСКИЕ ФУНКЦИИ
     -----------------------

ALOG(X)
       - НАТУРАЛЬНЫЙ ЛОГАРИФМ ВЕЩЕСТВЕННОГО АРГУМЕНТА;  ТИП
         ПАРАМЕТРА - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕН-
         НЫЙ.

ALOG10(X)
       - ДЕСЯТИЧНЫЙ ЛОГАРИФМ ВЕЩЕСТВЕННОГО АРГУМЕНТА.










                           - 155 -

                     00014 - 01.35.02


DLOG(X)
       - НАТУРАЛЬНЫЙ  ЛОГАРИФМ  АРГУМЕНТА  С  ДВОЙНОЙ  ТОЧ-
         НОСТЬЮ; ТИП ПАРАМЕТРА - С ДВОЙНОЙ  ТОЧНОСТЬЮ,  ТИП
         ФУНКЦИИ - С ДВОЙНОЙ ТОЧНОСТЬЮ.

CLOG(Z)
       - НАТУРАЛЬНЫЙ ЛОГАРИФМ КОМПЛЕКСНОГО  АРГУМЕНТА;  ТИП
         ПАРАМЕТРА - КОМПЛЕКСНЫЙ, ТИП ФУНКЦИИ  -  КОМПЛЕКС-
         НЫЙ.


     КВАДРАТНЫЙ КОРЕНЬ
     -----------------

SQRT(X)
       - КОРЕНЬ КВАДРАТНЫЙ ИЗ ВЕЩЕСТВЕННОГО АРГУМЕНТА;  ТИП
         ПАРАМЕТРА - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕН-
         НЫЙ.

DSQRT(X)
       - КОРЕНЬ КВАДРАТНЫЙ ИЗ АРГУМЕНТА  ДВОЙНОЙ  ТОЧНОСТИ;
         ТИП ПАРАМЕТРА - С ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП ФУНКЦИИ С
         ДВОЙНОЙ ТОЧНОСТЬЮ.

CSQRT(Z)
       - КОРЕНЬ КВАДРАТНЫЙ ИЗ КОМПЛЕКСНОГО  АРГУМЕНТА;  ТИП
         ПАРАМЕТРА - КОМПЛЕКСНЫЙ, ТИП ФУНКЦИИ  -  КОМПЛЕКС-
         НЫЙ.


     ТРИГОНОМЕТРИЧЕСКИЕ ФУНКЦИИ
     --------------------------

SIN(X)
       - СИНУС ВЕЩЕСТВЕННОГО  АРГУМЕНТА;  ТИП  ПАРАМЕТРА  -
         ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

DSIN(X)
       - СИНУС АРГУМЕНТА С ДВОЙНОЙ ТОЧНОСТЬЮ; ТИП ПАРАМЕТРА
         - С ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП  ФУНКЦИИ  -  С  ДВОЙНОЙ
         ТОЧНОСТЬЮ.

CSIN(Z)
       - СИНУС  КОМПЛЕКСНОГО  АРГУМЕНТА;  ТИП  ПАРАМЕТРА  -
         КОМПЛЕКСНЫЙ, ТИП ФУНКЦИИ - КОМПЛЕКСНЫЙ.

COS(X)
       - КОСИНУС ВЕЩЕСТВЕННОГО АРГУМЕНТА; ТИП  ПАРАМЕТРА  -
         ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

DCOS(X)
       - КОСИНУС АРГУМЕНТА С ДВОЙНОЙ ТОЧНОСТЬЮ;  ТИП  ПАРА-
         МЕТРА - С ДВОЙНОЙ ТОЧНОСТЬЮ, ТИП ФУНКЦИИ - С ДВОЙ-
         НОЙ ТОЧНОСТЬЮ.

CCOS(Z)
       - КОСИНУС КОМПЛЕКСНОГО АРГУМЕНТА;  ТИП  ПАРАМЕТРА  -
         КОМПЛЕКСНЫЙ, ТИП ФУНКЦИИ - КОМПЛЕКСНЫЙ.










                           - 156 -

                     00014 - 01.35.02


ATAN(X)
       - АРКТАНГЕНС ВЕЩЕСТВЕННОГО АРГУМЕНТА; ТИП  ПАРАМЕТРА
         - ВЕЩЕСТВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

DATAN(X)
       - АРКТАНГЕНС  АРГУМЕНТА  С  ДВОЙНОЙ  ТОЧНОСТЬЮ;  ТИП
         ФУНКЦИИ - С ДВОЙНОЙ ТОЧНОСТЬЮ.

ATAN2(X,Y)
       - АРКТАНГЕНС ВЕЩЕСТВЕННОГО АРГУМЕНТА ОТ  "X/Y";  ТИП
         ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.

DATAN2(X,Y)
       - АРКТАНГЕНС АРГУМЕНТА С ДВОЙНОЙ ТОЧНОСТЬЮ ОТ "X/Y";
         ТИП ФУНКЦИИ - С ДВОЙНОЙ ТОЧНОСТЬЮ.


     ДОПОЛНИТЕЛЬНЫЕ МАТЕМАТИЧЕСКИЕ ФУНКЦИИ
     -------------------------------------

CONJG(Z)
       - ВЫДЕЛЕНИЕ КОМПЛЕКСНО-СОПРЯЖЕННОЙ  ВЕЛИЧИНЫ;  ЕСЛИ
         Z=X+I*Y, ТО CONJG(Z)=X-I*Y.

RAN(I,J)
       - ВЫЧИСЛЕНИЕ СЛУЧАЙНОГО ЧИСЛА, РАВНОМЕРНО  РАСПРЕДЕ-
         ЛЕННОГО НА ИНТЕРВАЛЕ ОТ 0 ДО 1; "I" И  "J"  ДОЛЖНЫ
         БЫТЬ ЦЕЛЫМИ ПЕРЕМЕННЫМИ, ПЕРВОНОЧАЛЬНО УСТАНОВЛЕН-
         НЫМИ В 0 ; ПОВТОРНАЯ УСТАНОВКА "I" И "J" В 0  ПОВ-
         ТОРНО  ГЕНЕРИРУЕТ   ПОСЛЕДОВАТЕЛЬНОСТЬ   СЛУЧАЙНЫХ
         ЧИСЕЛ; ИЗМЕНЕНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ ДЛЯ "I" И  "J"
         ВЫЗЫВАЕТ ГЕНЕРАЦИЮ НОВЫХ ПОСЛЕДОВАТЕЛЬНЫХ  СЛУЧАЙ-
         НЫХ ЧИСЕЛ.

TANH(X)
       - ТАНГЕНС ГИПЕРБОЛИЧЕСКИЙ; ТИП ПАРАМЕТРА  -  ВЕЩЕСТ-
         ВЕННЫЙ, ТИП ФУНКЦИИ - ВЕЩЕСТВЕННЫЙ.
