Advanced Fortran Topics
Description
This course, a PRACE training event, is targeted at scientists who wish to extend their knowledge of Fortran to cover advanced features of the language.
Topics covered include:
- Best Practices
- global objects and interfaces
- abstract interfaces and the IMPORT statement
- 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
- Fortran 2003 I/O extensions, especially user-defined derived type I/O
- OO Design Patterns: application of object-oriented programming
- creation and destruction of objects
- polymorphic objects and function arguments
- interacting objects
- dependency inversion: submodules and plugins
- IEEE features and floating point exceptions (omitted in the 2020 iteration)
- Interoperability with C
- mixed language programming patterns
- Coarrays
- PGAS concepts and coarray basics
- dynamic entities
- advanced synchronization
- parallel programming patterns
- recent enhancements: collectives, events, teams, atomic subroutines
- performance aspects of coarray programming
To consolidate the lecture material, each day's lectures are complemented by hands-on sessions.
Lecturers
Dr. R. Bader, Dr. G. Brietzke, Ivan Pribec
Lecture notes
from the virtual workshop "Advanced Fortran Topics", from Nov 21 - 24, 2022. Please contact the course tutors (Bader_at_lrz_dot_de or Brietzke_at_lrz_dot_de) if questions about any of the materials provided below arise.
- Schedule
- Intro
- Slides for the first part (object oriented programming)
- Slides for the second part (interoperability with C)
- Slides for the third part (parallel programming with coarrays)
Please also see the next section for code downloads.
Examples
- example codes illustrating some of the slide material (ZIP archive).
Exercises
- Exercise sheet
- Exercise skeleton code (ZIP archive).
- Exercise solutions (ZIP archive). We strongly recommend looking at this after you've worked the solutions out for yourself)
Please note that the Makefiles contain definitions which may be only valid when running on LRZ HPC systems.
Notes
Files
Advanced_Fortran_Coarrays.pdf
Files
(11.9 MB)
Name | Size | Download all |
---|---|---|
md5:ea404d5da3a5152e2d3749575ae63f51
|
1.9 MB | Preview Download |
md5:c5abd85fe40111507ffceda47ffeeeeb
|
997.0 kB | Preview Download |
md5:08a8988bad2bd40c9a4a58b779f75a9e
|
2.4 MB | Preview Download |
md5:d5ce24b197a3807ba81d384d276db9ad
|
19.6 kB | Preview Download |
md5:81e57b8dc0b795c3887023c3e2181e65
|
419.5 kB | Preview Download |
md5:5322c26da60fa2325edb7fe09a930d0e
|
5.9 MB | Preview Download |
md5:834a177c4e49b2ef63baedc346af7762
|
44.0 kB | Preview Download |
md5:ae4f372b20e8b1b2b211a6f4623b564c
|
73.5 kB | Preview Download |
md5:390249b16c339cb9e3c1cb62db100fb9
|
93.8 kB | Preview Download |