Object-oriented programming via Fortran 90/95

There is a widely available object oriented (OO) programming language that is usually overlooked in the OO analysis, OO design, OO programming literature. It was designed with most of the features of languages like C++, Eiffel, and Smalltalk. It has extensive and efficient numerical abilities including concise array and matrix handling, like Matlab®. In addition, it is readily extended to massively parallel machines and is backed by an international ISO and ANSI standard. The language is Fortran 90 (and Fortran 95). When the explosion of books and articles on OOP began appearing in the early 1990s many of them correctly disparaged Fortran 77 (F77) for its lack of object oriented abilities and data structures. However, then and now many authors fail to realize that the then new Fortran 90 (F90) standard established a well‐planned object oriented programming language while maintaining a full backward compatibility with the old F77 standard. F90 offers strong typing, encapsulation, inheritance, multiple inheritance, polymorphism, and other features important to object oriented programming. This paper will illustrate several of these features that are important to engineering computation using OOP.

[1]  Jeri R. Hanly,et al.  Essential C++ for engineers and scientists , 1996 .

[2]  Alan George,et al.  An Object-Oriented Approach to the Design of a User Interface for a Sparse Matrix Package , 1999, SIAM J. Matrix Anal. Appl..

[3]  Paul F. Dubois,et al.  Object‐Based Programming in Fortran 90 , 1997 .

[4]  Hubbard,et al.  Programming with C , 1996 .

[5]  Thomas Zimmermann,et al.  Object-oriented finite element programming: III. An efficient implementation in C++ , 1993 .

[6]  Ian M. Graham Object-oriented methods , 1991 .

[7]  Boleslaw K. Szymanski,et al.  High-Performance Object-Oriented Scientific Programming in Fortran 90 , 1997, PPSC.

[8]  Pierre Pegon,et al.  Improving modularity in object-oriented finite element programming , 1997 .

[9]  Pete Thomas,et al.  Object-oriented programming in Eiffel , 1995 .

[10]  O. C. Zienkiewicz,et al.  The superconvergent patch recovery (SPR) and adaptive finite element refinement , 1992 .

[11]  Philippe Remy Bernard Devloo,et al.  OBJECT ORIENTED PROGRAMMING IN SCIENTIFIC COMPUTATIONS: THE BEGINNING OF A NEW ERA , 1991 .

[12]  Boleslaw K. Szymanski,et al.  How to Express C++ Concepts in Fortran90 , 1997, Sci. Program..

[13]  Guy L. Steele,et al.  The High Performance Fortran Handbook , 1993 .

[14]  Duane C. Hanselman,et al.  Mastering MATLAB , 2004 .

[15]  Brian D. Hahn FORTRAN 90 for Scientists and Engineers , 1994 .

[16]  M. O. Deville,et al.  Fortran 90: an entry to object-oriented programming for the solution of partial differential equations , 1997, TOMS.

[17]  Wilhelm Gehrke Fortran 90 Language Guide , 1995, Springer London.

[18]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[19]  Boleslaw K. Szymanski,et al.  Object-oriented parallel computation for plasma simulation , 1995, CACM.

[20]  Thomas Zimmermann,et al.  Object-oriented finite element in programming: II: A prototype program in Smalltalk , 1992 .

[21]  Jerrold L. Wagener,et al.  Fortran 90 Handbook: Complete Ansi/Iso Reference , 1992 .

[22]  Boleslaw K. Szymanski,et al.  Expressing object-oriented concepts in Fortran 90 , 1997, FORF.

[23]  Michael Thuné,et al.  Object-Oriented Software Tools for the Construction of Preconditioners , 1997, Sci. Program..

[24]  Boleslaw K. Szymanski,et al.  How to support inheritance and run-time polymorphism in Fortran 90 , 1998 .

[25]  Julian Cummings,et al.  Comparison of C++ and Fortran 90 for object-oriented scientific programming , 1997 .

[26]  Jim Kerrigan Migrating to Fortran 90 , 1993 .

[27]  John E. Akin,et al.  Object-oriented Fortran 90 P-adaptive finite element method , 2000 .

[28]  Ricardo O. Foschi,et al.  Object-oriented finite element analysis , 1990 .

[29]  Even-André Karlsson,et al.  Object-Oriented Development With and For Reuse , 1991 .

[30]  Tsvi Bar-David Object-oriented design for C++ , 1992 .