This online course is targeted at scientists who wish to extend their knowledge of Fortran to cover advanced features of the language.
The agenda is as follows:
Day 1 + 2:
- Best Practices
- global objects and interfaces
- abstract interfaces
- object based programming
- Object-Oriented Programming
- type extension, polymorphism and inheritance
- binding of procedures to types and objects
- generic type-bound procedures
- abstract types and deferred bindings
- creation and destruction of objects
- polymorphic objects and function arguments
- interacting objects
- dependency inversion: submodules and plugins
- parameterized derived types
- derived-type I/O (tentative/optional)
Day 3
- Interoperability with C
- mixed language programming patterns
- Recently added language features
- Basics on porting Fortran onto GPU
- directive based using OpenMP/OpenACC offload
- do-concurrent GPU-offload
- others
Day 4
- Coarrays
- PGAS concepts and coarray basics
- dynamic entities
- advanced synchronization
- collectives, events, teams
- patterns, performance aspects
- program termination
Fees
This is a fee based course.
Pre-required logistics
Course participants should have good knowledge of the Fortran 95 standard (such as covered in the "Programming with Fortran" course at LRZ).
Also a basic UNIX/Linux knowledge, e.g. working on the command line, editing makefiles (e.g. using vi or emacs) etc., may be necessary.