Szukaj…


Uwagi

Fortran jest językiem szeroko stosowanym w środowisku naukowym ze względu na jego przydatność do obliczeń numerycznych. Szczególnie atrakcyjna jest intuicyjna notacja tablicowa, która ułatwia pisanie szybkich obliczeń wektoryzowanych.

Pomimo swojego wieku, Fortran jest nadal aktywnie rozwijany, z licznymi implementacjami, w tym GNU, Intel, PGI i Cray.

Wersje

Wersja Uwaga Wydanie
FORTRAN 66 Pierwsza standaryzacja przez ASA (obecnie ANSI) 1966-03-07
FORTRAN 77 Naprawiona forma, historyczna 1978-04-15
Fortran 90 Dowolny formularz, standard ISO, operacje na macierzach 1991-06-15
Fortran 95 Procedury czyste i elementarne 15 czerwca 1997 r
Fortran 2003 Programowanie obiektowe 2004-04-04
Fortran 2008 Współ-tablice 2010-09-10

Instalacja lub konfiguracja

Fortran to język, który można kompilować za pomocą kompilatorów dostarczanych przez wielu dostawców. Dostępne są różne kompilatory dla różnych platform sprzętowych i systemów operacyjnych. Niektóre kompilatory są darmowym oprogramowaniem, niektóre mogą być używane bezpłatnie, a niektóre wymagają zakupu licencji.

Najpopularniejszym darmowym kompilatorem Fortran jest GNU Fortran lub gfortran. Kod źródłowy jest dostępny z GNU jako część GCC, kolekcji kompilatorów GNU. Pliki binarne dla wielu systemów operacyjnych są dostępne na stronie https://gcc.gnu.org/wiki/GFortranBinaries . Dystrybucje Linuksa często zawierają gfortran w menedżerze pakietów.

Dostępne są dalsze kompilatory, na przykład:

W systemach HPC dostawca systemu często udostępnia wyspecjalizowane kompilatory, na przykład kompilatory IBM lub Cray .

Wszystkie te kompilatory obsługują standard Fortran 95. Przegląd statusu Fortran 2003 i statusu Fortran 2008 przez różne kompilatory jest oferowany przez ACM Fortran Forum i dostępny na Wiki Fortran.

Witaj świecie

Każdy program Fortran musi zawierać end jako ostatnią instrukcję. Dlatego najprostszy program Fortran wygląda następująco:

end

Oto kilka przykładów programów „witaj, świecie”:

print *, "Hello, world" 
end

Z write stwierdzeniem:

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

Dla jasności często używa się instrukcji program , aby uruchomić program i nadać mu nazwę. Instrukcja end może następnie odwoływać się do tej nazwy, aby było oczywiste, do czego się odnosi, i pozwolić kompilatorowi sprawdzić kod pod kątem poprawności. Ponadto wszystkie programy Fortran powinny zawierać implicit none instrukcję implicit none . Tak więc minimalny program Fortran powinien wyglądać następująco:

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

Kolejnym logicznym krokiem od tego momentu jest zobaczenie wyniku programu hello world. Ta sekcja pokazuje, jak to osiągnąć w środowisku typu Linux. Zakładamy, że masz kilka podstawowych pojęć poleceń powłoki , głównie wiesz, jak dostać się do terminala powłoki. Zakładamy również, że masz już skonfigurowane środowisko fortran . Korzystając z preferowanego edytora tekstu (notatnik, notatnik ++, vi, vim, emacs, gedit, kate itd.), Zapisz powyższy program hello (skopiuj i wklej) w pliku o nazwie hello.f90 w katalogu domowym. hello.f90 to plik źródłowy. Następnie przejdź do wiersza poleceń i przejdź do katalogu (katalog domowy?), W którym zapisałeś plik źródłowy, a następnie wpisz następujące polecenie:

>gfortran -o hello hello.f90

Właśnie utworzyłeś swój program wykonywalny hello world. Z technicznego punktu widzenia właśnie skompilowałeś swój program. Aby go uruchomić, wpisz następujące polecenie:

>./hello

Powinieneś zobaczyć następujący wiersz wydrukowany na twoim terminalu powłoki.

> Hello world!

Gratulacje, właśnie napisałeś, skompilowałeś i uruchomiłeś program „Hello World”.

Równanie kwadratowe

Obecnie Fortran jest wykorzystywany głównie do obliczeń numerycznych. Ten bardzo prosty przykład ilustruje podstawową strukturę programu do rozwiązywania równań kwadratowych:

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

Niewrażliwość na wielkość liter

Wielkie i małe litery alfabetu są równoważne w zestawie znaków Fortran. Innymi słowy, Fortran nie uwzględnia wielkości liter . To zachowanie jest w przeciwieństwie do języków, w których rozróżniana jest wielkość liter, takich jak C ++ i wiele innych.

W konsekwencji zmienne a i A są tą samą zmienną. W zasadzie można napisać program w następujący sposób

pROgrAm MYproGRaM
..
enD mYPrOgrAM

Dobry programista powinien unikać tak brzydkich wyborów.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow