fdvm_guid-r (1158377)

Файл №1158377 fdvm_guid-r (Раздаточные материалы)fdvm_guid-r (1158377)2019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

19




Компилятор Fortran DVM

(Руководство пользователя)

Октябрь 20, 1999

Версия 2.0

Институт Прикладной Математики им. М.В.Келдыша

Российская Академия Наук

Оглавление

1 НАЗНАЧЕНИЕ КОМПИЛЯТОРА 3

2 ВЫЗОВ КОМПИЛЯТОРА 3

3 ОПЦИИ КОМПИЛЯТОРА 3

4 СООБЩЕНИЯ КОМПИЛЯТОРА 6

1. Назначение компилятора

Язык FDVM является расширением языка Фортран 77 для параллельного программирования в модели DVM. Расширение оформлено в виде специальных комментариев (директив), которые аннотируют последовательную программу на языке Фортран 77.

Компилятор транслирует исходную программу на языке FDVM в следующие выходные программы.

Параллельная программа на языке Фортран 77 с вызовами функций системы поддержки параллельного выполнения (LIB-DVM). Эта программа может выполняться в псевдо-паралелльном режиме на одном процессоре (рабочей станции) и в параллельном режиме на многопроцессорной ЭВМ.

Последовательная программа на языке Фортран 77 с вызовами функций сбора информации для отладки и оценки производительности. Программа выполняется на одном процессоре в последовательном режиме. Такой режим необходим для сравнения последовательного и параллельного выполнения.

Программа на языке HPF. Программа может выполняться только в среде компилятора с языка HPF.

Для последовательной и параллельной программы могут быть заданы различные уровни отладки и оценки производительности.

2. Вызов компилятора

Вызов компилятора осуществляется следующей командной строкой:

dvm fdv [ опции ] входной-файл

где

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

входной-файл – имя файла (без расширения), который содержит текст исходной программы на языке FDVM. Файл должен иметь расширение .fdv. Поиск входного файла производится только в текущей директории.

3. Опции компилятора

Для описания синтаксиса опций введены следующие обозначения. Жирным шрифтом будем выделять ключевые символы, а курсивом – параметры опций. Ниже перечислены опции компилятора.

-o file

Поместить выходную программу в файл file.

-s

Генерировать последовательную выходную программу.

-p

Генерировать параллельную выходную программу.

-hpf

Генерировать выходную программу на языке HPF.

-v

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

-Idir

Добавить директорию dir в список директорий, в которых осуществляется поиск include файлов.

-bindk

Задает соответствие типов данных в компиляторах с языков Фортран и Си.

-dlevel

Генерировать дополнительный код для отладки программы.

-elevel

Генерировать дополнительный код для анализа производительности программы.

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

-o file

где file представляет собой имя файла. Если опция не указана, то по умолчанию, выходной файл получает имя входной-файл.f или входной-файл.hpf в режиме генерации программы на языке HPF. Выходной файл записывается в текущую директорию.

Тип генерируемой программы. Тип генерируемой программы указывается следующими опциями:

-s - последовательная программа

-p - параллельная программа

-hpf - программа на языке HPF

По умолчанию генерируется параллельная программа.

Директории для include-файлов. Если в исходной программе имеются операторы INCLUDE и не все include-файлы размещены в текущей директории, то необходимо указать опцию

-Idir

где dir - это имя директории. Поиск include-файла начинается с директорий, указанных в командной строке в том порядке, как они там перечислены. Затем поиск производится в текущей директории.

Дополнительная информация. Для идентификации версии компилятора и выполнения фаз компиляции необходимо указать опцию

-v

Соответствие типов данных. Соответствие типов данных в компиляторах с языков Си и Фортран для ЭВМ, на которой будет выполняться сгенерированная программа, указывается с помощью опции

-bindk

где k - это целое число, которое указывает номер таблицы соответствия.

k = 0:

Фортран

Си

Размер (в байтах)

integer

long

4

real

float

4

double precision

double

8

character

char

1

logical

long

4

k = 1:

