The Queen's University of Belfast
Parallel Computer Centre

[Next] [Previous] [Top]

Introduction to FORTRAN 90

Student Notes


Rob Davies
Cardiff HPC Training and Education Centre

Alan Rea
Parallel Computer Centre, Belfast

Dimitris Tsaptsinos
SEL - HPC

1 - Introduction
1.1 - Programming in general
1.1.1 - Available programming languages
1.1.2 - Choosing a programming language
1.2 - History
1.3 - ANSI Standard
1.4 - The Program - Planning
1.5 - The Program - Algorithms
1.6 - The Program - Example of an algorithm
1.7 - The minimum program
1.8 - Compilation
2 - Variables and Statements
2.1 - Data types
2.2 - Naming Convention
2.3 - Variables
2.3.1 - Implicit Declaration
2.3.2 - Parameters
2.4 - Arithmetic Expressions
2.5 - Assignment Statement
2.6 - Simple Input and Output
2.7 - Comments
2.8 - Program Layout
2.9 - Derived Data Types
2.9.1 - Definition and specification
2.9.2 - Accessing Components
2.10 - Exercises
3 - Character Processing
3.1 - Character Type
3.2 - Character Constants
3.3 - Character Variables
3.4 - Character manipulation
3.4.1 - Concatenation
3.4.2 - Substrings
3.4.3 - Intrinsic Functions
3.5 - Exercises
4 - Arrays
4.1 - Terminology
4.1.1 - Arrays and elements
4.1.2 - Array properties
4.2 - Specifications
4.3 - Array Sections
4.3.1 - Individual elements
4.3.2 - Sections
4.4 - Vector Subscripts
4.5 - Array storage
4.6 - Array Assignment
4.6.1 - Whole array assignment
4.6.2 - Array section assignment
4.6.3 - Elemental intrinsic procedures
4.7 - Zero-sized arrays
4.8 - Initialising arrays
4.8.1 - Constructors
4.8.2 - Reshape
4.8.3 - DATA statement
4.9 - WHERE
4.10 - Array intrinsic functions
4.10.1 - Example of reduction
4.10.2 - Example of inquiry
4.10.3 - Example of construction
4.10.4 - Example of location
4.11 - Exercises
5 - Logical & comparison expressions
5.1 - Relational operators
5.2 - Logical expressions
5.3 - Character Comparisons
5.4 - Portability Issues
5.5 - Exercises
6 - Control statements
6.1 - Conditional statements
6.1.1 - Flow control
6.1.2 - IF statement and construct
6.1.3 - SELECT CASE construct
6.1.4 - GOTO
6.2 - Repetition
6.2.1 - DO construct
6.2.2 - Transferring Control
6.3 - Exercises
7 - Program units
7.1 - Program structure
7.2 - The main program
7.3 - Procedures
7.3.1 - Actual and dummy arguments
7.3.2 - Internal procedures
7.3.3 - External procedures
7.4 - Procedure variables
7.4.1 - SAVE
7.5 - Interface blocks
7.6 - Procedures arguments
7.6.1 - Assumed shape objects
7.6.2 - The INTENT attribute
7.6.3 - Keyword arguments
7.6.4 - Optional arguments
7.6.5 - Procedures as arguments
7.7 - Recursion
7.8 - Generic procedures
7.9 - Modules
7.9.1 - Global data
7.9.2 - Module procedures
7.9.3 - PUBLIC and PRIVATE
7.9.4 - Generic procedures
7.10 - Overloading operators
7.11 - Defining operators
7.12 - Assignment overloading
7.13 - Scope
7.13.1 - Scoping units
7.13.2 - Labels and names
7.14 - Exercises
8 - Interactive Input and Output
8.1 - FORMAT Statement
8.2 - Edit Descriptors
8.2.1 - Integer
8.2.2 - Real - Fixed Point Form
8.2.3 - Real - Exponential Form
8.2.4 - Character
8.2.5 - Skip Character Positions
8.2.6 - Logical
8.2.7 - Other Special Characters
8.3 - Input/Output Lists
8.3.1 - Derived DataTypes
8.3.2 - Implied DO Loop
8.4 - Namelist
8.5 - Non-Advancing I/O
8.6 - Exercises
9 - File-based Input and Output
9.1 - Unit Numbers
9.2 - READ and WRITE Statements
9.2.1 - READ Statement
9.2.2 - WRITE Statement
9.3 - OPEN Statement
9.4 - CLOSE statement
9.5 - INQUIRE statement
9.6 - Direct Access Files
9.7 - Exercises
10 - Dynamic arrays
10.1 - Allocatable arrays
10.1.1 - Specification
10.1.2 - Allocating and deallocating storage
10.1.3 - Status of allocatable arrays
10.2 - Memory leaks
10.3 - Exercises
11 - Pointer Variables
11.1 - What are Pointers?
11.1.1 - Pointers and targets
11.2 - Specifications
11.3 - Pointer assignment
11.3.1 - Dereferencing
11.4 - Pointer association status
11.5 - Dynamic storage
11.5.1 - Common errors
11.6 - Array pointers
11.7 - Derived data types
11.7.1 - Linked lists
11.8 - Pointer arguments
11.9 - Pointer functions
11.10 - Exercises
Appendix A: - Intrinsic procedures
A.1 - Argument presence enquiry
A.2 - Numeric functions
A.3 - Mathematical functions
A.4 - Character functions
A.5 - KIND functions
A.6 - Logical functions
A.7 - Numeric enquiry functions
A.8 - Bit enquiry functions
A.9 - Bit manipulation functions
A.10 - Transfer functions
A.11 - Floating point manipulation functions
A.12 - Vector and matrix functions
A.13 - Array reduction functions
A.14 - Array enquiry functions
A.15 - Array constructor functions
A.16 - Array reshape and manipulation functions
A.17 - Pointer association status enquiry functions
A.18 - Intrinsic subroutines
Appendix B: - Further reading

[Next] [Previous] [Top]
All documents are the responsibility of, and copyright, © their authors and do not represent the views of The Parallel Computer Centre, nor of The Queen's University of Belfast.
Maintained by Alan Rea, email A.Rea@qub.ac.uk
Generated with CERN WebMaker