Steve Lantz, Adam Brazier (revisions)
Cornell Center for Advanced Computing

Revisions: 2/2023, 10/2014, 6/2012 (original)

Fortran offers many features that make it attractive for writing programs with a numerical emphasis. Today, nearly half of the open-source applications that can be run on supercomputers contain at least some Fortran. You have reached the starting point of an introductory roadmap that covers the basics of the language.

Fortran has a long history. It was developed in 1954 as the first high-level programming language. Legacy code conforming to the former FORTRAN 77 (and earlier) standards is now called "old" Fortran. About 30 years ago, a major effort was made to modernize the language, and a "new" Fortran was born. Its name declares (in mixed case) the year of its arrival: Fortran 90. Since then, updates have been made to the standard in 1995 (Fortran 95), 2003 (Fortran 2003), 2008, and 2018. Informally, these standards are nicknamed F90, F95, etc.

Currently available compilers support the full standards from F90 through F08, plus many features of F18. Recent additions to the language support advanced techniques like recursion, pointers, operator overloading, object-oriented programming, Coarray (parallel) Fortran... just to mention a few of the numerous enhancements that are now part of the language.

Given that the histories of Fortran and HPC have long been intertwined, there is every reason to expect their co-evolution to continue further into the 21st century. No doubt we will soon be witnessing new and exciting expansions into the realm of heterogeneous supercomputing represented by Stampede2 and Frontera.

Objectives

After you complete this topic, you should be able to:

  • Distinguish between Fortran and C
  • Define Fortran commands
  • Write a program in Fortran
  • Compile and run a file
  • Identify versions of Fortran
  • Identify program units and their functions
  • Define the types of variables
  • State how alphanumeric and special characters can be used in Fortran
  • Distinguish between declaration and assignment of variables
Prerequisites
  • Familiarity with an editor
  • Knowledge of how to execute simple commands on the command line
  • Some basic understanding of what a computer language is
 
©   Cornell University  |  Center for Advanced Computing  |  Copyright Statement  |  Inclusivity Statement