Introduction to modern Fortran

Course Overview

The course provides a comprehensive introduction to the key features of modern Fortran including the Fortran base types, arithmetic, precision, arrays and whole array features, I/O, control structures, intrinsic and user defined functions, subroutines, modules, pointers and simple data structuring.

The course builds to provide a solid foundation of skills to start working with existing codes and to progress to the more advanced course.

On completion of the course delegates should be able to work with most existing codes.

Fortran is the main language for numeric computation, especially high performance computing and over 80% of the workload on the UK's academic research supercomputers is written in Fortran.

The course is suitable for both complete beginners and people with some programming background.


Delegates should be comfortable with using a computer system running Unix, Linux or Windows and a text editor.

Course details

Introduction to problem solving
Introduction to programming languages
Introduction to programming
Introduction to arithmetic

  • real and integer data types
  • rules for computer arithmetic
  • finite precision and implications for computer arithmetic


  • basic array syntax
  • one and multidimensional arrays
  • dynamic arrays - allocatable attribute
  • whole array processing
  • array sections
  • array element ordering


  • numeric edit descriptors
  • input and output of reals and integers
  • character/ text data
  • files
  • file access - open and close statements
  • speed of access - text versus binary files
  • records
  • handling errors


  • the first of the two fundamental Fortran building blocks
  • intrinsic functions
  • user defined functions
  • scope of variable
  • internal functions
  • pure and elemental functions
  • functions and modules

Control Structures

  • complete coverage of Fortran control structures

Character variables

  • character/ text data in Fortran
  • Fortran's character functions

Fortran's other basic data types

  • complex
  • logical

Introduction to derived types

Introduction to pointers


  • Fortran's remaining building block
  • modules and subroutines
  • passing parameters in Fortran
  • passing scalar and array parameters
  • automatic and allocatable arrays
  • keyword and optional arguments
  • internal subroutines and scope
  • commercial numerical and statistical subroutine libraries


  • Fortran's code organisation mechanism
  • basic module syntax
  • modules for global data
  • modules for precision specification and constant definition
  • modules for derived types
  • implicit and explicit interfaces

Introduction to data structuring

Course material

The course is based on Introduction to programming with Fortran (3rd edition)


For more information please contact