Fortran Samouczek
Pierwsze kroki z Fortranem
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:
- EKOPath przez PathScale
- LLVM (backend przez DragonEgg)
- Oracle Developer Studio
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.