Фортран

Си

Размер (в байтах)

integer

int

4

real

float

4

double precision

double

8

character

char

1

logical

int

4

integer*8

long

8

Соответствие типов определяется стандартными компиляторами с языков Си и Фортран для объектной ЭВМ. По умолчанию, считается k = 0.

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

-dlevel

где level – это целое число (от 1 до 4), которое указывает тип информации, проверяемой в процессе отладки.

  1. модификация распределенных массивов

  2. модификация и использование распределенных массивов

  3. модификация всех переменных

  4. модификация и использование всех переменных

Подробнее см. «Отладка DVM–программ. Руководство пользователя».

Анализ производительности. Для анализа производительности программы необходимо транслировать ее с указанием опции

-elevel

где level – это целое число (от 1 до 4), которое указывает анализируемое подмножество операторов.

  1. параллельные циклы и охватывающие их последовательные циклы

  2. интервалы операторов, указанные в программе посредством директив INTERVAL и END INTERVAL

  3. объединение подмножеств 1 и 2

  4. все циклы и интервалы

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

  • выполнение интервала всегда начинается с первого оператора,

  • выполнение интервала всегда заканчивается последним оператором.

Другими словами запрещены передачи управления извне внутрь интервала, и изнутри интервала - на оператор вне интервала.

Начало интервала специфицируется директивой

CDVM$ INTERVAL [целочисленное выражение]

которая помещается перед первым оператором интервала.

Конец интервала специфицируется директивой

CDVM$ END INTERVAL

которая помещается после последнего оператора интервала.

Подробнее см. «Отладка эффективности DVM-программ. Руководство пользователя».

Замечание. Наличие или отсутствие опций –bind, -s, -p,-d и -e не оказывает никакого влияния на генерацию программы на языке HPF ( режим -hpf).

4. Сообщения компилятора

Если компилятор обнаруживает в исходной программе ошибку, то он выдает сообщение следующего вида

тип-сообщения номер-сообщения on line номер-строки of имя-файла: текст‑сообщения

где

тип-сообщения - Warning – предупреждающее сообщение, не препятствующее генерации выходной программы.

Error – ошибка, при которой невозможна генерация программы.

номер-строки - целое число, которое указывает номер строки в файле имя-файла, при анализе которой обнаружена ошибка.

текст-сообщения - текст сообщения на английском языке.

Ниже приведены номера ошибок, тексты сообщений и пояснения к ним.

000

Compiler bug

Сообщение говорит об ошибке компилятора, а не пользователя. Рекомендуется сообщить об ошибке разработчикам компилятора.

001

Unknown option option is ignored

Предупреждение. Неправильно заданная (в командной строке) опция игнорируется.

002

Invalid option argument arg is ignored

Предупреждение. Неправильно заданный (в командной строке) параметр опции игнорируется.

003

No source file specified

В командной строке не указано имя входного файла.

004

Illegal command line format

Неправильный формат командной строки. Все опции должны предшествовать имени входного файла.

005

Can't open file filename

В текущей директории нет входного файла или он защищен от чтения. Include-файл не найден или защищен от чтения.

006

Can't open file filename for write

Вероятно, пользователь не имеет прав на запись в текущую директорию.

007

Null program

Входной файл не содержит программу на языке FDVM.

008

Missing final end statement or unclosed construct

Оператор PROGRAM, SUBROUTINE, FUNCTION,или BLOCK DATA не имеет завершающего END или нет завершающего оператора ENDIF или ENDDO для конструкции IF THEN или DO , соответственно.

009

Illegal continuation card ignored

Строка продолжения несовместима с начальной строкой или последняя отсутствует. В этом случае, строка продолжения игнорируется, а компилятор пытается продолжить анализ оператора.

010

Unclassifiable statement

Вероятно, неверно задано ключевое слово оператора Фортран 77 или директивы FDVM.

011

Non digit in statement number field

Поле метки содержит не цифровой символ.

012

Unbalanced quotes; closing quote supplied

Нет закрывающего апострофа.

