Компилятор GNU Fortran
Краткое содержание
- Введение
- 1 Введение
- 2 Опции командной строки GNU Fortran
- 3 Выполнение: Управление поведением во время выполнения с помощью переменных среды
- 4 Статус Fortran 2003 и 2008
- 5 Характеристики компилятора
- 6 Расширения
- 7 Программирование на смешанных языках
- 8 Встроенные процедуры
- 9 Встроенные модули
- Содействие
- Общая публичная лицензия GNU
- Лицензия GNU на свободную документацию
- Финансирование свободного программного обеспечения
- Индекс опций
- Индекс ключевых слов
Содержание
- Введение
- 1 Введение
- 2 Опции командной строки GNU Fortran
- 2.1 Краткое описание опций
- 2.2 Опции, контролирующие диалект Fortran
- 2.3 Включение и настройка предварительной обработки
- 2.4 Опции запроса или подавления ошибок и предупреждений
- 2.5 Опции для отладки программы или GNU Fortran
- 2.6 Опции для поиска каталогов
- 2.7 Влияние на этап компоновки
- 2.8 Влияние на поведение во время выполнения
- 2.9 Опции для соглашений о генерации кода
- 2.10 Переменные окружения, влияющие на
gfortran
- 3 Режим выполнения: Влияние на поведение во время выполнения с помощью переменных окружения
- 3.1
TMPDIR—Директория для временных файлов - 3.2
GFORTRAN_STDIN_UNIT—Номер устройства для стандартного ввода - 3.3
GFORTRAN_STDOUT_UNIT—Номер устройства для стандартного вывода - 3.4
GFORTRAN_STDERR_UNIT—Номер устройства для стандартной ошибки - 3.5
GFORTRAN_UNBUFFERED_ALL—Отключить буферизацию ввода-вывода для всех устройств - 3.6
GFORTRAN_UNBUFFERED_PRECONNECTED—Отключить буферизацию ввода-вывода для предварительно подключенных устройств - 3.7
GFORTRAN_SHOW_LOCUS—Показать местоположение для ошибок во время выполнения - 3.8
GFORTRAN_OPTIONAL_PLUS—Выводить ведущий знак + там, где разрешено - 3.9
GFORTRAN_DEFAULT_RECL—Длина записи по умолчанию для новых файлов - 3.10
GFORTRAN_LIST_SEPARATOR—Разделитель для вывода списка - 3.11
GFORTRAN_CONVERT_UNIT—Установить порядок байтов для неформатированного ввода-вывода - 3.12
GFORTRAN_ERROR_BACKTRACE—Показать трассировку стека при ошибках во время выполнения
- 3.1
- 4 Состояние Fortran 2003 и 2008
- 5 Характеристики компилятора
- 6 Расширения
- 6.1 Расширения, реализованные в GNU Fortran
- 6.1.1 Спецификации типа kind старого стиля
- 6.1.2 Инициализация переменных старого стиля
- 6.1.3 Расширения для списков имен
- 6.1.4
Xформат-описатель без поля счётчика - 6.1.5 Запятые в спецификациях
FORMAT - 6.1.6 Отсутствующая точка в спецификациях
FORMAT - 6.1.7 Списки элементов ввода-вывода
- 6.1.8
Qпоказатель степени - 6.1.9 Булевы константы-литералы
- 6.1.10 Индексы массивов с вещественными значениями
- 6.1.11 Унарные операторы
- 6.1.12 Неявное преобразование
LOGICALиINTEGERзначений - 6.1.13 Поддержка констант Холлерита
- 6.1.14 Указатели Cray
- 6.1.15
CONVERTспецификатор - 6.1.16 OpenMP
- 6.1.17 Функции с аргументными списками
%VAL,%REFи%LOC
- 6.2 Расширения, не реализованные в GNU Fortran
- 6.1 Расширения, реализованные в GNU Fortran
- 7 Программирование на смешанных языках
- 7.1 Взаимодействие с C
- 7.2 Директивы компилятора GNU Fortran
- 7.3 Основная программа, не написанная на Fortran
- 7.3.1
_gfortran_set_args— Сохранить аргументы командной строки - 7.3.2
_gfortran_set_options— Установить флаги опций библиотеки - 7.3.3
_gfortran_set_convert— Установить преобразование порядка байтов - 7.3.4
_gfortran_set_record_marker— Установить длину маркеров записи - 7.3.5
_gfortran_set_fpe— Включить ловушки для исключений с плавающей точкой - 7.3.6
_gfortran_set_max_subrecord_length— Установить максимальную длину подзаписи
- 7.3.1
- 7.4 Правила именования и передачи аргументов
- 8 Встроенные процедуры
- 8.1 Введение в встроенные процедуры
-
8.2
ABORT— Прервать выполнение программы -
8.3
ABS— Модуль числа -
8.4
ACCESS— Проверка режимов доступа к файлам -
8.5
ACHAR— Символ в последовательности ASCII -
8.6
ACOS— Функция арккосинуса -
8.7
ACOSH— Обратная гиперболическая функция косинуса -
8.8
ADJUSTL— Выравнивание строки влево -
8.9
ADJUSTR— Выравнивание строки вправо -
8.10
AIMAG— Мнимая часть комплексного числа -
8.11
AINT— Отрезание до целого числа -
8.12
ALARM— Выполнение процедуры после заданной задержки -
8.13
ALL— Все значения в MASK по DIM истинны -
8.14
ALLOCATED— Статус распределяемой сущности -
8.15
AND— Побитовое логическое И -
8.16
ANINT— Ближайшее целое число -
8.17
ANY— Любое значение в MASK по DIM истинно -
8.18
ASIN— Функция арксинуса -
8.19
ASINH— Обратная гиперболическая функция синуса -
8.20
ASSOCIATED— Статус указателя или пары указатель/цель -
8.21
ATAN— Функция арктангенса -
8.22
ATAN2— Функция арктангенса -
8.23
ATANH— Обратная гиперболическая функция тангенса -
8.24
ATOMIC_DEFINE— Установка переменной атомарно -
8.25
ATOMIC_REF— Получение значения переменной атомарно -
8.26
BACKTRACE— Отображение трассировки стека вызовов -
8.27
BESSEL_J0— Функция Бесселя первого рода нулевого порядка -
8.28
BESSEL_J1— Функция Бесселя первого рода первого порядка -
8.29
BESSEL_JN— Функция Бесселя первого рода -
8.30
BESSEL_Y0— Функция Бесселя второго рода нулевого порядка -
8.31
BESSEL_Y1— Функция Бесселя второго рода первого порядка -
8.32
BESSEL_YN— Функция Бесселя второго рода -
8.33
BGE— Побитовое больше или равно -
8.34
BGT— Побитовое больше -
8.35
BIT_SIZE— Функция получения размера в битах -
8.36
BLE— Побитовое меньше или равно -
8.37
BLT— Побитовое меньше -
8.38
BTEST— Функция проверки бита -
8.39
C_ASSOCIATED— Статус C-указателя -
8.40
C_F_POINTER— Преобразование C-указателя в Fortran-указатель -
8.41
C_F_PROCPOINTER— Преобразование C-указателя на процедуру в Fortran-указатель на процедуру -
8.42
C_FUNLOC— Получение C-адреса процедуры -
8.43
C_LOC— Получение C-адреса объекта -
8.44
C_SIZEOF— Размер выражения в байтах -
8.45
CEILING— Функция целого потолка -
8.46
CHAR— Функция преобразования символов -
8.47
CHDIR— Изменение текущей рабочей директории -
8.48
CHMOD— Изменение разрешений доступа к файлам -
8.49
CMPLX— Функция преобразования в комплексное число -
8.50
COMMAND_ARGUMENT_COUNT— Получение количества аргументов командной строки -
8.51
COMPILER_OPTIONS— Опции, переданные компилятору -
8.52
COMPILER_VERSION— Строка версии компилятора -
8.53
COMPLEX— Функция преобразования в комплексное число -
8.54
CONJG— Функция комплексного сопряжения -
8.55
COS— Функция косинуса -
8.56
COSH— Функция гиперболического косинуса -
8.57
COUNT— Функция подсчёта -
8.58
CPU_TIME— Время работы процессора в секундах -
8.59
CSHIFT— Круговой сдвиг элементов массива -
8.60
CTIME— Преобразование времени в строку -
8.61
DATE_AND_TIME— Подпрограмма даты и времени -
8.62
DBLE— Функция преобразования в двойную точность -
8.63
DCMPLX— Функция преобразования в двойную комплексную точность -
8.64
DIGITS— Функция значимых битов -
8.65
DIM— Положительная разница -
8.66
DOT_PRODUCT— Функция скалярного произведения -
8.67
DPROD— Функция двойного произведения -
8.68
DREAL— Функция вещественной части в двойной точности -
8.69
DSHIFTL— Объединённый сдвиг влево -
8.70
DSHIFTR— Объединённый сдвиг вправо -
8.71
DTIME— Подпрограмма (или функция) времени выполнения -
8.72
EOSHIFT— Сдвиг элементов массива со сдвигом к концу -
8.73
EPSILON— Функция эпсилон -
8.74
ERF— Функция ошибки -
8.75
ERFC— Функция ошибки -
8.76
ERFC_SCALED— Функция ошибки -
8.77
ETIME— Подпрограмма (или функция) времени выполнения -
8.78
EXECUTE_COMMAND_LINE— Выполнение командной строки -
8.79
EXIT— Выход из программы со статусом. -
8.80
EXP— Экспоненциальная функция -
8.81
EXPONENT— Функция показателя -
8.82
EXTENDS_TYPE_OF— Запрос динамического типа для расширения -
8.83
FDATE— Получение текущего времени в виде строки -
8.84
FGET— Чтение одного символа в режиме потока из stdin -
8.85
FGETC— Чтение одного символа в режиме потока -
8.86
FLOOR— Функция целого пола -
8.87
FLUSH— Очистка буфера ввода-вывода -
8.88
FNUM— Функция номера файла -
8.89
FPUT— Запись одного символа в режиме потока в stdout -
8.90
FPUTC— Запись одного символа в режиме потока -
8.91
FRACTION— Дробная часть модели представления -
8.92
FREE— Освобождает память -
8.93
FSEEK— Подпрограмма низкого уровня для позиционирования в файле -
8.94
FSTAT— Получение статуса файла -
8.95
FTELL— Текущая позиция в потоке -
8.96
GAMMA— Функция гамма -
8.97
GERROR— Получение последнего сообщения об ошибке системы -
8.98
GETARG— Получение аргументов командной строки -
8.99
GET_COMMAND— Получение всей командной строки -
8.100
GET_COMMAND_ARGUMENT— Получение аргументов командной строки -
8.101
GETCWD— Получение текущей рабочей директории -
8.102
GETENV— Получение переменной окружения -
8.103
GET_ENVIRONMENT_VARIABLE— Получение переменной окружения -
8.104
GETGID— Функция группы идентификаторов -
8.105
GETLOG— Получение имени пользователя -
8.106
GETPID— Функция идентификатора процесса -
8.107
GETUID— Функция идентификатора пользователя -
8.108
GMTIME— Преобразование времени в GMT -
8.109
HOSTNM— Получение имени хоста системы -
8.110
HUGE— Наибольшее число определенного типа -
8.111
HYPOT— Функция евклидова расстояния -
8.112
IACHAR— Код в последовательности ASCII -
8.113
IALL— Побитовое И элементов массива -
8.114
IAND— Побитовое логическое И -
8.115
IANY— Побитовое ИЛИ элементов массива -
8.116
IARGC— Получение количества аргументов командной строки -
8.117
IBCLR— Сброс бита -
8.118
IBITS— Извлечение бита -
8.119
IBSET— Установка бита -
8.120
ICHAR— Функция преобразования символа в целое
-
8.121
IDATE— Получение текущего локального времени (день/месяц/год) -
8.122
IEOR— Битовое логическое исключающее ИЛИ -
8.123
IERRNO— Получение последнего номера системной ошибки -
8.124
IMAGE_INDEX— Функция, преобразующая индекс косубскрипта в индекс изображения -
8.125
INDEX— Позиция подстроки в строке -
8.126
INT— Преобразование к целому типу -
8.127
INT2— Преобразование к 16-битному целому типу -
8.128
INT8— Преобразование к 64-битному целому типу -
8.129
IOR— Битовое логическое ИЛИ -
8.130
IPARITY— Битовое XOR элементов массива -
8.131
IRAND— Целое псевдослучайное число -
8.132
IS_IOSTAT_END— Проверка на значение конца файла -
8.133
IS_IOSTAT_EOR— Проверка на значение конца записи -
8.134
ISATTY— Является ли устройство единицей терминала. -
8.135
ISHFT— Сдвиг битов -
8.136
ISHFTC— Круговой сдвиг битов -
8.137
ISNAN— Проверка на NaN -
8.138
ITIME— Получение текущего локального времени (час/минуты/секунды) -
8.139
KILL— Отправка сигнала процессу -
8.140
KIND— Тип сущности -
8.141
LBOUND— Нижние границы измерения массива -
8.142
LCOBOUND— Нижние границы коразмерности массива -
8.143
LEADZ— Количество старших нулевых битов целого числа -
8.144
LEN— Длина символьной сущности -
8.145
LEN_TRIM— Длина символьной сущности без символов пробела в конце -
8.146
LGE— Лексически больше или равно -
8.147
LGT— Лексически больше -
8.148
LINK— Создать жёсткую ссылку -
8.149
LLE— Лексически меньше или равно -
8.150
LLT— Лексически меньше -
8.151
LNBLNK— Индекс последнего непустого символа в строке -
8.152
LOC— Возвращает адрес переменной -
8.153
LOG— Функция натурального логарифма -
8.154
LOG10— Функция логарифма по основанию 10 -
8.155
LOG_GAMMA— Логарифм гамма-функции -
8.156
LOGICAL— Преобразование к логическому типу -
8.157
LONG— Преобразование к целому типу -
8.158
LSHIFT— Сдвиг битов влево -
8.159
LSTAT— Получение статуса файла -
8.160
LTIME— Преобразование времени в локальное время -
8.161
MALLOC— Выделение динамической памяти -
8.162
MASKL— Маска с выравниванием влево -
8.163
MASKR— Маска с выравниванием вправо -
8.164
MATMUL— Умножение матриц -
8.165
MAX— Максимальное значение списка аргументов -
8.166
MAXEXPONENT— Максимальный показатель степени вещественного типа -
8.167
MAXLOC— Позиция максимального значения в массиве -
8.168
MAXVAL— Максимальное значение массива -
8.169
MCLOCK— Функция времени -
8.170
MCLOCK8— Функция времени (64-битная) -
8.171
MERGE— Объединение переменных -
8.172
MERGE_BITS— Объединение битов по маске -
8.173
MIN— Минимальное значение списка аргументов -
8.174
MINEXPONENT— Минимальный показатель степени вещественного типа -
8.175
MINLOC— Позиция минимального значения в массиве -
8.176
MINVAL— Минимальное значение массива -
8.177
MOD— Функция остатка -
8.178
MODULO— Функция модуля -
8.179
MOVE_ALLOC— Перемещение выделения памяти из одного объекта в другой -
8.180
MVBITS— Перемещение битов из одного целого числа в другое -
8.181
NEAREST— Ближайшее представимое число -
8.182
NEW_LINE— Символ новой строки -
8.183
NINT— Ближайшее целое число -
8.184
NORM2— Евклидовы векторные нормы -
8.185
NOT— Логическое отрицание -
8.186
NULL— Функция, возвращающая разобщённый указатель -
8.187
NUM_IMAGES— Функция, возвращающая количество изображений -
8.188
OR— Битовое логическое ИЛИ -
8.189
PACK— Упаковка массива в массив ранга один -
8.190
PARITY— Сведение с использованием исключающего ИЛИ -
8.191
PERROR— Вывод сообщения об ошибке системы -
8.192
POPCNT— Количество установленных битов -
8.193
POPPAR— Чётность количества установленных битов -
8.194
PRECISION— Десятичная точность вещественного типа -
8.195
PRESENT— Определить, указан ли необязательный аргумент dummy -
8.196
PRODUCT— Произведение элементов массива -
8.197
RADIX— Основание модели числа -
8.198
RAN— Вещественное псевдослучайное число -
8.199
RAND— Вещественное псевдослучайное число -
8.200
RANDOM_NUMBER— Псевдослучайное число -
8.201
RANDOM_SEED— Инициализация последовательности псевдослучайных чисел -
8.202
RANGE— Диапазон десятичного показателя степени -
8.203
RANK— Ранг объекта данных -
8.204
REAL— Преобразование к вещественному типу -
8.205
RENAME— Переименование файла -
8.206
REPEAT— Повторение конкатенации строк -
8.207
RESHAPE— Функция для изменения формы массива -
8.208
RRSPACING— Взаимное значение относительного интервала -
8.209
RSHIFT— Сдвиг битов вправо -
8.210
SAME_TYPE_AS— Запрос динамических типов на равенство -
8.211
SCALE— Масштабирование вещественного значения -
8.212
SCAN— Поиск в строке набора символов -
8.213
SECNDS— Функция времени -
8.214
SECOND— Функция времени ЦП -
8.215
SELECTED_CHAR_KIND— Выбор типа символа -
8.216
SELECTED_INT_KIND— Выбор целочисленного типа -
8.217
SELECTED_REAL_KIND— Выбор вещественного типа -
8.218
SET_EXPONENT— Установка показателя степени модели -
8.219
SHAPE— Определение формы массива -
8.220
SHIFTA— Сдвиг вправо с заполнением -
8.221
SHIFTL— Сдвиг влево -
8.222
SHIFTR— Сдвиг вправо -
8.223
SIGN— Функция копирования знака -
8.224
SIGNAL— Подпрограмма (или функция) обработки сигналов -
8.225
SIN— Синус -
8.226
SINH— Гиперболический синус -
8.227
SIZE— Определение размера массива -
8.228
SIZEOF— Размер выражения в байтах -
8.229
SLEEP— Задержка на указанное количество секунд -
8.230
SPACING— Наименьшее расстояние между двумя числами заданного типа -
8.231
SPREAD— Добавление измерения к массиву -
8.232
SQRT— Функция квадратного корня -
8.233
SRAND— Переинициализация генератора случайных чисел -
8.234
STAT— Получение статуса файла -
8.235
STORAGE_SIZE— Размер памяти в битах -
8.236
SUM— Сумма элементов массива -
8.237
SYMLNK— Создание символической ссылки -
8.238
SYSTEM— Выполнение командной строки -
8.239
SYSTEM_CLOCK— Функция времени -
8.240
TAN— Тангенс -
8.241
TANH— Гиперболический тангенс
-
8.121
-
8.242
THIS_IMAGE— Функция, возвращающая индекс коподстроки данного изображения -
8.243
TIME— Функция времени -
8.244
TIME8— Функция времени (64-битная) -
8.245
TINY— Наименьшее положительное число вещественного типа -
8.246
TRAILZ— Количество нулевых битов в конце целого числа -
8.247
TRANSFER— Передача битовых шаблонов -
8.248
TRANSPOSE— Транспонирование массива ранга два -
8.249
TRIM— Удаление символов пробела в конце строки -
8.250
TTYNAM— Получение имени терминального устройства. -
8.251
UBOUND— Верхние границы измерения массива -
8.252
UCOBOUND— Верхние границы коразмерности массива -
8.253
UMASK— Установка маски создания файла -
8.254
UNLINK— Удаление файла из файловой системы -
8.255
UNPACK— Распаковка массива ранга один в массив -
8.256
VERIFY— Поиск в строке символов, не входящих в заданный набор -
8.257
XOR— Поразрядное логическое исключающее ИЛИ
-
8.242
- 9 Встроенные модули
- Содействие
- Общая публичная лицензия GNU
- Лицензия GNU на свободную документацию
- Финансирование свободного программного обеспечения
- Индекс параметров
- Индекс ключевых слов
Введение
В данном руководстве описывается использование gfortran, компилятора GNU Fortran. Вы найдете здесь, как вызвать gfortran, а также его особенности и несовместимости.
Часть I: Вызов GNU Fortran
Часть II: Справочник по языку
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/index.html