Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инфа теор вопр.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
94.22 Кб
Скачать

26. Использование общей области в Фортране: назначение общей области, правила размещения в ней переменных, существующие в Фортране ограничения при описании общих областей.

В фортране существует два способа передачи переменных из области в область:

1) передача через заголовок (через формальные и фактические параметры)

2) разместить их в общей области

Общая область позволяет совместить в памяти переменные и массивы, определенные в подпрограммах одной программы.

Локальная память доступна одному модулю, а общая память – нескольким.

ПРАВИЛА РАЗМЕЩЕНИЯ:

Чтобы переменные были размещены в общей области, их надо описать оператором common: /O1(имя общей области) SP1(имена переменных, размещенных в O1/ O2 / SP2/…

В Фортране можно использовать одну неименованную область – имя области опущено, или несколько именованных.

Если именованная область стоит вначале, то опускаются имя и черточки.

ЧТО МОЖЕТ СТОЯТЬ В СПИСКЕ ОБЩЕЙ ОБЛАСТИ:

1) простая переменная

2) имя массива

3) определение массива

Массив не должен быть описан в dimension.

ПРАВИЛА ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА COMMON:

1) Массив, указанный в операторе COMMON не может иметь переменные границы.

2) В каждом программном модуле переменные и массивы размещаются в указанной ОО, начиная с ее первой ячейки в порядке их перечисления.

3) Имена элементов списка не обязаны совпадать в разных программных модулях

Используем одну неименованную общую область. Объекты, перечисленные в операторе COMMON, будут занимать те же участки в общей области, что и объекты с тем же порядковым номером в списке оператора COMMON другого программного модуля. При этом должно соблюдаться соответствие по типам. В случае использования нескольких, список строится в порядке в порядке следования этих операторов. Длины одних и тех же именованных областей должны быть одинаковыми везде, а длина неименованной может быть различной. Память выделяется по максимальной длине.

В одном операторе COMMON может несколько раз встречаться имя одной и той же области, тогда ее значение определяется общей совокупностью объектов, записанных после всех хождений ее имени.

Объекты, указанные в операторе COMMON, не могут быть формальными параметрами. Имена общих областей не должны использоваться в программе для других целей.

Присваивание начальных значений данных из общей области. Нельзя присвоить начальное значение с помощью операторов DATE. Элементам из именованной области можно задать значения в программном модуле (подпрограмма данных).

BLOCK DATA <имя>

{операторы}

End

В этой подпрограмме могут стоять операторы: DATA, описание типов, DIMENSION, COMMON

При этом в операторе COMMON должны быть перечислены все элементы из именованной общей области.

В подпрограмме данных не нужно передавать управление, она подключается перед выполнением программы. Одна программа может содержать несколько подпрограмм. Данным из неименованной общей области с помощью подпрограммы нельзя задать начальные значения. Если одна из переменных в общей области имеет символьный тип, то остальные должны быть символьного типа и размер общей области в памяти равен количеству символьных единиц, занятых объектами. Размер этой области памяти должен быть равен количеству символьных единиц памяти, входящих в эту память.

Размер этой области памяти должен быть равен количеству символьных единиц памяти, входящих в эту память.