013

Unbalanced parentheses, statement skipped

Несоответствие открывающих и закрывающих скобок.

014

Syntax error

Ошибка синтаксиса оператора Фортран 77 или директивы FDVM.

015

Comment too long. Truncated to 160 characters

Предупреждение. Комментарий превышает 160 символов.

016

Inconsistent declaration of identifier identifier

Имя уже использовалось для другого объекта.

017

Inconsistent constant declaration identifier

Идентификатор PARAMETER уже использован для другого объекта.

018

Inconsistent array declaration of identifier identifier

Идентификатор массива уже описан другим способом.

019

Inconsistent function identifier

Идентификатор FUNCTION уже определен как другой глобальный объект или как локальный массив.

020

Inconsistent procedure identifier

Идентификатор EXTERNAL уже определен как другой глобальный объект.

021

Inconsistent subroutine identifier

Идентификатор SUBROUTINE уже определен как другой глобальный объект.

022

Inconsistent program declaration identifier

Идентификатор PROGRAM уже определен как COMMON, FUNCTION, или SUBROUTINE.

023

Inconsistent common declaration identifier

Идентификатор COMMON уже определен как FUNCTION, PROGRAM или SUBROUTINE.

024

Function has the same name as a common block identifier

Предупреждение. Идентификатор функции совпадает с идентификатором COMMON блока.

025

Common block has the same name as a function identifier

Предупреждение. Идентификатор COMMON блока совпадает с идентификатором функции.

026

Inconsistent operands to boolean operation

Несовместимость операндов логической операции

027

Inconsistent operands to arithmetic operation

Несовместимость операндов арифметической операции

028

Non-logical expression in IF statement

Не логическое выражение в операторе IF

029

Statement order error: declaration after DATA or function statement

Неверный порядок операторов: оператор спецификации после оператора DATA или описания операторной функции.

030

Declaration among executables

Неверный порядок операторов: оператор спецификации среди исполняемых операторов.

031

ELSEIF out of place

Нарушено правило вложенности конструкций. Оператору ELSEIF невозможно сопоставить оператор IF-THEN.

032

ELSE out of place

Нарушено правило вложенности конструкций. Оператору ELSE невозможно сопоставить оператор IF-THEN.

033

Misplaced PROGRAM statement

Оператор PROGRAM расположен не на своем месте.

034

Misplaced SUBROUTINE statement

Оператор SUBROUTINE расположен не на своем месте.

035

Misplaced ENTRY statement

Оператор ENTRY расположен не на своем месте.

036

Statement cannot be reached

Предупреждение. Оператор никогда не будет выполнен.

037

IMPLICIT item must be single letter

В операторе IMPLICIT единицей спецификации должна быть буква.

038

Label out of range

Метка вне диапазона 199999.

039

Label already that of a format

Метка совпадает с ранее описанной меткой оператора FORMAT.

040

Label label already defined

Повторное определение метки.

041

Non character entity identifier has length specification

Спецификация количества байтов при идентификаторе (например, CH*6) разрешена только в операторе CHARACTER.

042

No dimensions in DIMENSION statement

В операторе DIMENSION отсутствует спецификация измерений.

043

Too many dimensions

Количество измерений массива больше 7.

044

can't subscript identifier

Индексируется объект, не являющийся массивом.

045

can't take substring of identifier

Ссылка на подстроку не символьного объекта.

046

No backward DO loops

Метка цикла определена до оператора DO.

047

Symbolic constant not allowed as DO variable

Управляющей переменной цикла не может быть именованная символьная константа.

048

Must go to assigned variable

В операторе GO TO по предписанию должна быть указана переменная, получившая значение при помощи оператора ASSIGN.

049

Missing DVM directive prefix

Отсутствует префикс CDVM$ или *DVM$ перед DVM директивой.

050

Explicit shape specification is required

Требуется спецификация явной конфигурации в операторах PROCESSORS и TEMPLATE.

051

Distribution format list is omitted

Нет списка форматов распределения в директиве DISTRIBUTE.

