TY - JOUR
T1 - Object-oriented design patterns in Fortran 90/95
T2 - mazev1, mazev2 and mazev3
AU - Decyk, Viktor K.
AU - Gardner, Henry J.
PY - 2008/4/15
Y1 - 2008/4/15
N2 - This paper discusses the concept, application, and usefulness of software design patterns for scientific programming in Fortran 90/95. An example from the discipline of object-oriented design patterns, that of a game based on navigation through a maze, is used to describe how some important patterns can be implemented in Fortran 90/95 and how the progressive introduction of design patterns can usefully restructure Fortran software as it evolves. This example is complemented by a discussion of how design patterns have been used in a real-life simulation of Particle-in-Cell plasma physics. The following patterns are mentioned in this paper: Factory, Strategy, Template, Abstract Factory and Facade. Program summary: Program title: mazev1, mazev2, mazev3. Catalogue identifier: AEAI_v1_0. Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEAI_v1_0.html. Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland. Licensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.html. No. of lines in distributed program, including test data, etc.: 1958. No. of bytes in distributed program, including test data, etc.: 17 100. Distribution format: tar.gz. Programming language: Fortran 95. Computer: PC/Mac. Operating system: Unix/Linux/Mac (FreeBSD)/Windows (Cygwin). RAM: These are interactive programs with small (KB) memory requirements. Classification: 6.5, 20. Nature of problem: A sequence of programs which demonstrate the use of object oriented design patterns for the restructuring of Fortran 90/95 software. The programs implement a simple maze game similar to that described in [1]. Solution method: Restructuring uses versions of the Template, Strategy and Factory design patterns. Running time: Interactive. References: [1] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object Oriented Software, Addison-Wesley, 1995, ISBN 0201633612.
AB - This paper discusses the concept, application, and usefulness of software design patterns for scientific programming in Fortran 90/95. An example from the discipline of object-oriented design patterns, that of a game based on navigation through a maze, is used to describe how some important patterns can be implemented in Fortran 90/95 and how the progressive introduction of design patterns can usefully restructure Fortran software as it evolves. This example is complemented by a discussion of how design patterns have been used in a real-life simulation of Particle-in-Cell plasma physics. The following patterns are mentioned in this paper: Factory, Strategy, Template, Abstract Factory and Facade. Program summary: Program title: mazev1, mazev2, mazev3. Catalogue identifier: AEAI_v1_0. Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AEAI_v1_0.html. Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland. Licensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.html. No. of lines in distributed program, including test data, etc.: 1958. No. of bytes in distributed program, including test data, etc.: 17 100. Distribution format: tar.gz. Programming language: Fortran 95. Computer: PC/Mac. Operating system: Unix/Linux/Mac (FreeBSD)/Windows (Cygwin). RAM: These are interactive programs with small (KB) memory requirements. Classification: 6.5, 20. Nature of problem: A sequence of programs which demonstrate the use of object oriented design patterns for the restructuring of Fortran 90/95 software. The programs implement a simple maze game similar to that described in [1]. Solution method: Restructuring uses versions of the Template, Strategy and Factory design patterns. Running time: Interactive. References: [1] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object Oriented Software, Addison-Wesley, 1995, ISBN 0201633612.
KW - Design patterns
KW - Fortran
KW - Object-oriented
UR - http://www.scopus.com/inward/record.url?scp=40849131052&partnerID=8YFLogxK
U2 - 10.1016/j.cpc.2007.11.013
DO - 10.1016/j.cpc.2007.11.013
M3 - Article
SN - 0010-4655
VL - 178
SP - 611
EP - 620
JO - Computer Physics Communications
JF - Computer Physics Communications
IS - 8
ER -