Object-oriented design patterns in Fortran 90/95: mazev1, mazev2 and mazev3

Viktor K. Decyk*, Henry J. Gardner

*Corresponding author for this work

    Research output: Contribution to journalArticlepeer-review

    11 Citations (Scopus)

    Abstract

    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.

    Original languageEnglish
    Pages (from-to)611-620
    Number of pages10
    JournalComputer Physics Communications
    Volume178
    Issue number8
    DOIs
    Publication statusPublished - 15 Apr 2008

    Fingerprint

    Dive into the research topics of 'Object-oriented design patterns in Fortran 90/95: mazev1, mazev2 and mazev3'. Together they form a unique fingerprint.

    Cite this