Modern Fortran for Scientific Computing

Monday, 23 November 2026 09:00 to Friday, 27 November 2026 18:00
Angela Acocella
Provided as: 
Ordinary Course
Registrations closing: 
Monday, 02 November 2026 at 09:00

The course is FREE OF CHARGE.

It will be held IN PERSON ONLY and delivered in ENGLISH. No streaming or online participation will be available.

A certificate of attendance will be issued to all participants who meet the attendance requirements.

Organizer: 
Angela Acocella
Fortran is among the earliest high-level programming languages and the first one to be standardized. The specific features of the language and a widespread experience acquired in coding allow Fortran compilers to build highly optimized executables. Successive revisions of the Fortran standard have progressively introduced features that improve code design, memory management, interoperability, and parallel computing. This, along with the large number of built-in mathematical functions and the wide range of highly optimized scientific libraries available, makes Fortran a good choice for numerical, scientific, engineering, technical, and high-performance computing applications. Fortran 90, the ISO standard that replaced the previous 77 release, introduced many innovations: from the derived types which may be defined by the user, to a specific syntax to handle dynamically allocated memory. Fortran 2003 further extended the capabilities of the language by adding (among other things) the support for object-oriented programming and a standard way to interoperate with C. More recent standards, including Fortran 2008, 2018, and 2023, have further extended the language with features relevant to modern scientific and parallel computing. Nowadays, Fortran continues to be used in a wide range of scientific and engineering applications, supported by mature compilers, libraries, and large-scale scientific codes. 
In this course we will introduce the most important features of Modern Fortran, from basic syntax and program structure to the definition of derived types, classes, operator overloading, pointers, arrays, dynamic memory management, and interoperability with C and Python. Attention will be given to the use of these features in scientific codes and to their impact on code organization, memory usage, performance, and maintainability. This year's edition introduces two new topics reflecting the evolution of scientific software development and modern programming practices: i) an introduction to Modern Fortran in High-Performance Computing,  covering the main parallel programming paradigms and the role of the language features relevant to performance and optimization; and ii) the use of Large Language Models (LLMs) as coding assistants, with a focus on code generation, debugging, context management, and verification of AI-assisted code.

Skills

By the end of the course the student will gain familiarity with:
• the basic elements of Modern Fortran (type, variable, operator, expression, function, statement, flow control construct);
• structuring a program in code units (program, function, subroutine, and module);
• managing arrays and dynamic memory;
• defining and use derived types, operator overloading, and classes;
• understanding the compilation process, including the usage and creation of static and dynamic libraries and how to interface with C and Python;
• understanding how Modern Fortran features relate to the organization, memory usage, and performance of scientific codes;
• becoming familiar with the main concepts and paradigms of parallel and high-performance computing relevant to Fortran;
• gaining an introduction to the use of LLM-based tools as programming assistants, including code generation, refactoring, debugging, and verification.
 

Target audience

Programmers working in scientific and technical computing who may benefit from learning and using the main features of Modern Fortran.
Pre-requisites
Basic computer literacy and familiarity with basic computer tools, such as command-line environments and text editors, are required. Basic knowledge of procedural programming concepts (variables, expressions, execution flow, functions) may be helpful.
 

Development environment

In preparation for the technical activities, participants are kindly asked to set up their development environment before the course. Participants should have a GCC compiler suite, including GNU Fortran (gfortran), a programmer editor, and Git installed on their computer. 
Intended for: 
Research Institutions
Schools
Universities
Area: 
Languages
Length: 
5 dd
Conclusa: 
0

Next courses

  • 23-11-2026, Cineca - Via Magnanelli 6/3 40033 Casalecchio di Reno, BO, ITALY

Any question?

For HPC and computer graphics courses, write to corsi.hpc@cineca.it

About CINECA

Cineca is a non profit Consortium, made up of 102 Italian national institutions: Universities, Italian Research Institutions and the Italian Ministries of Universities and Education.

Today it is the largest Italian computing centre, one of the most important worldwide. With more seven hundred employees, it operates in the technological transfer sector through high performance scientific computing, the management and development of networks and web based services, and the development of complex information systems for treating large amounts of data.

It develops advanced Information Technology applications and services, acting like a trait-d'union between the academic world, the sphere of pure research and the world of industry and Public Administration. .

Visit the Cineca website