Использование компилятора Gfortran

RAAAR.RU

Меню сайта:

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


  Debian Gnu/Linux  Рейтинг@Mail.ru



Поиск по сайту



GNU Fortran: Использование компилятора


Скачать GFortran для Windows


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

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

Не забудьте прочитать вики-страницу о часто встречающихся проблемах с GNU Fortran!

Основное использование

GNU Fortran используется для компиляции исходного файла, source.f90 в объектный файл, object.o или в исполняемый (exe). По пути он генерирует описание модуля, файлы для модулей с которыми он работает. Эти файлы называются nameofmodule.mod Если используется модуль, gfortran будет читать из этих же файлов.

Для того, чтобы скомпилировать исходный файл source.f90 нужно запустить:

Gfortran -c source.f90

Выходной файл будет автоматически назван source.o Это объектный файл, который не может быть выполнен.

После того как вы собрали некоторые исходные файлы, вы можете связать их вместе с необходимыми библиотеками для создания исполняемого файла. Это делается следующим образом:

Gfortran -o исполняемый_файл object1.o object2.o ...

Где исполняемый_файл будет назван исполняемый_файл.exe и objectN.o - объектные файлы, которые могут быть созданы, как описано выше, или предварительно другим компилятором из исходников в другом языке.
Если -o исполняемый_файл не указан, исполняемый_файл будет назван a.out (на Cygwin системе: A.exe). Исполняемый файл может быть выполнен, как и любая другая программа..

Можно также выполнить отдельный этап компиляции и ввести такие команды, как:

Gfortran -o исполняемый_файл source1.f90 source2.f90

Который будет компилировать source1.f90 и source2.f90, создадутся ссылки и сгенерируется исполняемый исполняемый_файл в один шаг. Вы также можете поместить объектные файлы в этой командной строке, они будут автоматически связаны во время стадии компоновки.

Управление источником входного формата


GFortran 95 позволяет использование двух различных видов источников входных форматов (свободной формы исходного кода и фиксированной формы) компилятор должен знать, какой вид ввода задан. Правило состоит в следующем:

Файлы, название которых заканчивается на .F или на .for , как предполагается, фиксированной формы

Файлы, чье имя оканчивается на .f90 или на .f95 , как предполагается, будут в свободной формы записи кода.

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

Когда GNU Fortran работает с файлом, имя которого заканчивается на .f90 или на .f95 , он предполагает, что это файл свободной формы записи кода. Если этот файл на самом деле фиксированной формы кода, пользователь должен дать параметр командной строки -ffixed-form (фиксированной формы). Точная семантика этого варианта, и другие варианты, относящиеся к фиксированной форме исходного кода по сравнению со свободной формой исходного кода, такие же, как в g77, что можно прочесть в документации к g77.

При запуске Gfortran на самом деле не работает компилятор, а работает драйвер компилятора. Этот драйвер интерпретирует опции командной строки, и управляет компилятором, ассемблером и компоновщиком. По умолчанию, этот драйвер компилятора решает используя расширение имени заданного файла (f90 или f) , что делать. Файл с именем foo.c передается компилятору C, файл с именем foo.f90 передается компилятору Fortran 95 и т.д. Отменить это поведение можно объявив имя файла аргументом -x в командной строке, идентифицирующим требуемый язык. Для Fortran 95 это F95

Совместимость с g77


В целях эффективного осуществления прохождения секций массива, от двоичной совместимости с Fortran 77 пришлось отказаться. Не следует смешивать объектные файлы, полученные для g77 и gfortran, потому что тогда не получится рабочий исполняемый файл.

Запуск GNU Fortran в качестве инструмента проверки синтаксиса


Можно использовать GNU Fortran как Checker для проверки синтаксиса (или для того, чтобы убедиться, что интерфейс GNU Fortran правильно принимает или отклоняет программу), указав -fsyntax-only в командной строке. Gfortran не будет генерировать объектные файлы.

При введении параметра командной строки -fdump-parse-tree (разбора дерева) gfortran будет печатать представление разобранной программы, в котором подробно укажет объекты данных и исполняемые инструкции программы в Lisp-подобной форме.
Одно замечание - для Fortran старожилов: ASSIGN относятся не к ASSIGN заявлениям, но к работе задания, т.е. небрежно говоря, к оператору =.


Для полноценной разработки


рекомендуется пользоваться IDE, например Code::Blocks. Эта IDE имеет все что надо: подсветку синтаксиса, отладчик и многое другое.
На неофициальной странице можно скачать версию этой IDE с некоторыми полезными дополнениями специально для программистов на Фортране:

Http://cbfortran.sourceforge.net/downloads.html
(выбрать CodeBlocks_Fortran_v1.4_Win.zip)

