Информационные системы ускорителей

ЛАБОРАТОРНЫЙ ПРАКТИКУМ:
«ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ»

СТРУКТУРА ПРАКТИКУМА

ВВЕДЕНИЕ

ВАЖНАЯ ИНФОРМАЦИЯ

1. ПРАВИЛА ЗАПИСИ ПРОГРАММЫ

1. Набор символов Фортрана

2. Форматы записи программы

3. Фиксированный формат

4. Свободный формат

2. ТРАНСЛЯЦИЯ ПРОГРАММЫ

1. Программа в одном исходном файле

2. Трансляция исходного файла

3. Трансляция нескольких исходных файлов

4. Трансляция модулей

3. КОНЦЕПЦИЯ ДАННЫХ ЯЗЫКА ФОРТРАН

1. Имена (идентификаторы)

2. Понятие типа

3. Буквальные константы

4. Разновидности типов и диапазоны значений

5. Скалярные переменные и константы

6. Массивы

7. Производные типы данных

4. ВЫРАЖЕНИЯ И ПРЕОБРАЗОВАНИЕ ТИПОВ

1. Скалярное присваивание

2. Арифметика Фортрана

3. Логические выражения

4. Работа с текстовыми строками

5. Операции с массивами

5. УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ

1. Условный оператор и конструкция IF

2. Оператор варианта – конструкция CASE

3. Циклы – разновидности конструкции DO

4. Оператор GO TO

6. ВВОД/ВЫВОД ДАННЫХ

1. Простейшие операции ввода/вывода

2. Форматный ввод/вывод данных

3. Ввод/вывод массивов в неявных циклах

4. Файловый ввод/вывод

7. ПРОГРАММНЫЕ КОМПОНЕНТЫ И ЭЛЕМЕНТЫ ООП

1. Структура программных компонентов

2. Внешние подпрограммы

3. Внутренние подпрограммы

4. Модули как библиотеки производных типов

5. Встроенные функции Фортрана

ЗАДАЧИ ДЛЯ ПРОГРАММИРОВАНИЯ

2.3. Трансляция нескольких исходных файлов

Программные компоненты одной программы могут размещаться отдельно, в нескольких исходных файлах. Основная программа MESSAGE может размещаться в файле message.f95 (Пример 2.3), а подпрограмма HELLO в файле hello.f95 (Пример 2.4).


Пример 2.3. Файл message.f95

program MESSAGE	! В файле hello.f95
  call HELLO
end
	


Пример 2.4. Файл hello.f95

subroutine HELLO		! В файле hello.f95
  print*, 'HELLO,^WORLD'
end
	


Компиляция с созданием исполняемого файла

При трансляции имена исходных файлов перечисляются в произвольном порядке, а опция «–о massage» определяет имя исполняемого файла:

gfortran -о massage hello.f95 message.f95

или

gfortran message.f95 hello.f95 -о massage

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


Компиляция с созданием объектных файлов

В ряде случаев интерес может представлять компиляция исходных файлов с их преобразованием в машинный код, без сборки исполняемого файла. Для этого компилятор gfortran необходимо запустить с опцией «–c» – т.е. только компиляция. Файлы могут компилироваться по одному, или несколько сразу:

gfortran -c hello.f95

gfortran -c message.f95

или

gfortran -c hello.f95 message.f95

В любом случае результатом будет появление в текущей директории объектных файлов: «hello.о» и «message.о», из которых затем можно осуществить сборку исполняемого файла так же как из исходников:

gfortran -o massage hello.o message.o

Исходные файлы всегда сначала компилируются в объектные файлы, а уже затем из объектных файлов специальной программой, называемой редактор связей или линкер (линковщик), из объектных файлов осуществляется сборка исполняемого файла. Транслятор gfortran просто скрывает этот этап (если текста программ в исходных файлах достаточно для полного цикла генерации исполняемого файла).

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

Компилятор gfortran поддерживает смешанную обработку исходных и объектных файлов, которые могут быть перечислены через пробел в любом порядке:

gfortran -o message hello.o message.f95

или

gfortran -o message hello.f95 message.o

Для получения более полных сведений о возможностях транслятора Gfortran следует воспользоваться опцией «--help»:

gfortran --help