Charles Explorer logo
🇬🇧

Fortran Programming

Class at Faculty of Mathematics and Physics |
NPRF017

Syllabus

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.

Annotation

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.