Welcome to our WWW page introducing our research in object-oriented programming using the Fortran 90 programming language. Fortran 90 is a modern language that introduces many important new features beneficial for scientific programming. While the array-syntax notation has received the most attention, we have found that many modern software development techniques can be supported by this language, including object-oriented concepts.
While Fortran 90 is not a full object-oriented language it can directly support many of the important concepts of such languages including abstract data types, encapsulation, function overloading, and classes. Other concepts, such as inheritance and dynamic dispatching, are not supported directly, but can be emulated. (Direct support is a Fortran 2000 requirement.) Since Fortran 90 is backward compatible with Fortran 77, new concepts can be introduced into existing programs in a controlled manner. This allows experienced Fortran 77 programmers to modernize their software, making it easier to understand, modify, share, explain, and extend based on the benefits modern programming principles provide.
For a short summary of the major points see "Expressing Object-Oriented Concepts in Fortran 90", which appeared in the ACM Fortran Forum, vol. 16, num. 1, April 1997.
See "Introduction to Object-Oriented Concepts Using Fortran 90". for a more detailed, but still simplified discussion (subtyping and dynamic dispatching are not discussed here).
We have written a variety of object-oriented plasma particle-in-cell programs on sequential workstations and high performance distributed memory computers in Fortran 90 and C++. All of our Fortran 90 programs execute more quickly than the equivalent C++ versions, yet the abstraction modeling capabilities that we needed were comparably powerful. We encourage you to explore these pages and to contact us directly with your questions and commentary.
Please contact us with your questions and comments.