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. The major revisions of the standard (77/90/2003)
give the chance to improve more and more the code design, and this, along with the large number
of mathematical functions included and an extensive collections of highly tuned scientific packages,
make Fortran a good candidate in the area of numerical, scientific, engineering and technical
Fortran 90, the ISO standard replacing the previous 77 release, adds 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 enlarges the potentiality of
the language by proposing (among other things) the support for object-oriented programming
and a standard way to interoperate with C. Nowadays, Fortran compilers are available for a
very large amount of system facilities, from workstations to massively-parallel systems.
In the last few years also a version of FORTRAN (named CUDA Fortran) for running on Nvidia GPUs
In the framework of this course we will give an introduction to the most important command of
Fortran 90/2003 standard, including also object oriented programming model with Fortran.
During the afternoon of the last day also a short introduction to CUDA Fortran programming
model will be given.
By the end of the course the student will be able to:
- understand the basic elements of the language (type, variable, operator, expression, function, statement, flow control construct)
- structure a program in code units (program, function, subroutine and module)
- manage arrays and dynamic memory
- define and use derived types with elements of object programming
- understand the best practices on the implementation of some typical scientific cases
- have a first look to CUDA Fortran
Programmers of scientific and technical computing, which may benefit from the knowledge and usage of the main features available in Fortran.
Base informatics. Experience with Linux Operative Systems.
Elements of procedural programming: variables, expressions, execution flow, functions.
Use of basic informatics tools: line commands, editors, ...
Experiences in Fortran 77 may be helpful.