Далее перейти в полученную папку и для начала установить права файлов CbLauncher.exe и codeblocks.exe для пользователей: Правая кнопка мыши - Свойства - вкладка "Безопасность" - выбрать "Пользователи" - кнопка "Изменить" - поставить галки "Полный доступ" - ОК.
Далее запустить файл CbLauncher.exe. IDE произведет поиск установленных в системе компиляторов и выведет диалоговое окно для выбора компилятора по умолчанию. В списке нужно найти "GNU Fortran Compiler", выделить его и нажать кнопку "Set as default". Далее будет выведен запрос на словари для проверки орфографии - тут можно поставить галочку "Don't annoy me again". На запрос об ассоциации файлов с типами c/c++ можно выбрать "No, leva everything as is", т.к. мы не будем работать с файлами с++. В будущем запускать Code::Blocks нужно файлом codeblocks.exe, при желании создав для него ярлык.
Для настройки C::B нужно главным образом указать путь к отладчику в меню Settings - Debugger - GDB/CDB debugger - Default. Для gfortran это будет c:\program files\gfortran\bin\gdb.exe. Рекомендуется поставить галку "Evaluate expressions under cursor".

Прим. Админ:
Для того, чтобы в среде Windows русский текст из программы на фортране корректно отображался надо исходный текст программы перекодировать в DOS-кодировку, т. есть в CP866 только после этого компилировать. Если программу запускаете из командной строки, то наоборот - исходник следует кодировать в CP1251, поскольку по умолчанию такова русификация рабочей среды пользователя. 



Оригинал:

GNU Fortran: Using the compiler
This page is meant to give a quick overview on how to use GNU Fortran. It is not a substitute for a complete manual, but it should get you going.
GNU Fortran builds on GCC, and thus shares most characteristics with it. If you know how to use GCC, there will not be much new information for you in this document. Especially, the options for optimization and the generation of debugging information are not outlined here.
Don't forget to read the wiki page about frequently encountered trouble with GNU Fortran, too!
Basic Usage
GNU Fortran is used to compile a source file, source.f90 to an object file, object.o or an executable, executable Along the way it generates module description files for the modules it encounters. These files are named nameofmodule.mod If a module is used, gfortran will read from these same files.
In order to compile the source file source.f90 one would run:
gfortran -c source.f90
The output file will automatically be named source.o This is an object file, which cannot be executed.
Once you have compiled some source files, you can link them together with the necessary libraries to generate an executable. This is done as follows:
gfortran -o executable object1.o object2.o ...
where the the executable will be named executable and the objectN.o are object files, which may have been created as above, or equally well by another compiler from sources in a different language. If -o executable is omitted, the executable will be named a.out (on cygwin systems: a.exe . The executable may then be executed like any other program.
One may also skip the separate compilation step, and enter a command such as:
gfortran -o executable source1.f90 source2.f90
which will compile the source files source1.f90 and source2.f90, link and generate the executable executable in one step. You can also put object files on this command line, they will be automatically linked in during the link step.
Controlling the input source form
Since Fortran 95 allows for two different kinds of input source forms (free form source code and fixed form source code) the compiler has to know which kind of input it is given. The rule in place is as follows:
Files whose name ends in .f or .for are assumed to be fixed form
Files whose name end in .f90 or .f95 are assumed to to be free form
 For other files the source form has to be explicitly given. This may be done by the command line options described below, which may also be used to override the first two rules.
When GNU Fortran is run on a file whose name ends in .f90 or .f95, it assumes a free form source file. If that file actually is a fixed form source file, the user has to give the -ffixed-form command line option. The precise semantics of this option, and other options relating to fixed form versus free form input are the same as in g77, and may be found in g77's documentation.
When running gfortran one actually does not run the compiler, but the compiler driver. This driver interprets the command line options given, and hands the work off to the actual compiler, the assembler, and the linker. By default, this compiler driver decides by the extensions of the given file names what to do. A file named foo.c is handed to the C compiler and a file named foo.f90 is handed to the Fortran 95 compiler, etc. To overrule this behavior, one has to precede the filename by the argument -x lang where lang is a string identifying the requested language. For Fortran 95 this is f95
Compatibility with g77
In order to efficiently implement the passing of array sections, binary compatibility to Fortran 77 had to be abandoned. You should not mix object files produced by g77 and gfortran, because this will not result in a working executable.
Running GNU Fortran as a syntax checking tool
One may use GNU Fortran as a syntax checker (or verify that GNU Fortran's frontend correctly accepts or rejects a program), by specifying -fsyntax-only on the command line. Gfortran will then not generate object files.
When given the command line option -fdump-parse-tree gfortran will print a representation of the parsed program, detailing both the data objects and the executable statements of the program in a Lisp-inspired notation. One remark for Fortran old timers: ASSIGN in these dumps does not refer to the ASSIGN statement, but to the operation of assignment, i.e. sloppily speaking, the = operator.