Skip to Content

Формат записи команд

Введённый в f90 свободный формат записи команд языка прост. Формально он выражается в следующих утверждениях:

  • каждый оператор языка записывается в отдельной строке;
  • длина строки не должна превышать 132 символа;
  • в том случае, когда оператор не умещается в строку, допустимо продолжить его на следующей строке, указав символ продолжения «&» (амперсанд);
  • возможно записать несколько операторов в одной строке, при этом их следует разделять символом «;» (точка с запятой);
  • Любое количество пробелов и символов табуляции интерпретируется как один пробел, поэтому программу можно произвольно форматировать для удобства чтения и отладки.

Проиллюстрируем и уточним их на дальнейших примерах.

Программа hello.f90

program hello
  print *, "Hello, World!"
end

Программа состоит из трёх операторов. Первый из них задаёт идентификатор (имя) главной программной единицы.

Замечание. Все идентификаторы (имена программных единиц, переменных, массивов) могут иметь длину до 31 символа. Допустимые в записи идентификаторов символы: 26 латинских букв «az», символ подчёркивания «_», 10 арабских цифр «09»; при этом цифра не может быть первым символом. Обратите внимание на отсутствие различия между строчными и прописными буквами. С точки зрения компилятора имена «ZERO», «Zero» и «zero» одинаковы.

Замечание. Так как в любой программе существует только одна главная программная единица, оператор program является необязательным.

С учётом замечаний, можно переписать данную программу в одну строку:

print *, "Hello, World!"; end

Дополнительно стоит проиллюстрировать использование строк продолжения. Сделаем это на примере всё той же программы hello:

program hello
  print *, "Hello, &
World!"
end

Здесь оператор print продолжен на следующей строке. Легко видеть, что такая запись «некрасива», желательно строку продолжения также выравнять пробелами или табуляциями. В большинстве случаев такое выравнивание допустимо и не создаёт проблем. Однако в приведённом примере мы разрываем символьную константу, и выравнивающие пробелы попадут в неё. Тут

program hello
  print *, "Hello, &
    World!"
end

константа будет содержать 5 пробелов ("Hello,     World!" вместо "Hello, World!"), что, очевидно, неприемлемо. Специально для таких случаев предусмотрено использование повторного символа «&» в начале строки продолжения:

program hello
  print *, "Hello, &
    &World!"
end

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

При необходимости оператор может быть помечен. Метка записывается перед оператором и представляет собой последовательность от одной до пяти цифр:

123 print *, "Hello, World!"
 02 a = b + c; 99999 stop

В примере записано три оператора, имеющие метки 123, 2 и 99999. Обратите внимание, что начальные нули игнорируются. Такой способ записи меток не вносит неоднозначности, так как запись любого оператора всегда начинается с буквы.

При записи операторов используются ключевые слова. Так, мы уже встретили ключевые слова program, print и end. Следует знать, что ключевые слова в Фортране не зарезервированы, поэтому допускается их использование в качестве идентификаторов в тех случаях, когда токое использование однозначно понятно компилятору.