052

NEW_VALUE specification in DISTRIBUTE directive

Спецификация NEW_VALUE может присутствовать только в директиве REDISTRIBUTE или REALIGN.

053

Illegal use of PROCESSORS name identifier

Идентификатор массива процессоров можно использовать только в операторах DISTRIBUTE, REDISTRIBUTE и MAP.

054

A distributee may not have the ALIGN attribute: identifier

Массив уже имеет атрибут ALIGN.

055

Distribution format BLOCK(n) is not permitted in FDVM

Формат распределения BLOCK(n) не поддерживается в FDVM.

056

Illegal shadow width specification

Неверная спецификация размера теневых граней.

057

An alignee may not have the DISTRIBUTE attribute:'identifier'

Массив уже имеет атрибут DISTRIBUTE.

058

The alignee identifier isn't an array

Объект, специфицированный директивой ALIGN, не является массивом.

059

'identifier' hasn't the DYNAMIC attribute

Указанный массив не имеет атрибута DYNAMIC.

060

'identifier' hasn't the ALIGN attribute

Указанный массив не имеет атрибута ALIGN.

061

The align-target identifier isn't declared as array

Объект, указанный в директиве ALIGN в качестве базы выравнивания, не является массивом.

062

The align-dummy identifier isn't a scalar integer variable

Идентификатор измерения (align-dummy), используемый в директиве ALIGN, должен быть скалярной целой переменной.

063

Illegal combination of attributes

Недопустимое сочетание атрибутов.

064

'identifier' has the DISTRIBUTE and ALIGN attribute

Указанный идентификатор имеет несовместимые атрибуты DISTRIBUTE и ALIGN.

065

No shape specification

Отсутствует спецификация измерений.

066

'identifier' isn't array

Указанный идентификатор не описан как массив.

067

'identifier' is not processor array

Требуется идентификатор массива процессоров.

068

'identifier' is not remote group name

Указанный идентификатор не имеет атрибута REMOTE_GROUP.

069

'identifier' is not declared as reduction group

Указанный идентификатор не имеет атрибута REDUCTION_GROUP.

070

Illegal reduction operation name

Неверно задано имя редукционной операции.

071

Illegal use of task array name identifier

Недопустимое использование идентификатора массива задач. Ссылка на массив задач может появиться только в директивах TASK_REGION, ON, REDISTRIBUTE, MAP и в директиве параллельного цикла задач.

072

'identifier' isn't distributed array

Требуется массив с атрибутом DISTRIBUTE, ALIGN или INHERIT.

074

'identifier' is not declared as group

Указанный идентификатор не имеет атрибута REMOTE_GROUP.

075

No dimension in TASK directive

Отсутствует спецификация измерения в директиве TASK.

076

Illegal rank of 'identifier'

Число измерений у массива задач больше 1.

077

'identifier' is not task array

Требуется массив задач.

078

Illegal interval number

В директиве INTERVAL номер интервала должен быть задан выражением целого типа.

079

Template 'identifier' is in COMMON

Идентификатор TEMPLATE не может быть описан как элемент COMMON блока.

080

Template may not be a dummy argument: identifier

Идентификатор c атрибутом TEMPLATE не может быть формальным аргументом.

081

ENTRY among specification statements

Предупреждение. Оператор ENTRY среди операторов спецификации.

082

Duplicate aligning of the array 'identifier'

Повторное выравнивание указанного массива.

083

POINTER 'identifier' is not integer variable

Идентификатор с атрибутом POINTER должен иметь тип INTEGER.

084

POINTER may not have SAVE attribute: identifier

Идентификатор с атрибутом POINTER не может иметь атрибут SAVE.

085

POINTER 'identifier' is not distributed object

Идентификатор с атрибутом POINTER должен иметь атрибут DISTRIBUTE или ALIGN.

086

Object 'identifier' has neither TEMPLATE nor PROCESSORS attribute

В объединенной директиве спецификации с атрибутом DIMENSION может быть описан только объект TEMPLATE или PROCESSORS.

