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

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

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

ВВЕДЕНИЕ

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

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.4. Трансляция модулей

Исходный файл, содержащий модуль (Пример 7.6) необходимо компилировать с опцией «-c» (только компиляция):

gfortran -c vector_arithmetic.f95

Успешное выполнение этой команды приведет к появлению в текущей директории специализированного файла структуры модуля: vector_arithmetic.mod и объектного файла: vector_arithmetic.o, который затем необходимо транслировать вместе с использующей его программой (Пример 7.6) по уже известным правилам трансляции программы, расположенной в нескольких файлах:

gfortran -o vector_test vector_test.f95 vector_arithmetic.o

или

gfortran -o vector_test vector_arithmetic.o vector_test.f95

Возможна трансляция с использованием только исходных файлов, но при этом важна очередность их следования – первым должен быть указан файл, содержащий модуль, и только затем указывается исходный файл программы, использующей это модуль:

gfortran -o vector_test vector_arithmetic.f95 vector_test.f95

Дело в том, что компилятор обрабатывает файлы последовательно и для успешной компиляции файла vector_test.f95, использующего модуль требуется наличие файла vector_arithmetic.mod, а он появляется только после обработки файла vector_arithmetic.f95. Поэтому если переставить файлы:

gfortran -o vector_test vector_test.f95 vector_arithmetic.f95

то возникает ошибка компилятора, связанная с невозможностью открыть файл модуля: vector_arithmetic.mod.