Spec-Zone.ru › GNU Fortran 4

7.3 Программа основного модуля (не Fortran)

  • _gfortran_set_args: Сохранение аргументов командной строки
  • _gfortran_set_options: Установка флагов опций библиотеки
  • _gfortran_set_convert: Установка преобразования порядка байтов
  • _gfortran_set_record_marker: Установка длины маркеров записей
  • _gfortran_set_fpe: Установка условий для повышения исключений при работе с плавающей точкой
  • _gfortran_set_max_subrecord_length: Установка длины подзаписей

Даже если вы работаете с программированием, смешивающим языки, скорее всего, вам не нужно знать или использовать информацию в этом разделе. Поскольку она связана с внутренней структурой GNU Fortran, она может также изменяться в незначительных выпусках GCC.

При компиляции PROGRAM с помощью GNU Fortran генерируется функция с именем main (в таблице символов объектного файла), которая инициализирует библиотеку libgfortran и затем вызывает фактическую программу с именем MAIN__, по историческим причинам. Если вы связываете процедуры, скомпилированные GNU Fortran, с, например, программой на C или C++, или с программой на Fortran, скомпилированной другим компилятором, библиотека libgfortran не инициализируется, и поэтому некоторые встроенные процедуры не работают должным образом, например, те, которые используются для получения аргументов командной строки.

Поэтому, если ваша PROGRAM не скомпилирована с помощью GNU Fortran, а процедуры, скомпилированные GNU Fortran, требуют встроенных процедур, которые полагаются на инициализацию библиотеки, вам необходимо самостоятельно инициализировать библиотеку. Используя стандартные параметры, gfortran вызывает _gfortran_set_args и _gfortran_set_options. Инициализация первого необходима, если вызываемые процедуры обращаются к командной строке (и для отслеживания стека вызовов); последняя устанавливает некоторые флаги, основанные на выбранном стандарте или для включения отслеживания стека вызовов. В типичных программах вызывать какие-либо функции инициализации не требуется.

Если ваша PROGRAM скомпилирована с помощью GNU Fortran, вам не следует вызывать ни одну из следующих функций. Функции инициализации libgfortran показаны в синтаксисе C, но с использованием привязок C они также доступны из Fortran.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/Non_002dFortran-Main-Program.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API