лентны как между собой, так и с программами из всех ранее приведенных примеров.
Пример 3.5. Запись программы с произвольной расстановкой пробелов
1^^^^^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^72^^^^^^^^^^^^^^^80
^^^^^^PROG^^RAMHEL^LO
^^^^^^P^R^I^N^T*,′HELLO,^WORLD′
^^^^^^EN^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^D
3. Программа на Фортране может содержать комментарии – произвольный пояснительный текст. Латинская буква «C» (строчная или прописная), а также «*» (звездочка) в первой позиции строки маркируют всю строку как строку комментария (см. пример 3.6). Соответственно, компилятор, найдя такую строку, просто не обрабатывает ее. Комментарий может быть записан уже со второго символа и располагается в любом месте текста программы между операторами.
Типичной ошибкой, связанной с написанием комментариев, является использование русской «Эс» вместо латинской «Cи». Ситуация объясняется (и усугубляется) тем, что совпадает не только изображение символов, но также их расположение на клавиатуре. Оба символа «Эс» и «Си» располагаются на одной клавише – на это следует обратить особое внимание.
Пример 3.6. Текст программы скомментариями
1^^^^^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^72^^^^^^^^^^^^^^^80
C ЭТО ТЕКСТ ПРОГРАММЫ c HELLO
* С КОММЕНТАРИЕМ
^^^^^^PROGRAM HELLO
^^^^^^PRINT*, ′HELLO, WORLD′
^^^^^^END
4. Оператор Фортрана может быть достаточно длинным и не уместиться с 7 по 72 позицию, поэтому необходим механизм для продолжения оператора на следующей строке. Для этого в 6-й позиции следующей строки печатается любой символ из алфавита Фортрана, отличный от нуля или пробела, например единица, двойка и т.д. (пример 3.7).
126
Пример 3.7. Запись программы с продолжениями строки
1^^^^67^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^72^^^^^^^^^^^^^^^80
^^^^^^PROGRAM
^^^^^1^^^^^^^^^^^HEL
^^^^^2^^^^^^^^^^^LO
^^^^^^PRINT*, ′HELLO, WORLD′
^^^^^^END
Всего, в соответствии со стандартом, допускается до 19-ти строк продолжения одного оператора.
5. Позиции строки с 1-й по 5-ю используются для записи меток, представляющих собой целые числа от 0 или 00000 до 99999. Начальные нули меток не являются значащими (пример 3.8).
Пример 3.8. Запись программы с использованием меток
1^^^5^7^^^^^^^^^^^^^^НУМЕРАЦИЯ ПОЗИЦИЙ СТРОКИ^^72^^^^^^^^^^^^^^^80
^^^^^^PROGRAM HELLO
^^^^^^PRINT 10
^^010^FORMAT (′HELLO, WORLD′)
^^^^^^END
3.1.4. Свободный формат
Свободный формат записи программы на Фортране рекомендуется использовать в стандарте Fortran 90 и последующих стандартах. Это формат записи программ определяется следующими правилами.
1. Программа записывается построчно, строка может содержать до 132 символов, запись оператора может начинаться с любой позиции строки (с 1-й по 132-ю). В отличие от фиксированного формата это избавляет от необходимости отслеживать шестисимвольный отступ от начала строки (пример 3.9).
Пример 3.9. Запись программы в свободном формате program HELLO
print*, 'HELLO,^WORLD' end
127
2. При большой длине оператора, он может быть разделен на несколько строк. Строка оператора считается продолжаемой в следующей строке, если она заканчивается символом «&» (амперсанд) (пример 3.10). Стандарт Фортран 90/95 допускает не более 39 строк продолжения одного оператора.
Пример 3.10. Запись программы с построчным разделением операторов program &
HELLO print& *&
, 'HELLO,^WORLD' end
3. В одной строке может быть записано несколько операторов, разделенных «;» (точкой с запятой). Например, программа HELLO может быть записана в одну строчку (пример 3.11):
Пример 3.11. Запись программы в одну строчку program^HELLO; print*,'HELLO, WORLD'; end
4. Если в строке программы присутствует символ «!» (восклицательный знак), то весь текст после него, вплоть до конца строки, считается комментарием и не обрабатывается компилятором, Исключение составляют восклицательные знаки, являющиеся составной частью текстовых данных (пример 3.12).
Пример 3.12. Запись комментариев в свободном формате
! Программа HELLO с комментариями
program HELLO |
|
print*, 'HELLO!^WORLD!!!' |
! Восклицательные знаки в приветствии |
end |
! к комментарию не относятся! |
5. Метки операторов, в отличие от фиксированного формата, не привязаны к позициям строки с 1-ю по 5-ю и, вообще, ни к каким позициям (пример 3.13).
Пример 3.13. Использование меток в свободном формате program HELLO
010 format ('HELLO,^WORLD') print 10
end
128
Если непосредственно перед оператором встречается целое число от 0 до 99999, отделенное от оператора одним или несколькими пробелами, то это число считается меткой оператора. Начальные нули метки не являются значащими.
Поскольку в свободном формате метка не связана с символьными позициями строки, то программа с метками может быть записана в одной строке (пример 3.14).
Пример 3.14. Запись программы с меткамив одну строчку program HELLO; print 10; 10 format ('HELLO,^WORLD'); end
6. В связи с тем, что в программах, записанных в фиксированном формате, пробелы могут использоваться практически произвольно, возникает вопрос о значимости пробелов при записи программы в свободном формате.
При записи программы в свободном формате пробелы не должны нарушать целостность имен или ключевых слов. Например, недопустимо написание HE^LLO (для имени программы) или P^^RI^NT (в фиксированном формате записи программы это допускалось, см. пример 3.5). В остальном пробелы, как и в фиксированном формате, используются для улучшения читаемости текста.
3.2.ТРАНСЛЯЦИЯ ПРОГРАММЫ
3.2.1.Программа в одном исходном файле
Наиболее простая программа на Фортране – единственная (основная или главная) программа, записанная в одном файле, с расширением .f95.
При работе в операционной системе GNU/Linux для набора текста программы можно использовать такие текстовые редакторы,
как mcedit, pico или Vi. При работе в Microsoft Windows вполне подойдет редактор Notepad или встроенный редактор FAR Manager.
Для того чтобы преобразовать файл, содержащий текст програмы, в исполняемый файл, необходим транслятор. При выполнении данного компьютерного практикума по Фортрану в качестве транслятора рекомендуется использовать компилятор Gfortran.
129
Работая в GNU/Linux необходимо удостовериться в его наличии в составе GNU Compiler Collection (GCC). Если же используется
Windows, то необходимо скачать и установить MinGW (Minimalist GNU for Windows) – программный порт GCC (с официального сай-
та: http://www.mingw.org).
При создании файла желательно называть файл именем главной программы с обязательным расширением .f95 (для программы, написанной в свободном формате Фортран 90, 95).
Для примера рассмотрим создание исполнимого файла из исходного файла hello.f95 (пример 3.15).
Пример 3.15. Исходник hello.f95 для трансляции program HELLO
print*, "HELLO,^WORLD" end
При этом важны следующие моменты.
1.Программа начинается с первой позиции первой строки.
2.Строку «Пример 3.15. Исходник hello.f95 для трансляции» в файл писать не нужно.
3.Программа начинается с оператора PROGRAM с указанием имени программы (в данном случае HELLO).
4.Крышечкой «^» обозначаются пробелы.
5.Любая программа или подпрограмма на Фортране в обязательном порядке должна завершаться оператором END.
6.В файле не должно быть ничего кроме текста программы.
7.Проверьте имя файла: hello.f95, и никак иначе.
3.2.2. Трансляция исходного файла
Файл hello.f95 с текстом программы (см. пример 3.15) необходимо транслировать в исполнимый файл, который можно будет запустить на исполнение из командной строки Linux или Windows и увидеть на экране: текстовое сообщение: HELLO, WORLD.
Создание исполняемого файла с именем по умолчанию. Наи-
более простой (хотя и не самый лучший) вариант – запустить в командной строке команду gfortran, указав через пробел имя компилируемого файла:
130