Wprowadzenie
Fortran (ang. Formula Translation) to jeden z najstarszych języków programowania wysokiego poziomu, zaprojektowany w 1957 roku przez zespół IBM pod kierownictwem Johna Backusa. Jego głównym celem było uproszczenie pisania programów obliczeniowych dla komputerów IBM 704, co stanowiło przełom w informatyce — wcześniej programowano głównie w asemblerze.
Od tamtej pory Fortran przeszedł wiele ewolucji, od wersji FORTRAN IV i FORTRAN 77 po nowoczesne Fortran 90, 2003, 2008 i najnowszy Fortran 2023. Mimo upływu lat, język ten wciąż jest aktywnie wykorzystywany w obliczeniach naukowych, inżynierii, fizyce, meteorologii i analizie danych — szczególnie w środowiskach Linuxowych.

Rys historyczny
- 1954–1957: IBM rozpoczyna prace nad Fortranem jako pierwszym językiem wysokiego poziomu.
- 1957: Premiera Fortranu dla IBM 704 — rewolucja w programowaniu obliczeniowym.
- Lata 60.–70.: Powstają kolejne wersje (FORTRAN IV, FORTRAN 77), które stają się standardem w nauce i technice.
- 1990–2023: Nowoczesne wersje Fortranu wprowadzają programowanie strukturalne, obiektowe, modularne i równoległe. Standardy ISO zapewniają jego zgodność i rozwój.
Zalety Fortranu
- Wydajność obliczeniowa: Fortran jest zoptymalizowany pod kątem obliczeń numerycznych i macierzowych, co czyni go idealnym dla naukowców i inżynierów.
- Stabilność i dojrzałość: Język rozwijany przez dekady, z bogatym ekosystemem bibliotek matematycznych.
- Wsparcie dla HPC: Fortran jest szeroko stosowany w superkomputerach i klastrach obliczeniowych działających pod kontrolą Linuksa.
- Zgodność z nowoczesnymi standardami: Wersje od Fortran 90 wzwyż wspierają programowanie obiektowe, modularne i równoległe.
- Dostępność na Linuksie: Kompilatory takie jak GNU Fortran (gfortran) są dostępne w większości dystrybucji Linuksa.
Wady i ograniczenia
- Nieintuicyjna składnia dla początkujących: Starsze wersje Fortranu mają archaiczną składnię, która może być trudna do opanowania.
- Ograniczona popularność: W erze języków takich jak Python czy Julia, Fortran jest mniej atrakcyjny dla młodych programistów.
- Mniejsza społeczność: Choć aktywna, społeczność Fortranu jest znacznie mniejsza niż w przypadku nowoczesnych języków.
Instalacja Fortranu w systemie Linux
Najprostszym sposobem na rozpoczęcie pracy z Fortranem w Linuksie jest instalacja kompilatora gfortran:
$ sudo apt install gfortran
$ gfortran --version
GNU Fortran (Homebrew GCC 13.2.0) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Po instalacji można kompilować pliki .f90 lub .f95:
$ gfortran program.f90 -o program
./program
Hello, Fortran World!
Przykład kodu Fortran
Program program.f90:
program hello
print *, "Hello, Fortran World!"
end program hello
Ten prosty program wypisuje komunikat na ekranie. Składnia jest zwięzła i czytelna, szczególnie w nowoczesnych wersjach języka.
Ciekawostki
- Fortran był pierwszym językiem, który miał kompilator optymalizujący kod.
- NASA i CERN wciąż używają Fortranu w wielu projektach.
- Wersje Fortran 2008 i 2023 wspierają programowanie równoległe i współbieżne.
Najważniejsze biblioteki Fortran wciąż używane na Linuksie
1. BLAS (Basic Linear Algebra Subprograms)
- Zestaw podstawowych procedur algebry liniowej: mnożenie macierzy, wektorów, operacje skalowania.
- Używana jako fundament dla wielu innych bibliotek (np. LAPACK).
- Dostępna w wersjach zoptymalizowanych: OpenBLAS, Intel MKL, ATLAS.
2. LAPACK (Linear Algebra PACKage)
- Rozszerzenie BLAS o zaawansowane operacje: rozkłady macierzy, rozwiązania układów równań, wartości własne.
- Kluczowa w obliczeniach naukowych i inżynierskich – napisana w Frotranie.
- Wspierana przez GCC i dostępna w repozytoriach większości dystrybucji Linuksa.
3. FFTW (Fastest Fourier Transform in the West)
- Biblioteka do szybkiego obliczania transformacji Fouriera.
- Choć napisana głównie w C, posiada interfejsy Fortranowe.
- Wykorzystywana w analizie sygnałów, fizyce, przetwarzaniu danych.
4. NetCDF (Network Common Data Form)
- Format danych i biblioteka do przechowywania danych naukowych w formacie siatki (np. klimat, oceanografia).
- Obsługuje interfejs Fortranowy (NetCDF-Fortran).
- Używana przez NOAA, NASA i inne instytucje badawcze.
5. HDF5 (Hierarchical Data Format)
- Zaawansowany format danych do przechowywania dużych zbiorów danych binarnych.
- Biblioteka HDF5 posiada interfejs Fortranowy.
- Wspierana przez wiele aplikacji naukowych i narzędzi HPC.
6. MPI (Message Passing Interface)
- Biblioteka do programowania równoległego w klastrach i superkomputerach.
- Fortran ma pełne wsparcie dla MPI (np. przez MPICH, OpenMPI).
- Używana w symulacjach wielkoskalowych i obliczeniach rozproszonych.
7. OpenMP
- Interfejs OpenMP do programowania współbieżnego na poziomie wątków.
- Wspierany przez kompilatory Fortranowe (gfortran, Intel Fortran).
- Pozwala na łatwe przyspieszenie obliczeń na CPU.
8. SciPy i NumPy (poprzez F2PY)
- Choć to biblioteki Pythona, wiele ich funkcji opiera się na kodzie Fortranowym.
- F2PY umożliwia łączenie kodu Fortran z Pythonem — popularne w środowiskach naukowych.
Przykłady zastosowań
- Symulacje CFD (Computational Fluid Dynamics): LAPACK + MPI
- Modelowanie klimatu: NetCDF + HDF5
- Obliczenia kwantowe i fizyka cząstek: BLAS + FFTW
- Obliczenia równoległe w klastrach HPC: Fortran + OpenMP/MPI
Podsumowanie
Fortran to język, który nie tylko przetrwał próbę czasu, ale wciąż odgrywa istotną rolę w nauce i technice. Dla użytkowników Linuksa zainteresowanych obliczeniami numerycznymi, symulacjami czy pracą z dużymi zbiorami danych, Fortran pozostaje narzędziem godnym uwagi — zarówno ze względu na swoją historię, jak i praktyczne zastosowania.