Fortran 90 — является развитием языка Fortran 77, так что программа, написанная на Fortran 77,
может быть скомпилирована и запущена как программа на Fortran 90.
Стандарт Fortran 90, утвержденный в 1992 году, вводит много новых
средств для операций над массивами, новые методы спецификации точности,
свободный формат исходного кода, рекурсию, динамические массивы и т.д.
Несмотря на то, что весь Fortran 77 включен в Fortran 90, новый стандарт ANSI предполагает, что некоторые средства из Fortran 77
'потеряют ценность'. Потеряют ценность средства, подобные
классифицируемым как 'устаревшие' в последовательности ревизий и
переносимые в будущие версии языка Fortran.
Программы на текущем языке стандарта Fortran 77
могут успешно компилироваться компиляторами Fortran 90 без каких-либо
изменений. Тем не менее, структура программы на языке Fortran 90 может
значительно отличаться от структуры эквивалентной программы на Fortran 77.
В такой же мере компилятор с Fortran 90 требует обеспечения
объяснений для сообщений о некоторых кодах несоответствия
(несогласования), то есть использование операторов или переменных,
которые разрешены сверх множества правил, выходящих за пределы
стандарта.
Как уже упомянуто, Fortran 90 добавляет к Fortran 77
средства новых вычислений , динамические структуры данных, введения в
параллельные архитектуры, объектно-ориентированные средства. Fortran 90
имеет такие объектно-ориентированные средства как:
-
абстрактные типы данных — типы, определенные пользователем
-
закрытие данных — атрибутыPRIVATE
иPUBLIC
-
инкапсуляция — средства модулей и закрытых данных
-
наследование и расширение — супертипы, оператор перекрытия и родовые процедуры
-
полиморфизм — пользователь может перекрывать ее с помощью перегрузки родовых программ
-
повторное использование — через модули
Основные характеристики Fortran 90:
-
свободный синтаксис
-
длина идентификаторов до 31 символа
-
вставочные комментарии
-
работа с массивами
-
рекурсивные процедуры
-
модульность
-
улучшенный механизм передачи параметров
-
пользовательские интерфейсы для процедур
-
перегрузка операторов
-
абстрактные типы данных
-
новый синтаксис объявления типа данных
-
динамическое распределение памяти посредством атрибутаALLOCATABLE
и операторовALLOCATE
иDEALLOCATE
-
структурированные конструкции циклов
-
операторCASE
для множественного выбора
-
новые и расширенные встроенные процедуры