GNU Fortran z elementami wizualizacji danych
Notka wydawnicza
"GNU Fortran z elementami wizualizacji danych" jest podręcznikiem do nauki nowoczesnego programowania w Fortranie 77 i 90/95, opartego na kompilatorach Open Source i systemach operacyjnych Windows i Unix/Linux. Pierwszy rozdział zawiera wprowadzenie dotyczące ogólnych zagadnień związanych z programowaniem, podstawowe wiadomości o Fortranie, GNU Fortranie i Wolnym Oprogramowaniu, a także środowiskach programistycznych przeznaczonych do pracy z tym językiem. Rozdziały drugi i trzeci zawierają informacje pomocne podczas instalacji i użytkowania kompilatorów GNU Fortranu w systemach operacyjnych Windows oraz Linux. Dalsze dziesięć rozdziałów opisuje partiami standard Fortranu 77. Standard 90/95 przedstawiony został w obszernym rozdziale 14. Celowość takiego podziału narzuca praktyka: do dzisiaj bowiem większość kodów źródłowych Fortranu napisana została w standardzie 77. Dobry programista powinien zatem rozróżniać te standardy i umiejętnie poruszać się w zbiorach ich instrukcji, tak aby efektywnie pracować z dowolną wersją kodu źródłowego i w razie potrzeb dokonać tłumaczenia jednego standardu na drugi. Rozdzielenie materiału na części poświęcone starszemu i nowszemu standardowi języka ma również za zadanie ułatwić wdrożenie się w standard 90/95 osobom znającym Fortran 77, a chcącym pogłębić swoje wiadomości. Rozdział 15 przedstawia ogólne strategie programowania nakierowanego na uzyskiwanie efektów graficznych: wykresów dwu- i trójwymiarowych, rozkładów pól skalarnych i wektorowych, map geograficznych czy też animacji. Konkretne zastosowanie wybranych rozwiązań - biblioteki graficznej DISLIN i środowiska Gnuplot - w integracji z językiem Fortran, przedstawione zostało odpowiednio w rozdziałach 16 i 17. Rozdział 16 wymaga od czytelnika opanowania w podstawowym zakresie języka Fortran. Podobnie jest z rozdziałem 17, z tym że informacje w nim przedstawione dają się łatwo zastosować również w całkowitym oderwaniu od języka Fortran. Ostatni rozdział książki przedstawia technikę integracji programów pisanych w języku Fortran, narzędzi graficznych oraz języka powłoki systemów operacyjnych Windows oraz Linux do wykonywania tzw. obliczeń parametrycznych. Cennym elementem podręcznika jest opracowana w postaci załącznika tabela około 200 funkcji wewnętrznych dostępnych w kompilatorach GNU Fortranu. Wskazane są w niej również standardy, w których poszczególne funkcje występują. Całość materiału została tak ułożona, że odbiorcą książki może być zarówno osoba rozpoczynająca swoją przygodę z językiem Fortran, jak również osoba język ten znająca, ale poszukująca prostych i skutecznych metod wizualizacji danych. Książka "GNU Fortran z elementami wizualizacji danych" stanowi jak dotąd najobszerniejszą i najszerszą publikacją dotyczącą języka Fortran - i pierwszą opisującą kompilatory Open Source - wydaną w języku polskim. Czytelnika zainteresuje zapewne informacja, że autor podręcznika jest również autorem bezpłatnego pakietu oprogramowania służącego do programowania w języku Fortran i integrującego omawiane w książce narzędzia, a podjęte przez niego niekomercyjne przedsięwzięcie stworzenia kompleksowego zestawu informacji i narzędzi jest unikalne w skali światowej. Oprogramowanie autora, wszystkie kody źródłowe przykładów zawartych w książce, a także dodatkowe przykłady stosowania wszystkich opisanych w załączniku książki funkcji wewnętrznych, dostępne są na stronie http://moskit.uwm.edu.pl/~wojsob/
Od autora (fragment z książki)
Istnieje wiele publikacji związanych z językiem Fortran, z pewnych jednak względów postanowiłem napisać kolejny. Oto one:
- W literaturze nie ma ukierunkowania na kompilatory darmowe, takie jak GNU g77, g95 czy gfortran. Wszystkie przykłady tu zaprezentowane opieram na tych właśnie kompilatorach. Dlaczego? Bo są one całkowicie darmowe i ogólnie dostępne, a jako zwolennik Wolnego Oprogramowania promuję takie właśnie podejście.
- Stosowanie Wolnego Oprogramowania jest zgodne z obecnymi tendencjami branży informatycznej oraz zaleceniami Unii Europejskiej. Zalecenie to dotyczy szczególnie obszarów budżetowych, takich jak administracja, edukacja, nauka czy służba zdrowia. Szacuje się, że obszar zastosowań Wolego Oprogramowania będzie się sukcesywnie rozszerzał, dając Państwu Polskiemu znaczne oszczędności finansowe.
- Zauważyłem, że autorzy podręczników nie wymieniają zazwyczaj środowisk programistycznych języka Fortran - albo nie piszą o nich nic, albo wskazują na jedno konkretne (i zazwyczaj komercyjne) środowisko. Dlatego też postanowiłem wskazać kilka pakietów przeznaczonych do tworzenia aplikacji w języku Fortran, ze szczególnym naciskiem na oprogramowanie darmowe. Czytelnik może zapoznać się z nimi samodzielnie i wybrać najbardziej mu odpowiadające.
- Jestem autorem pakietu programistycznego Edi - jest to zintegrowane środowisko przeznaczone do programowania w języku Fortran 77 i 90/95 oparte na kompilatorach GNU. Niniejsza dokumentacja stanowi doskonałe uzupełnienie całości, ułatwiając naukę oraz pracę w tym pakiecie. W książce nie przedstawiam pakietu Edi, podręcznik użytkownika został umieszczony w pakiecie instalacyjnym.
- W literaturze związanej z językiem Fortran nie podejmuje się zazwyczaj problemu wizualizacji danych. Fortran jest świetnym językiem do obliczeń - łatwym do zrozumienia, prostym w składni i bardzo szybkim w działaniu. Co jednak robić z otrzymanymi wynikami? Oglądanie ich w formie ciągu liczb na ekranie monitora nie jest zbyt atrakcyjne. Dlatego też swoją pracę uzupełniam o te elementy i staram się odpowiedzieć na pytanie: jak wizualizować wyniki obliczeń? Również w tym zakresie stawiam na narzędzia darmowe, rozpowszechniane na licencji GPL lub Freeware. Często bowiem nie ma potrzeby zakupu - bardzo drogiego zazwyczaj - oprogramowania komercyjnego do realizacji własnych celów informatycznych. Jako pracownik naukowo-dydaktyczny od lat już praktycznie nie korzystam z żadnego programu komercyjnego, a mimo to z powodzeniem realizuję wszystkie swoje "programistyczne" zamierzenia. W częściach książki poświęconej wizualizacji danych przedstawiam m.in. podstawy stosowania ogólnodostępnej biblioteki graficznej DISLIN oraz podstawy pracy w środowisku Gnuplot.
- W literaturze przedmiotu rzadko przedstawia się tematykę tworzenia w języku Fortran bibliotek statycznych. Postanowiłem uzupełnić tę lukę i dodać odpowiedni przykład ilustrujący to zagadnienie.
- W polskiej literaturze związanej z językiem Fortran praktycznie nie wspomina się o pracy w systemie Linux. A przecież jest on doskonale wyposażony w narzędzia programistyczne: w tym również kompilatory języka Fortran oraz bibliotekę DISLIN. Z tego powodu postanowiłem podać niezbędne informacje pomocne w pracy z kompilatorami GNU Fortranu w systemie Linux.
- Każdy się chyba zgodzi, że programowanie obejmuje znacznie więcej elementów niż tylko wpisywanie odpowiedniego ciągu instrukcji do kodu źródłowego. Programista powinien znać wiele dodatkowych narzędzi i technik ułatwiających tworzenie sprawnie działających systemów obliczeniowych. Z tego właśnie względu w wielu przypadkach wychodzę poza obszar ściśle związany z językiem Fortran, prezentując dodatkowe możliwości (czego się w literaturze raczej nie spotyka).
- Programowaniem w języku Fortran zajmuję się od wielu już lat i postanowiłem podzielić się swoim doświadczeniem. Również to opracowanie nie powstało z dnia na dzień, lecz było rozbudowywane, poprawiane i uzupełniane o dawna, począwszy od pierwszych notatek czynionych przy nauce tego języka.
- Prowadzę zajęcia ze studentami z programowania w języku Fortran.
Podczas korzystania z podręcznika zalecam instalację pakietu Edi (o ile praca odbywa się w środowisku Windows) - można go pobrać z mojej strony domowej. Oprócz omawianych w książce kompilatorów g77, g95 i gfortran, pakiet Edi zawiera również wbudowaną bibliotekę DISLIN, środowisko Gnuplot oraz inne przedstawione w książce narzędzia. Nie będzie zatem potrzebna instalacja i konfiguracja tych dodatków. Bezpośrednio po instalacji można ćwiczyć dowolny fragment materiału z podręcznika bez dodatkowych czynności wstępnych. W skład pakietu Edi wchodzi również podręcznik użytkownika, zbiór kursów i materiałów, opis i przykłady stosowania funkcji wewnętrznych oraz zestaw dodatkowych narzędzi. Na stronie domowej projektu Edi można również pobrać kody źródłowe wszystkich prezentowanych w książce przykładów.
Mam nadzieję, że moje opracowanie będzie przydatne. Życzę efektywnej nauki i pracy oraz jak najmniejszej liczby błędów w kodach źródłowych...
Zawartość podręcznika
W skrócie, podręcznik "GNU Fortran z elementami wizualizacji danych" zawiera:
- wprowadzenie dotyczące Wolnego Oprogramowania oraz języka Fortran,
- przegląd darmowych środowisk programowania języka Fortran,
- opis instalacji i konfiguracji kompilatorów GNU Fortranu w systemach operacyjnych Windows i Linux,
- opis standardu języka Fortran 77,
- opis standardu języka Fortran 90/95,
- opis wybranych metod wizualizacji wyników obliczeń,
- podstawy pracy z biblioteką graficzną DISLIN,
- podstawy pracy w środowisku Gnuplot,
- opis wybranych narzędzi programistycznych,
- 102 przykłady ze standardu Fortranu 77,
- 42 przykładów ze standardu Fortranu 90/95,
- 15 przykładów zastosowania biblioteki DISLIN,
- 26 przykładów zastosowania środowiska Gnuplot,
- opis automatyzacji zadań z użyciem języka powłoki systemowej,
- 4 załączniki (w tym lista funkcji wewnętrznych wraz z opisem).
Materiały dodatkowe
Rys 1. Interfejs programu Edi 3.1
- Kody źródłowe przykładów z książki:
- Przykłady około 200 funkcji wewnętrznych GNU Fortranu dostępne są w pakiecie Edi w module Funkcje.
Uwagi:
- Ponieważ w czasie dokonywania korekt wydawniczych musiałem czasami modyfikować treści książki na potrzeby składu, zebrane tu kody źródłowe mogą się nieznacznie różnić od tych, które są zawarte w książce.
- Ponieważ kompilator GNU Fortran nieustannie się rozwija - a książka po wydrukowaniu już nie - należy zdawać sobie sprawę z tego, że w którejś z kolejnych wersji kompilatora może ulec zmianie interpretacja jakiejś instrukcji lub funkcji zewnętrznej i któryś z przykładów może nie działać poprawnie. Spotkałem się już z takim zjawiskiem w przeszłości.
- W razie uwag dotyczących powyższych aspektów proszę o kontakt.
Literatura
- Bloodshed Software. URL: http://www.bloodshed.net (En, 2007-10-16).
- Burley J.C.: Using and Porting GNU Fortran. URL: http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77.pdf (En, 2007-10-16).
- Compaq Fortran User Manual for Tru64 UNIX and Linux Alpha Systems. URL: http://alpha.caspur.it/FORTRAN_USR_MAN_DOC/dfumroutines.htm (2007-10-16).
- Cygwin Home. URL: http://www.cygwin.com (En, 2007-10-16).
- DISLIN 9.1 A Data Plotting Library by Helmut Michels. URL: http://www.mps.mpg.de/dislin/manual.html (En, 2007-10-16).
- DISLIN Home Page. URL: http://www.mps.mpg.de/dislin (En, 2007-10-16).
- F90GL. URL: http://math.nist.gov/f90gl (En, 2007-10-16).
- Force Project. URL: http://www.guilherme.tk (En, 2007-10-16).
- Fortran. URL: http://www.answers.com/topic/fortran (En, 2007-10-16).
- Fortran 77 and VMS Intrinsic Functions. URL: http://docs.sun.com/source/819-3684/3_F77_Intrins.html (En, 2007-10-16).
- Fortran 77 Runtime Error Messages. URL: http://www.uic.edu/depts/accc/software/compilers/forterr.html (En, 2007-10-16).
- Fortran 77 Table of Intrinsic Functions. URL: http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Table-of-Intrinsic-Functions.html (En, 2007-10-16).
- Fortran 90 Concise Reference. URL: http://www.ifuap.buap.mx/manuales/profortran/F90_Reference.pdf (En, 2007-10-16).
- Fortran 90 for the Fortran 77 Programmer. URL: http://www.whoi.edu/CIS/training/classes/f77to90 (En, 2007-10-16).
- Fortran 90 Intrinsic procedures. URL: http://www.pcc.qub.ac.uk/tec/courses/f90/stu-notes/F90_notesMIF_13.html (En, 2007-10-16).
- Fortran 95 by Dr. M.J. Rutter. URL: http://www.tcm.phy.cam.ac.uk/~mjr/f1nn.pdf (En, 2007-10-16).
- Fortran and C/C++ Mixed Programming. URL: http://www.neurophys.wisc.edu/comp/docs/notes/not017.html (En, 2007-10-16).
- Fortran - Categories of Intrinsic Functions. URL: http://alpha.caspur.it/FORTRAN_DOC/www.compaq.com_80/fortran/docs/lrm/lrm0193.htm (En, 2007-10-16).
- Fortran Library Reference. SUN Studio 10. URL: http://www.fzu.cz/oddeleni/savt/luna/dokumentace/Library.pdf (En, 2007-10-16).
- Free Fortran Compilers. URL: http://www.thefreecountry.com/compilers/fortran.shtml (En, 2007-10-16).
- Free Pascal Lazarus Project. URL: http://www.lazarus.freepascal.org/modules.php (En, 2007-10-16).
- FTN95 Personal Edition. URL: http://www.silverfrost.com/32/ftn95/ftn95_personal_edition.asp (En, 2007-10-16).
- G77 - Table of Intrinsic Functions. URL: http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Table-of-Intrinsic-Functions.html#Table-of-Intrins (En, 2007-10-16).
- G77 - Run-time Library Errors. URL: http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Run_002dtime-Library-Errors.html (En, 2007-10-16).
- G95 Manual. URL: http://genome.jouy.inra.fr/doc/public/g95/G95Manual.pdf (En, 2007-10-16).
- GCC Online documentation. URL: http://gcc.gnu.org/onlinedocs/ (En, 2007-10-16).
- Gfortran Intrinsic Procedures. URL: http://os.cqu.edu.au/cgi-bin/info/info2html.cgi?(gfortran)Intrinsic%20Procedures (En, 2007-10-16).
- GNU Fortran 77 (g77) Legacy Site. URL: http://world.std.com/~burley/g77.html (En, 2007-10-16).
- Gnumeric - The Gnome Office Spreadsheet. URL: http://www.gnome.org/projects/gnumeric (En, 2007-10-16).
- GNUPlot & Vi. URL: http://fatcat.ftj.agh.edu.pl/~tomczyk (Pl, 2007-10-16).
- GNUPlot HomePage. URL: http://www.gnuplot.info (En, 2007-10-16).
- GNUPlot - not so Frequently Asked Questions. URL: http://t16web.lanl.gov/Kawano/gnuplot/index-e.html (En, 2007-10-16).
- Harper J.F.: Fortran 95 for Fortran 77 Users. Victoria University of Wellington. URL: http://www.mcs.vuw.ac.nz/math/papers/JFH10_f95_2007.pdf (2007-10-16).
- Host/Target specific installation notes for GCC: URL: http://gcc.gnu.org/install/specific.html (En, 2007-10-16).
- Intel® Compilers. URL: http://www.intel.com/cd/software/products/asmo-na/eng/compilers (En, 2007-10-16).
- Intel Fortran Language Reference. URL: http://www.ncsa.uiuc.edu/UserInfo/Resources/Software/Intel/Compilers/9.0/lang_for.pdf (En, 2007-10-16).
- Intel Fortran Programmer's Reference. URL: ftp://download.intel.com/support/performancetools/fortran/linux/v7/for_prg.pdf (En, 2007-10-16).
- Intrinsic functions in Fortran 90. URL: http://www.nsc.liu.se/~boein/f77to90/a5.html (En, 2007-10-16)
- IrfanView. URL: http://www.irfanview.com (En, 2007-10-16).
- Lahey Fortran. URL: http://www.lahey.com (En, 2007-10-16).
- Liczby pierwsze - liczby pseudolosowe. URL: http://www.eioba.com/a2322/liczby_pierwsze_liczby_pseudolosowe (Pl, 2007-10-16).
- MinGW - Home: URL: http://www.mingw.org (En, 2007-10-16).
- NDrW. JPEGVideo. URL: http://www.ndrw.co.uk (En, 2007-10-16).
- Octave. URL: http://www.octave.org (En, 2007-10-16).
- OpenOfficeOrg. URL: http://www.openoffice.org (En, 2007-10-16).
- Open Watcom Main Page. URL: http://www.openwatcom.org/index.php/Main_Page (En, 2007-10-16).
- PSPLOT. PostScript for Technical Drawings. URL: http://www.nova.edu/ocean/psplot.html (En, 2007-10-16).
- RPM Search. URL: http://rpm.pbone.net (En, 2007-10-16).
- PGI Fortran Reference. URL: http://www.pgroup.com/doc/pgifortref.pdf (En, 2007-10-16).
- Programmeinheiten. URL: http://www.kfa-juelich.de/zam/docs/bhb/bhb_html/d0124/node58.html (De, 2007-10-16).
- SciLab. URL: http://www.scilab.org (En, 2007-10-16).
- Software from Alan J. Miller. URL: http://users.bigpond.net.au/amiller (En, 2007-10-16).
- Status of Fortran 95. URL: http://www.nsc.liu.se/~boein/f77to90/f95.html (En, 2007-10-16).
- Summary of the new features in Fortran 90. URL: http://www.nsc.liu.se/~boein/f77to90/a3.html (En, 2007--10-16).
- Tablica znaków ASCII: URL: http://office.microsoft.com/pl-pl/word/HA011331361045.aspx (Pl, 2007-10-16).
- The G95 project. URL: http://g95.sourceforge.net (En, 2007-10-16).
- The GNU Fortran Compiler. URL: http://gcc.gnu.org/onlinedocs/gfortran (En, 2007-10-16).
- The Ultimate Packer for eXecutables. URL: http://upx.sourceforge.net (En, 2007-10-16).
- Using GNU Fortran 95. URL: http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gfortran.pdf (En, 2007-10-16).
- VFort. URL: http://www.imamod.ru/~vab/vfort (En, 2007-10-16).
- Welcome to the home of GNU Fortran. URL: http://gcc.gnu.org/fortran (En, 2007-01-20).
- Wikipedia: Cygin. URL: http://pl.wikipedia.org/wiki/Cygwin (Pl, 2007-10-16).
- Wikipedia: MinGW. URL: http://pl.wikipedia.org/wiki/MinGW (Pl, 2007-10-16).
- Wikipedia: Paradygmat programowania. URL: http://pl.wikipedia.org/wiki/Paradygmat_programowania (Pl, 2007-10-16).
- Wikipedia: Popularne Formaty Graficzne. URL: http://pl.wikipedia.org/wiki/Grafika_komputerowa#Popularne_formaty_graficzne (Pl, 2007-10-16).
- XL Fortran for AIX 8.1. URL: http://www.ncsa.uiuc.edu/UserInfo/Resources/Hardware/IBMp690/IBM/usr/share/man/info/en_US/xlf (2007-10-16).
- Zadora M., Zając M.: Komputerowe Symulacje Numeryczne. Fortran 95. URL: http://fatcat.ftj.agh.edu.pl/~majozo/paper.pdf (2007-10-16).