Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
современный фортран , Бортеньев.pdf
Скачиваний:
242
Добавлен:
26.03.2015
Размер:
2.34 Mб
Скачать

4. Массивы

Результат:

5.00

6.00

7.00

8.00

9.00

10.00

12.00

14.00

16.00

18.00

15.0018.00 21.00 24.00 27.00

Замечание. Рассмотренное умножение вектор-столбца x на вектор-строку yT называют внешним произведением. Ранг внешнего произведения, когда x и y действительные векторы, не выше единицы.

4.12.3. Справочные функции для массивов

4.12.3.1. Статус размещаемого массива

ALLOCATED(array) - возвращает значение стандартного логического типа, равное .TRUE., если размещаемый массив array (массив, имеющий атрибут ALLOCATABLE) в данный момент размещен, и.FALSE. - в противном случае. Результат будет неопределенным, если не определен статус размещаемого массива. Возникнет ошибка компиляции, если параметром функции окажется массив, не имеющий атрибут ALLOCATABLE, илискаляр.

4.12.3.2. Граница, форма и размер массива

Функции этого раздела выдают информацию о границах массива любого типа. Если параметром является размещаемый массив, то он должен быть размещен, а если ссылка, то она должна быть прикреплена к адресату. Нижние границы сечения массива считаются равными единице, а верхние - равными соответствующим экстентам. Поскольку результат зависит только от свойств массива, то его значение необязательно должно быть определенным. В функциях этого подраздела (кроме функции SHAPE) параметр dim - целое константное выражение; 1 dim n, где n - ранг массива - аргумента функции.

LBOUND(array [, dim]) - если параметр dim отсутствует, то возвращается одномерный массив стандартного целого типа, содержащий нижние границы всех измерений. Размерность массива-результата при отсутствии dim равна рангу массива array. Если dim задан, то результатом является скаляр, равный нижней границе размерности dim массива array.

Если array - перенимающий размер массив, то параметр dim должен быть задан и не должен задавать последнюю размерность массива array.

dim - целочисленное константное выражение; 1 dim n, где n - ранг массива array.

UBOUND(array [, dim]) - подобна LBOUND, но возвращает верхние границы.

Пример:

real array (2:8, 8:14) integer, allocatable :: lb(:)

allocate( lb(size(shape(array))) )

147