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 applications.
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.
The course introduces the basic elements of the language (type, variable, operator, expression, function, statement, flow control construct), program units (program, function, subroutine and module), arrays and array syntax, and management of dynamic memory, with short hints at object programming and abstract data types. The topics are detailed by means of both didactic and realistic examples in the context of scientific and technical computing, providing a complete presentation of the Fortran 90 with the innovations given by the 95 revision. Selected features of 2003 Standard will be discussed as well. Particular care is given to illustrate the “good” programming practices and to the most common errors a Fortran programmer may encounter.
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. Experiences in Fortran 77 may be helpful.