088

Length of shadow-edge-list is not equal the rank of array 'identifier'

Число указанных теневых граней не равно числу измерений массива.

089

attribute attribute appears more than once in the combined-directive

Указанный атрибут упоминается более одного раза в объединенной директиве спецификации.

090

The number of BLOCK/GENBLOCK elements of dist-format-list is not equal the rank of PROCESSORS 'identifier'

Количество форматов BLOCK и GENBLOCK не равно количеству измерений массива процессоров.

092

Alignment tree root 'identifier' is not distributed

Корень дерева выравнивний массива не имеет атрибута DISTRIBUTE.

093

PAUSE statement is not permitted in FDVM

Оператор PAUSE запрещен в FDVM

094

Illegal statement in the range of parallel loop

Недопустимый оператор в теле параллельного цикла.

095

Only a value of ALLOCATE function or other POINTER may be assigned to a POINTER

Переменной POINTER можно присвоить только значение другой переменной POINTER или значение функции ALLOCATE.

096

Nested PARALLEL directives are not permitted

Вложенные параллельные циклы не допускаются.

097

PARALLEL directive must be followed by DO statement

Директива PARALLEL должна предшествовать оператору DO.

098

The directive is inside the range of PARALLEL loop

В теле параллельного цикла не должно быть директив FDVM.

099

Misplaced REMOTE_ACCESS directive

Директива REMOTE_ACCESS находится не на своем месте.

100

Nested TASK_REGION are not permitted

Запрещена вложенность конструкций TASK_REGION.

101

Statement is outside of on-block

Оператор внутри TASK_REGION не входит ни в один ON–блок.

102

No matching TASK_REGION

Для директивы END TASK_REGION нет соответствующей директивы TASK_REGION.

103

Misplaced directive

Директива не на своем месте. Область задач или ON –блок не является блоком операторов.

104

Nested ON-blocks are not permitted

Запрещена вложенность ON –блоков.

105

ON directive is outside of the task region

Директива ON вне области задач.

106

No matching ON directive

Для директивы END ON нет соответствующей директивы ON.

107

Parallel-task-loop directive is outside of the task region

Параллельный цикл задач вне области задач.

110

Rank of array identifier is not equal the length of the dist-format-list

Число измерений массива не равно числу указанных форматов.

111

Saved object may not have the DYNAMIC attribute: identifier

Массив имеет несовместимые атрибуты DYNAMIC и SAVE.

112

Object in COMMON may not have the DYNAMIC attribute: identifier

Массив имеет несовместимые атрибуты DYNAMIC и COMMON.

113

'identifier' hasn't the DYNAMIC attribute

Массив должен иметь атрибут DYNAMIC.

114

'identifier' does not appear in DISTRIBUTE/INHERIT directive

Массив должен иметь атрибут DISTRIBUTE или INHERIT.

116

Template 'identifier' appears as an alignee

Шаблон не может иметь атрибут ALIGN.

117

Dummy argument 'identifier' is aligned with local array

Формальный аргумент не может быть выровнен на локальный массив.

118

Aligned array 'identifier' is in COMMON but align-target is not

Массив с атрибутом COMMON может быть выровнен только на массив с атрибутом COMMON.

119

Aligned array 'identifier' has SAVE attribute but align-target has not

Массив с атрибутом SAVE может быть выровнен только на массив с атрибутом SAVE.

120

'identifier' does not appear in ALIGN and INHERIT directive

Массив должен иметь атрибут ALIGN или INHERIT.

122

Descriptor array error

Неверно задан аргумент функции ALLOCATE – дескриптор динамического массива.

123

Rank of pointer identifier is not equal the length of the dist-format-list

Количество измерений динамического массива не совпадает с количеством заданных форматов.

124

Array 'identifier' may not be allocated

Указанный динамический массив не может быть размещен.

125

Array 'identifier' may not be aligned

Указанный массив не может быть выровнен.

126

Illegal aligning of 'identifier'

Неправильное задание выравниваний массивов (циклическая цепочка выравниваний).

