Введённый в f90 свободный формат записи команд языка прост. Формально он выражается в следующих утверждениях:
- каждый оператор языка записывается в отдельной строке;
- длина строки не должна превышать 132 символа;
- в том случае, когда оператор не умещается в строку, допустимо продолжить его на следующей строке, указав символ продолжения «&» (амперсанд);
- возможно записать несколько операторов в одной строке, при этом их следует разделять символом «;» (точка с запятой);
- Любое количество пробелов и символов табуляции интерпретируется как один пробел, поэтому программу можно произвольно форматировать для удобства чтения и отладки.
Проиллюстрируем и уточним их на дальнейших примерах.
Программа hello.f90
program hello print *, "Hello, World!" end
Программа состоит из трёх операторов. Первый из них задаёт идентификатор (имя) главной программной единицы.
Замечание. Все идентификаторы (имена программных единиц, переменных, массивов) могут иметь длину до 31 символа. Допустимые в записи идентификаторов символы: 26 латинских букв «a — z», символ подчёркивания «_», 10 арабских цифр «0 — 9»; при этом цифра не может быть первым символом. Обратите внимание на отсутствие различия между строчными и прописными буквами. С точки зрения компилятора имена «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. Следует знать, что ключевые слова в Фортране не зарезервированы, поэтому допускается их использование в качестве идентификаторов в тех случаях, когда токое использование однозначно понятно компилятору.