Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published November 23, 2021 | Version v1
Lesson Open

Advanced Fortran Topics

  • 1. LRZ

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

https://doku.lrz.de/display/PUBLIC/PRACE+Course%3A+Advanced+Fortran+Topics

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