127

Distributed object 'identifier' is not array

Атрибут DISTRIBUTE, ALIGN или INHERIT может иметь только массив.

128

Rank of aligned array identifier isn't equal the length of align-source-list

Длина списка идентификаторов измерений в директиве ALIGN/REALIGN не совпадает с числом измерений указанного массива.

130

Wrong align-subscript expression

Нелинейное выражение выравнивания. Выражения выравнивания, операндом которого является идентификатор измерения I, должно иметь вид: a*I + b, где a, b – константа, переменная или выражение, заключенное в скобки.

131

Align-target 'identifier' isn't declared as array

База выравнивания - не массив.

132

Rank of align-target 'identifier' isn't equal the length of align-subscript_list

Число индексов базы выравнивания не равно числу измерений по описанию.

133

More one occurenсe of do-variable 'identifier' in iteration-align-subscript-list

Повторное использование указанной переменной цикла в списке индексов базы выравнивания в директиве PARALLEL.

134

More one occurence of align-dummy 'identifier' in align subscript list

Повторное использование указанного идентификатора измерения в списке индексов базы выравнивания.

135

More one occurence of a do-variable in do-variable-use expression

Повторное использование указанной переменной цикла в выражении выравнивания.

136

More one occurence of an align-dummy in align-subscript expression

Повторное использование указанного идентификатора измерения в выражении выравнивания.

137

Illegal group name use: 'identifier'

Недопустимое использование идентификатора группы.

138

Illegal POINTER reference: 'identifier'

Недопустимое использование переменной с атрибутом POINTER.

140

Wrong number of subscripts specified for identifier

Число индексов не равно числу измерений массива по описанию.

142

Low shadow width of 'identifier' is greater than the corresponding one specified in SHADOW directive

Размер левой теневой грани больше чем в директиве SHADOW.

143

High shadow width of 'identifier' is greater than the corresponding one specified in SHADOW directive

Размер правой теневой грани больше чем в директиве SHADOW.

144

Low shadow width of 'identifier' is greater than 1

Размер левой теневой грани больше 1.

145

High shadow width of 'identifier' is greater than 1

Размер правой теневой грани больше 1.

147

Illegal operand list of MAXLOC/MINLOC

Неверный список операндов редукционной операции MAXLOC/MINLOC.

148

'identifier' is distributed array

Не допускается использование массива с атрибутом DISTRIBUTE, ALIGN или INHERIT.

149

Wrong operand of MAXLOC/MINLOC: identifier

Второй операнд редукционной операции MAXLOC/MINLOC должен быть одномерным массивом или скалярной переменной целого типа.

151

Wrong reduction variable 'identifier'

В качестве редукционной переменной можно использовать только одномерный массив или скалярную переменную.

152

Wrong type of reduction variable 'identifier'

Неверный тип редукционной переменной.

153

Double NEW clause

Повторная спецификация NEW.

154

Double REDUCTION clause

Повторная спецификация REDUCTION.

155

Double SHADOW_RENEW clause

Повторная спецификация SHADOW_RENEW.

156

Double REMOTE_ACCESS clause

Повторная спецификация REMOTE_ACCESS.

157

Double ACROSS clause

Повторная спецификация ACROSS.

158

Length of do-variable list in PARALLEL directive is greater than the number of nested DO statements

Количество переменных цикла, указанных в директиве PARALLEL, превышает количество операторов DO тесно-гнездового цикла.

159

Illegal do-variable-list in PARALLEL directive

Переменные цикла, указанные в директиве PARALLEL, не соответствуют переменным тесно-гнездового цикла.

160

Wrong iteration-align-subscript in PARALLEL

Нелинейное выражение выравнивания в директиве PARALLEL. Выражения выравнивания, операндом которого является переменная цикла I, должно иметь вид: a*I + b, где a, b – константа, переменная или выражение, заключенное в скобки.

161

Rank of array 'identifier' isn't equal the length of iteration-align-subscript-list

Число индексов базы выравнивания в директиве PARALLEL не равно числу измерений массива по описанию.

