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