Поиск…


замечания

Фортран - это язык, широко используемый в научном сообществе из-за его пригодности для численного расчета. Особенно привлекательной является его интуитивная запись в виде массива, которая упрощает запись быстрых векторизованных вычислений.

Несмотря на свой возраст, Fortran по-прежнему активно развивается с многочисленными реализациями, включая GNU, Intel, PGI и Cray.

Версии

Версия Заметка Релиз
ФОРТРАН 66 Первая стандартизация ASA (теперь ANSI) 1966-03-07
ФОРТРАН 77 Фиксированная форма, историческая 1978-04-15
Фортран 90 Бесплатная форма, стандарт ISO, операции с массивом 1991-06-15
Фортран 95 Чистые и элементарные процедуры 1997-06-15
Fortran 2003 Объектно-ориентированное программирование 2004-04-04
Fortran 2008 Co-Массивы 2010-09-10

Установка или настройка

Fortran - это язык, который может быть скомпилирован с использованием компиляторов, поставляемых многими поставщиками. Различные компиляторы доступны для разных аппаратных платформ и операционных систем. Некоторые компиляторы являются свободным программным обеспечением, некоторые могут использоваться бесплатно, а некоторые требуют покупки лицензии.

Наиболее распространенным свободным компилятором Fortran является GNU Fortran или gfortran. Исходный код доступен из GNU в составе GCC, сборника компиляторов GNU. Бинарные файлы для многих операционных систем доступны по адресу https://gcc.gnu.org/wiki/GFortranBinaries . Распределения Linux часто содержат gfortran в своем диспетчере пакетов.

Другие компиляторы доступны, например:

В HPC-системах часто доступны специализированные компиляторы, доступные системному провайдеру, например, компиляторы IBM или Cray .

Все эти компиляторы поддерживают стандарт Fortran 95. Обзор состояния Fortran 2003 и статуса Fortran 2008 различными компиляторами предлагается Форумом ACM Fortran и доступен в Вики-версии Fortran.

Привет, мир

Любая программа Fortran должна включать end качестве последнего оператора. Поэтому простейшая программа Fortran выглядит так:

end

Вот несколько примеров программ «привет, мир»:

print *, "Hello, world" 
end

С помощью оператора write :

write(*,*) "Hello, world"
end

Для ясности теперь принято использовать инструкцию program для запуска программы и присвоения ей имени. Затем оператор end может ссылаться на это имя, чтобы сделать его очевидным, о чем идет речь, и дать компилятору проверить правильность кода. Кроме того, все программы Fortran должны содержать implicit none оператор. Таким образом, минимальная программа Fortran должна выглядеть следующим образом:

program hello
  implicit none
  write(*,*) 'Hello world!'
end program hello

Следующий логический шаг от этого момента - это увидеть результат приветственной мировой программы. В этом разделе показано, как добиться этого в среде Linux. Мы предполагаем, что у вас есть некоторые основные понятия команд оболочки , в основном вы знаете, как добраться до терминала оболочки. Мы также предполагаем, что вы уже настроили среду fortran . Используя предпочтительный текстовый редактор (блокнот, блокнот ++, vi, vim, emacs, gedit, kate и т. Д.), Сохраните программу приветствия выше (скопируйте и вставьте) в файл с именем hello.f90 в вашем домашнем каталоге. hello.f90 - ваш исходный файл. Затем перейдите в командную строку и перейдите в каталог (домашний каталог?), Где вы сохранили исходный файл, затем введите следующую команду:

>gfortran -o hello hello.f90

Вы только что создали свою исполняемую программу hello world. В техническом плане вы просто скомпилировали свою программу. Чтобы запустить его, введите следующую команду:

>./hello

На вашем терминале оболочки вы должны увидеть следующую строку.

> Hello world!

Поздравляем, вы только что написали, скомпилировали и запустили программу Hello World.

Квадратное уравнение

Сегодня Fortran в основном используется для численного расчета. Этот очень простой пример иллюстрирует основную программную структуру для решения квадратичных уравнений:

program quadratic
  !a comment

  !should be present in every separate program unit
  implicit none

  real :: a, b, c
  real :: discriminant
  real :: x1, x2

  print *, "Enter the quadratic equation coefficients a, b and c:"
  read *, a, b, c

  discriminant = b**2 - 4*a*c

  if ( discriminant>0 ) then

    x1 = ( -b + sqrt(discriminant)) / (2 * a)
    x2 = ( -b - sqrt(discriminant)) / (2 * a)
    print *, "Real roots:"
    print *, x1, x2

    ! Comparison of floating point numbers for equality is often not recommended. 
    ! Here, it serves the purpose of illustrating the "else if" construct. 
  else if ( discriminant==0 ) then

    x1 = - b / (2 * a)
    print *, "Real root:"
    print *, x1
  else

    print *, "No real roots."
  end if
end program quadratic

Нечувствительность к регистру

Прописные и строчные буквы алфавита эквивалентны в наборе символов Fortran. Другими словами, Fortran нечувствителен к регистру . Такое поведение контрастирует с чувствительными к регистру языками, такими как C ++ и многие другие.

Как следствие, переменные a и A являются a и той же переменной. В принципе можно написать программу следующим образом

pROgrAm MYproGRaM
..
enD mYPrOgrAM

Это хороший программист, чтобы избежать таких уродливых выборов.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow