вторник, 5 апреля 2011 г.

FORTRAN77

Фортран бывает разный. Точнее, его компиляторы. Ну и версии-стандарты, конечно.
На русской Википедии (http://ru.wikipedia.org/wiki/Fortran) дается вполне исчерпывающая информация о том, что такое Фортран, и краткая история его развития.
В этом посте я бегло рассмотрю 77-ую версию (в широком смысле) фортрана.

FORTRAN77

Самым старым из "доживших" до сегодняшнего дня является стандарт FORTRAN77. "Семьдесят седьмой фортран" - довольно архаичный, но тем не менее до сих пор активно использующийся учёными-метеорологами стандарт. Это объясняется как привычкой, так и тем, что многие старые, но не устаревшие подпрограммы и программы, написаны именно на fortran77. Файлы стандарта 77-го фортрана легко узнать по расширениям *.f или *.for, например: test.for или test.f
Какие же у него плюсы и минусы? 

(-) Минусы:

1) Несмотря на то, что этот стандарт к сегодняшнему дню значительно расширен дополнительными функциями, в нём сохранилось ограничение на 72 знака в строке, необходимость в 6 позициях для меток (именно в шестой позиции любой символ превращается в знак объединения предыдущей и текущей строки). Для объявления символьных констант и больших формул иногда это бывает неудобно.Кстати, именно по этой причине в старых программах отсутствуют пробелы между символами - сказывается привычка экономить место в коде.

2) Отсутствие таких функций и операторов, как SELECT CASE, ALLOCATE, MODULE, PRIVATE, PUBLIC, CONTAINS, INTERFACE, USE, INTENT.

3) Этот стандарт использует отличный от последующих версий синтаксис. Так, например для комментирования строки используется символ "с" в первой позиции (в fortran90 и далее используется символ "!"). Синтаксис циклов также другой - используются метки вместо enddo (это уже fortran90):

      do 88 i=1,100
      pro(i)=dat1(i*num)
 88 continue

Отличия также есть в объявлении переменных и других операторах.

4) Как и любой старый стандарт со временем он будет полностью заменён на новый. Рано или поздно придётся переходить на новый стандарт.

(+) Плюсы:

1) Наличие огромного количества разнообразных подпрограмм в стандарте fortran77. Это ОЧЕНЬ серьёзный аргумент для использования данного стандарта.

2) Многие современные компиляторы успешно поддерживают этот стандарт с возможностями новых стандартов (90, 95 и 2003). Например, компиляторы из Fortran Developer Studio ("df" и "f77") позволяют использовать динамические массивы в 77-ом стандарте файлов.

Резюме:

Будучи старейшим из использующихся стандартов фортрана, при поддержке современных компиляторов, fortran77 остаётся мощным средством обработки научных данных и решения вычислительных задач.

Расширения фортрана-77: "*.for", "*.f", "*.f77"

1 комментарий:

Как перевести UV в направление и скорость ветра? How to convert wind UV-components to direction and velocity?

 Всё просто.  def uv2dir(u, v):     '''     Источник:     https://github.com/blaylockbk/Ute_WRF/blob/master/functions/wind_calc...