The Plasma Science and Technology Institute (PSTI) at UCLA will host a Research Lecture Series during the Spring Quarter of 2002 highlighting the expertise of one of its distinguished senior researchers, Dr. V.K. Decyk. The weekly lectures are open to all interested persons. Students who wish to receive instruction credit can enroll in the course "Physics 290" for S/U grade.

"Fortran 95" is a powerful, high level language designed for mathematical modeling. It is a safe language that gives high performance, with many features attractive to scientists who want to spend a minimum amount of time programming, such as leak-proof dynamic memory. Although it is not a fully object-oriented language, it supports enough features that object-oriented design can be implemented. This is important because it allows more complex software to be constructed. These lectures are intended to introduce "Fortran 77" programmers to the new features of " Fortran 95". Strategies for how to modernize old "Fortran 77" codes incrementally, as well as object-oriented design in "Fortran 95" will be discussed.

First meeting: April 3, 2002

Schedule: Every Wednesday, from 3-4:30 p.m.

Location: Kinsey 141


Part I: Overview of new features of Fortran90/95

Lecture 1: Types, Program Units, Flow Control, Iteration

Lecture 2: 1D Array Processing, Derived Types

Lecture 3: Multi-dimensional arrays, Pointers

Lecture 4: I/O, Advanced Features

Part II: Overview of Object-Oriented Concepts

Lecture 5: Information Hiding, Function Overloading, and Abstract Data Types

Lecture 6: Inheritance and Dynamic Dispatch

Part III: Case Study: QuickPIC Framework

Lecture 7: Frameworks Overview and Lower Level Classes

Lecture 8: Middle Level Classes

Lecture 9: High Level Classes

Related Full Papers by V. K. Decyk, C. D. Norton, and B. K. Szymanski:

Introduction to Object-Oriented Concepts Using Fortran90, 1996

How to Express C++ Concepts in Fortran90. 1997

How to Support Inheritance and Run-Time Polymorphism in Fortran90, 1998

A Simplified Method for Implementing Run-Time Polymorphism in Fortran95, 2004

Object-Oriented Design Patterns in Scientific Codes using Fortran95, 2006

Object-Oriented Design Patterns in Fortran 90/95, 2007