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

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

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

ВВЕДЕНИЕ

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

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.2. Трансляция исходного файла

Файл «hello.f95» с текстом программы (Пример 2.1) необходимо транслировать в исполнимый файл, который, можно будет запустить на исполнение из командной строки Linux или Windows и увидеть на экране: текстовое сообщение: HELLO, WORLD.

Создание исполняемого файла с именем по умолчанию

Наиболее простой (хотя и не самый лучший) вариант – запустить в командной строке команду gfortran, указав через пробел имя компилируемого файла:

gfortran hello.f95

В этом случае, если исходный файл «hello.f95» не содержит ошибок, в текущей директории будет создан исполнимый файл с именем: a.out – если используется какой либо коммандер, то это сразу будет видно в таблице – иначе придется воспользоваться командой операционной системы:

ls (для Linux)

dir (для Windows)

Для запуска файла из командной строки Linux, необходимо явное указание, на текущую директорию: – «./». При запуске из командной строки Windows, в этом нет необходимости:

./a.out (для Linux)

a (для Windows)

После запуска, на экране появится текст:

HELLO, WORLD

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

Создание исполняемого файла с заданным именем

Наиболее часто возникает ситуация, когда исполняемому файлу программы требуется присвоить такое же имя, как и у исходного файла. Для этого у компилятора Gfortran имеется специальная опция «–o имя» – важно не перепутать латинскую букву «о» с нулем! Эту опцию можно указать в любом месте списка параметров компилятора Gfortran – например:

gfortran -o hello hello.f95

или

gfortran hello.f95 -o hello

Правильное выполнение этой команды приведет к созданию исполнимого файла с именем hello (или hello.exe), который затем можно запустить обычным образом:

./hello (для Linux)

или

hello (для Windows)

hello.exe (для Windows)

Типичной ошибкой, на которую стоит обратить внимание, является это попытка запустить исходный файл, вместо исполняемого файла: т.е в командной строке набирают «./hello.f95» вместо «./hello» и т.д.


Пример 2.2. Программные компоненты в одном файле

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

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

Исходный файл может содержать несколько программных компонент – основную программу подпрограммы – одну или несколько. Основная программа MESSAGE (Пример 2.2) вызывает подпрограмму HELLO, печатающую уже знакомое текстовое сообщение «HELLO, WORLD». Для вызова подпрограммы используется оператор CALL (подробности в § 7).

Поскольку все программные компоненты находятся в одном файле, то в написании и трансляции программы ничего не изменяется – создается исходный файл, например: message.f95, в котором размещается главная программа MESSAGE и подпрограмма HELLO, а затем исходный файл компилируется точно так же как исходный файл hello.f95 в предыдущих примерах:

gfortran -o message message.f95

или же

gfortran message.f95 -o message