Kurs programovaní v jazyce Fortran. Normy Fortranu 77, 90/95 a 2003. Práce s překladači pro Microsoft Windows a Linux. Pěstování dobrých návyků.
Poslední úprava: HANYK/MFF.CUNI.CZ (12.04.2008)
Course of programming in the Fortran language. Fortran standards 77, 90/95 and 2003. Using compilers for Microsoft Windows and Linux. Good manners of Fortran programmers.
Poslední úprava: HANYK/MFF.CUNI.CZ (12.04.2008)
Cíl předmětu -
Student plynně programující ve Fortranu 95, chápající Fortran 77 a vyčkávající překladačů Fortranu 2003.
Poslední úprava: HANYK/MFF.CUNI.CZ (12.04.2008)
Students writing fluently source codes in Fortran 95, understanding Fortran 77 and looking forward to Fortran 2003 compilers.
Poslední úprava: HANYK/MFF.CUNI.CZ (12.04.2008)
Podmínky zakončení předmětu
Předmět bude zakončen zkouškou po předložení vypracovaných domácích úkolů.
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (10.10.2017)
Literatura -
Hřebíček J. a kol., FORTRAN 77 a vědeckotechnické výpočty, Academia, 1989
Metcalf M., J. Reid, M. Cohen, Modern Fortran Explained, Oxford Science, 2011
Press W.H., S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes in Fortran 77: The Art of Scientific Computing, Second Edition, Cambridge University Press, 1996 (http://www.nr.com)
a dále např.
http://en.wikipedia.org/wiki/Fortran
http://www.fortran.com/fortran/metcalf.htm
http://www.root.cz/serialy/fortran-pro-vsechny
http://www.pbm.com/~lindahl/real.programmers.html
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (04.10.2011)
Hřebíček J. a kol., FORTRAN 77 a vědeckotechnické výpočty, Academia, 1989
Metcalf M., J. Reid, M. Cohen, Modern Fortran Explained, Oxford Science, 2011
Press W.H., S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes in Fortran 77: The Art of Scientific Computing, Second Edition, Cambridge University Press, 1996 (http://www.nr.com)
and more at
http://en.wikipedia.org/wiki/Fortran
http://www.fortran.com/fortran/metcalf.htm
http://www.root.cz/serialy/fortran-pro-vsechny
http://www.pbm.com/~lindahl/real.programmers.html
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (04.10.2011)
Metody výuky -
Přednáška a domácí úlohy
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (21.09.2011)
Lecture and homeworks
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (27.09.2011)
Požadavky ke zkoušce
Zkouška je ústní, požadavky odpovídají sylabu v rozsahu prezentovaném na přednášce.
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (10.10.2017)
Sylabus -
Proč Fortran? Normy a překladače Fortranu, fortranská literatura, Fortran na internetu. Charakteristické rysy, typické pomluvy.
Struktura programu: hlavní program, subprogramy, moduly, submoduly, vnořování subprogramů.
Příkazy: přiřazení, podmínky, cykly, skoky, volání procedur, příkazy vstupu a výstupu aj.
Datové typy a podtypy. Specifikace dat, atributy, inicializace. Výrazy: operátory, priorita, typové konverze, standardní procedury. Ostatní specifikace.
Pole: tvar, specifikace. Statická, alokovatelná, automatická a formální pole. Konstruktor pole. Podobnost polí, sekce polí, prvkové funkce a výrazy, standardní procedury pro pole. Cykly a větvení s poli. Možnosti použití alokovatelných polí.
Procedury: funkce a podprogramy. Argumenty procedur, jejich specifikace a předávání, předávání polí, kompatibilita formálních a skutečných argumentů. Vnější, modulové a vnitřní procedury, explicitní rozhraní procedur. Oblast platnosti dat, lokální data, modulová data, globální jména. Rekurzivní, čisté a prvkové procedury, přetěžování procedur.
Vstup a výstup dat: příkazy pro čtení a zápis, formátové specifikace, ediční popisovače. Soubory formátové a bezformátové, přístup do souborů. Práce se znakovým typem.
Ukazatele a cíle. Ukazatelové přiřazení, alokace a dealokace. Ukazatelová pole a pole ukazatelů. Problematické situace.
Struktury a objekty: specifikace odvozeného typu a struktury, konstruktor struktury. Definovaný operátor a přiřazení. Rozšíření odvozeného typu, vázaná procedura, polymorfní proměnná, abstraktní typ, finalizace.
Omezení a zastaralé vlastnosti Fortranu 77, 90 a 95.
Paralelizace ve Fortranu: direktivy OpenMP, procedury MPI. Fortranský PGI akcelerátor pro grafické procesory.
Knihovny numerických metod pro fortranské překladače: LAPACK, Intel MKL, IMSL, NAG, Numerical Recipes.
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (20.10.2011)
Why Fortran? Norms and compilers of Fortran, literature on Fortran, Fortran on the web. Characteristic features, common rumors.
Summary of terms: language elements, data types, constants, names, variables, pointers, specification and control statements, program units, source forms.
Program structure: main program, subprograms, modules, submodules, nesting of subprograms.
Control statements: assignments, conditional and unconditional branches, loops, procedure calls, input/output statements etc.
Data types and kinds. Specification statements, attributes, initialization. Expressions: operators, priority, type conversion, intrinsic procedures. Other specification statements.
Arrays: shape, specification. Static, allocatable, automatic and formal arrays. Array constructor. Conformable arrays, array sections, elemental functions and expressions, array-handling intrinsic procedures. Forall and where statements. Applicability of allocatable arrays.
Procedures: functions and subroutines. Arguments of procedures, specification and passing, passing of arrays, compatibility of formal and actual arguments. External, module and internal procedures, explicit interfaces. Scoping units, local data, module data, global names. Recursive, pure and elemental procedures, overloading of procedures.
Data transfer: input and output statements, format definition, edit descriptors. Operations on external files. Format conversion with internal files.
Pointers and targets. Pointer assignment, allocation and deallocation. Pointer arrays and arrays of pointers. Problematic situations.
Structures and objects: specification of derived types and structures, structure constructors. Defined operator and assignment. Type extension, type-bound procedure, polymorphic variable, abstract type, finalization.
Legacy restrictions and obsolescent features of Fortran 77, 90 and 95.
Parallelization in Fortran: OpenMP directives, MPI procedures. PGI accelerator for graphics processing units.
Libraries of numerical methods for Fortran compilers: LAPACK, Intel MKL, IMSL, NAG, Numerical Recipes.
Poslední úprava: Hanyk Ladislav, RNDr., Ph.D. (20.10.2011)