Fortran – język, który zrewolucjonizował obliczenia naukowe i nadal żyje w świecie Linuksa

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.

TUX - maskotka systemu Linux

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.