The HECToR Service is now closed and has been superceded by ARCHER.

Object-Oriented Programming in Fortran 2003

Description: Fortran 2003 explicitly supports object-oriented programming (OOP). OOP aims to increase a program's maintainability in part by reducing cross-module data dependencies and to increase a program's reusability in part by providing for extensible derived types. Emerging compiler support for Fortran 2003 inspires a more modern program design and implementation style. This course provides the requisite skills. Day 1 introduces OOP in Fortran 2003. Day 2 explores several paths toward parallel OOP. An optional Day 3 introduces patterns of best practice in program organization. Examples will utilize introductory-level numerical algorithms from linear algebra and differential equations inspired by multiphysics modeling that is coupled field problems common to many interdisciplinary, engineering, and physical science simulations.

This course will be given by Damian Rouson and Karla Morris from Sandia National Laboratories in the US. Damian is the manager of the Reacting Flow Research Department and a Visiting Assistant Professor at the University of Cyprus. His research interests focus on scalable scientific software design. He has recently written a book on the subject, Scientific Software Design: The Object Oriented Way . He is also the software architect of the object oriented Fortran interface to Trilinos, ForTrilinos. ForTrilinos provides Fortran applications direct access to capabilities in the Trilinos project

Karla is a senior member of technical staff in the Reacting Flow Research Department at Sandia. She is the lead developer of ForTrilinos. Her research interests include computational fluid dynamics to multiphysics flows and scientific software architecture. .

For more information see the syllabus.

Aimed at: Anyone interested in writing object-oriented Fortran.

Prerequisites: Attendees should be able to program in 90 or 95, including being familiar with modules and derived types. They should be familiar with working in a Unix-like environment, including command-line shell usage, text file editing, and program compilation and execution. Attendees should also have introductory-level knowledge of linear algebra and numerical analysis of differential equations, e.g. Gaussian elimination and Runge-Kutta marching algorithms.

Duration: 2 days plus an optional 3rd day.

After Course Attendees Will: Be able to design and implement programs in Fortran 2003 using object-oriented design patterns.

Registration: To register for HECToR courses go to the booking form. Please register for the first two days only or all three days.