162

Assumed-size array: identifier

Формальный аргумент - массив неопределенного размера не может использоваться ни как элемент ввода-вывода, ни как удаленная переменная в директиве REMOTE_ACCESS. В этих случаях размер массива должен быть известен.

163

Reverse is not supported

Выравнивание по убыванию индексов (реверс) запрещено.

164

Wrong regular subscript expression

Не регулярное индексное выражение в директиве REMOTE_ACCESS.

165

Length of remote-subscript-list is not equal the rank of remote variable

Число индексов удаленной ссылки не соответствует числу измерений массива.

167

Illegal template reference: 'identifier'

Идентификатор с атрибутом TEMPLATE может использоваться только в директивах ALIGN, REALIGN и PARALLEL.

168

Illegal variable in new-clause: identifier

Указанная переменная не может быть указана в спецификации NEW.

169

ENTRY of program unit distributed arrays are in

Предупреждение. Оператор ENTRY в процедуре, где используются распределенные массивы.

171

No subscripts: identifier

В ссылке на массив отсутствуют индексы.

172

POINTER 'identifier' in left part of assign statement has DISTRIBUTE or ALIGN attribute

Указатель на массив в левой части оператора присваивания не должен иметь атрибутов DISTRIBUTE и ALIGN.

173

Pointers are of different rank

Указатели на массивы с разным числом измерений.

174

Pointers are of different type

Указатели на массивы с разным типом данных.

176

'identifier' hasn't PROCESSORS/TASK attribute

Идентификатор должен иметь атрибут PROCESSORS или TASK.

177

Associated actual arguments must be aligned

Предупреждение. Фактические аргументы должны быть выровнены.

178

Illegal type of do-variable 'identifier'

Недопустимый тип переменной цикла.

179

Wrong dependence length of distributed array 'identifier'

Длина зависимости, заданная в спецификации ACROSS для указанного массива, не является целой константой.

180

Wrong dependence length list of distributed array 'identifier'

Число длин зависимостей, заданных в спецификации ACROSS для указанного массива, не совпадает с числом его измерений.

181

Illegal fragment number

Номер фрагмента в директиве DEBUG/ENDDEBUG должен быть целой константой без знака.

182

Unmatched directive

Для директивы END DEBUG не обнаружено соответствующей директивы DEBUG.

183

Buffer limit is exceeded

Количество удаленных ссылок (буферов) для одного массива не может быть больше 5.

184

Illegal I/O statement in the range of parallel loop

Недопустимый оператор ввода-вывода в теле параллельного цикла.

185

Illegal elements in control list

Неверные элементы в списке управляющей информации оператора ввода-вывода.

186

END= and ERR= specifiers are illegal in FDVM

Спецификаторы END= and ERR= запрещены в FDVM

187

IOSTAT= specifier is illegal in I/O of distributed array

Использование спецификатора IOSTAT= при вводе-выводе распределенного массива запрещено.

189

Invalid format specification

Указано неверное значение спецификатора FMT = .

190

Illegal I/O list

Недопустимый список ввода-вывода. FDVM накладывает ограничения на ввод-вывод распределенных массивов. Либо список ввода-вывода состоит из одного идентификатора распределенного массива, либо он не включает ссылок на распределенные массивы.

191

I/O of distributed array controlled by format specification or NAMELIST is not supported in FDVM

Для ввода-вывода распределенного массива по формату допускается только формат, заданный «*».

192

Illegal I/O list item: identifier

В списке ввода-вывода – ссылка на элемент распределенного массива. В FDVM разрешается вводить-выводить распределенный массив только целиком.

193

Array shape declaration error: 'identifier'

Ошибка в описании измерений массивов.

194

Can't calculate array length: identifier

Неизвестен размер массива.

195

Can’t find the corresponding MAP directive

Не обнаружено соответствующей директивы MAP.

196

Incorrect call of ALLOCATE function

Неверный список аргументов при вызове функции ALLOCATE.

Характеристики

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее