DYNAMO III/F+(ID:6614/dyn011)


In 1983, Mr. Hunter and Todd Sjoblom of Pugh-Roberts Associates, Inc. developed DYNAMO III/F+, to incorporate as many of the DYNAMO HI/370 features as possible in a FORTRAN-based DYNAMO.



Related languages
DYNAMO HI/370 => DYNAMO III/F+   Port

References:
  • PUGH, Alexander L., III: "DYNAMO II user's manual". Cambridge, Mass.; London: MIT Press 1970. X,73 S. ISBN 0-262-66012-1 view details Extract: PREFACE
    PREFACE

    DYNAMO is a computer program for building and running "continuous" simulation models (models which can be described by a set of differential equations).  It was developed by the Industrial Dynamics Group at the Massachusetts Institute of Technology for simulating dynamic feedback models of business, economic, and social systems, but nothing in its design precludes its use for any continuous system.
    DYNAMO has been designed for the person who is problem-oriented rather than computer-oriented.  It makes available easy-to-use computing facilities so that you can focus your attention on building a useful model, undistracted by complex computer requirements.
    DYNAMO'S requirements with respect to the order in which statements appear are trivial, contributing greatly to the ease of using it.  DYNAMO figures out which variables must be computed first, and will even initialize many variables for you.
    DYNAMO thoroughly checks models for errors before trying to run them.  Run-time errors as well as compiler errors are reported in English rather than by number, so that most of the time you will not need the manual to understand an error message.  You will never be left with just a system "dump" to describe an error.
    The mechanics of running DYNAMO are very simple.  Both tabulated and plotted output can be specified easily.  Even the results of different runs can be compared directly (displayed on a single graph or tabulated listing).  This is especially useful for evaluating a policy or parameter change.
    The DYNAMO language includes time subscripts that enable you to comprehend easily how the calculations are made.  These subscripts describe a very simple integration scheme (rectangular or Euler's method), which is also very efficient when great accuracy is not required.  As you gain confidence that DYNAMO isn't doing anything you don't know about, you will be free to concentrate on designing your model and ignore the computational details.  (For the mathematically-minded, DYNAMO IV offers the option of using a third-order Runge-Kutta integration method.)
    Experienced users should note that DYNAMO offers two facilities to simplify the construction of large models.  User-defined functions, or macros, can be written in standard DYNAMO statements with DYNAMO II, III, and IV.  (FORTRAN, or other language, programs can be linked to DYNAMO models via the External Function Facility.)  DYNAMO III and IV also offer the use of arrays, to simplify the modeling of repeated structures.
    Extract: BRIEF HISTORY OF DYNAMO
    BRIEF HISTORY OF DYNAMO
    The history of DYNAMO begins with a program called SIMPLE (Simulation of Industrial Management Problems with Lots of Equations), written by Richard K. Bennett in the spring of 1958 for the IBM 704 Computer.  SIMPLE contained most of the basic features of DYNAMO, including the plotting routine (written by Edward B. Roberts); but the model specifications had to be stated in a rather primitive form, and very few checks were performed on these specifications.  These shortcomings were corrected by DYNAMO (DYNAmic MOdels), written by Phyllis Fox (Mrs. George Sternlieb) and Alexander L. Pugh, III, and completed in the spring of 1959.  Mr. Roberts
    modified and improved the plotting routine, and Grace Duren and David J. Howard assisted with other phases of the program.
    The program was rewritten the following summer by the same team.  Following this effort the maintenance of DYNAMO became the responsibility of Mr. Pugh.  When M.I.T. replaced the 704 with the 709, DYNAMO was converted to run on the new machine. In 1962, Jay W. Forrester of M.I.T. suggested a relaxation of the requirements on initial values, which was implemented. When C.T.S.S. (Compatible Time Sharing System) became generally available, DYNAMO was modified to operate under it.  This facility made it possible to create, debug, and run a model in a matter of hours, the output returning directly back to the console.
    In 1965 it was decided to rewrite DYNAMO.  Although the input language gave the appearance of actual equations, DYNAMO I was basically a macro expansion program.  Simple algorithms for algebraic translation were now well understood and could be utilized in DYNAMO II to relax the restrictions on equation formulation.  Furthermore, higher-level languages had advanced to the point where they could be used as source languages to simplify the chore of rewriting the compiler. Finally, the third generation of hardware was rapidly replacing the equipment for which DYNAMO was written, and some sort of rewrite would be required before long.
    AED (Algol Extended for Design) was chosen as the source language because it appeared to be one of the two or three languages then in existence having the power to do the job and because both the language and its authors were available at M.I.T.  The choice proved to be wise.  AED did have the necessary power; only about 2 percent of the compiler is written in assembly language.  The availability of AED on both machines greatly simplified the conversion from the 7094 (CTSS) to the. S/360.  (Donald A. Belfer assisted in this conversion.)
    DYNAMO II was designed to accept models written for DYNAMO I with few changes. Most models will run with no changes or perhaps one, although models that contain boxcars now require DYNAMO III. The meaning of the asterisk was changed to multiplication as in most algebraic languages. (Back-to-back parentheses continue to imply multiplication.) Error checking was extensive in DYNAMO I; error recovery has been the object in DYNAMO II. Only a few errors preclude the running of a model.
    In response to the demand for DYNAMO on computers other than the IBM 360-370 computers, Richard Wright and Mr. Pugh of the consulting firm of Pugh-Roberts Associates, Inc., developed a FORTRAN-based version in 1971. DYNAMO II/F translates a model into FORTRAN and supports its execution with the standard DYNAMO functions and output routines. As this version is entirely written in FORTRAN, the only hardware requirement for its installation is a computer that supports a version of FORTRAN relatively close to the full American National Standard.
    Interactive (time sharing) versions of DYNAMO have been popular since the advent of the first CTSS version.  DYNAMO II was first checked out as an interactive version, and the first S/360 DYNAMO operated under CP67/CMS.  In 1971, the interactive version was converted to the RAX operating system by Pugh-Roberts Associates and Boston University, and in 1972 this version was tuned to the TSO system.  An interactive version of DYNAMO II/F was developed in 1972 by Mr. Wright.
    An interactive version of DYNAMO suggests the possibility of interaction during the simulation.  The user might examine the state of the system and decide what action he feels is appropriate.  Such a version of DYNAMO has been developed by Mr. Pugh and is referred to as Gaming DYNAMO, as gaming is one of the obvious uses for such a system.  A game is constructed from all the usual DYNAMO equation types plus one additional type ? Decision.  Decisions are those variables that can be changed during interaction with the game.  The current Gaming DYNAMO was developed by D. Ross Hunter of Pugh-Roberts Associates, Inc. as an extension to DYNAMO/F.
    In response to the growing number of models containing sectors repeated several times to represent reality in a more disaggregate manner, an array-handling capability was added to DYNAMO by William A. Shaffer and Mr. Pugh of Pugh-Roberts Associates.  This version, designated DYNAMO III, was designed to be consistent with FORTRAN'S and implemented within the framework of DYNAMO II/F.  Through the vehicle of implicit DO loops, equations involving arrays can occur in any order, retaining DYNAMO'S minimal requirements on the order of model statements.
    The growing size of DYNAMO III models, in conjunction with the size limitation of IBM's FORTRANs, led Mr. Pugh to develop during 1976 a DYNAMO III compiler, specifically for IBM computers, that will compile huge models rapidly.  This version is referred to as DYNAMO HI/370.  Between 1976 and 1983, Mr. Pugh made numerous improvements to DYNAMO HI/370, most notably, the addition of the PRESERVE and RESUME feature.  In 1983, Mr. Hunter and Todd Sjoblom of Pugh-Roberts Associates, Inc. developed DYNAMO III/F+, to incorporate as many of the DYNAMO HI/370 features as possible in a FORTRAN-based DYNAMO.
    To support schools and colleges that were teaching System Dynamics, but only had access to mini-computers, Dr. Shaffer developed Mini-DYNAMO for Pugh-Roberts Associates, Inc. in 1976.  Unlike earlier DYNAMOs, Mini-DYNAMO interpreted rather than executed the code it generated so that runtime errors, such as division by zero, could be reported in a manner the user could easily understand.  Recently, microcomputers have become readily affordable both by schools and by individuals. To make DYNAMO available on such machines, Jay P. Werb of Pugh-Roberts Associates, Inc., converted Mini-DYNAMO to run on the Apple II computer in 1981. (While the language of Mini-and Micro-DYNAMO are upward compatible with DYNAMO II, III, and IV, the reference manuals for those programs are the Mini-
    DYNAMO user's Guide, William A. Shaffer, 1977, published by Pugh-Roberts Associates, Inc., and User Guide and Reference Manual for Micro-DYNAMO, Pugh-Roberts Associates, Inc., 1982, published by Addison-Wesley.)
    Documenting any computer program has always been tedious. To simplify the mechanical chore of merging variable definitions following the equations where they are used, Mr. Pugh wrote the Documentor in 1960.  Once DYNAMO had been converted to the S/360 he rewrote it in AED.  In 1976, Mr. Hunter rewrote it again and improved it.  This time it was written in FORTRAN so that it could be run on practically any machine supporting DYNAMO.  Mr. Hunter also wrote chapter 7 of this book, the DOCUMENTOR/F user's Manual.
    The early development of DYNAMO was supported financially by the Ford Foundation, International Business Machines, Project MAC at the Massachusetts Institute of Technology, and Humble Oil and Refining Co. Extract: BRIEF HISTORY OF DYNAMO
    BRIEF HISTORY OF DYNAMO
    The history of DYNAMO begins with a program called SIMPLE (Simulation of Industrial Management Problems with Lots of Equations), written by Richard K. Bennett in the spring of 1958 for the IBM 704 Computer.  SIMPLE contained most of the basic features of DYNAMO, including the plotting routine (written by Edward B. Roberts); but the model specifications had to be stated in a rather primitive form, and very few checks were performed on these specifications.  These shortcomings were corrected by DYNAMO (DYNAmic MOdels), written by Phyllis Fox (Mrs. George Sternlieb) and Alexander L. Pugh, III, and completed in the spring of 1959.  Mr. Roberts
    modified and improved the plotting routine, and Grace Duren and David J. Howard assisted with other phases of the program.
    The program was rewritten the following summer by the same team.  Following this effort the maintenance of DYNAMO became the responsibility of Mr. Pugh.  When M.I.T. replaced the 704 with the 709, DYNAMO was converted to run on the new machine. In 1962, Jay W. Forrester of M.I.T. suggested a relaxation of the requirements on initial values, which was implemented. When C.T.S.S. (Compatible Time Sharing System) became generally available, DYNAMO was modified to operate under it.  This facility made it possible to create, debug, and run a model in a matter of hours, the output returning directly back to the console.
    In 1965 it was decided to rewrite DYNAMO.  Although the input language gave the appearance of actual equations, DYNAMO I was basically a macro expansion program.  Simple algorithms for algebraic translation were now well understood and could be utilized in DYNAMO II to relax the restrictions on equation formulation.  Furthermore, higher-level languages had advanced to the point where they could be used as source languages to simplify the chore of rewriting the compiler. Finally, the third generation of hardware was rapidly replacing the equipment for which DYNAMO was written, and some sort of rewrite would be required before long.
    AED (Algol Extended for Design) was chosen as the source language because it appeared to be one of the two or three languages then in existence having the power to do the job and because both the language and its authors were available at M.I.T.  The choice proved to be wise.  AED did have the necessary power; only about 2 percent of the compiler is written in assembly language.  The availability of AED on both machines greatly simplified the conversion from the 7094 (CTSS) to the. S/360.  (Donald A. Belfer assisted in this conversion.)
    DYNAMO II was designed to accept models written for DYNAMO I with few changes. Most models will run with no changes or perhaps one, although models that contain boxcars now require DYNAMO III. The meaning of the asterisk was changed to multiplication as in most algebraic languages. (Back-to-back parentheses continue to imply multiplication.) Error checking was extensive in DYNAMO I; error recovery has been the object in DYNAMO II. Only a few errors preclude the running of a model.
    In response to the demand for DYNAMO on computers other than the IBM 360-370 computers, Richard Wright and Mr. Pugh of the consulting firm of Pugh-Roberts Associates, Inc., developed a FORTRAN-based version in 1971. DYNAMO II/F translates a model into FORTRAN and supports its execution with the standard DYNAMO functions and output routines. As this version is entirely written in FORTRAN, the only hardware requirement for its installation is a computer that supports a version of FORTRAN relatively close to the full American National Standard.
    Interactive (time sharing) versions of DYNAMO have been popular since the advent of the first CTSS version.  DYNAMO II was first checked out as an interactive version, and the first S/360 DYNAMO operated under CP67/CMS.  In 1971, the interactive version was converted to the RAX operating system by Pugh-Roberts Associates and Boston University, and in 1972 this version was tuned to the TSO system.  An interactive version of DYNAMO II/F was developed in 1972 by Mr. Wright.
    An interactive version of DYNAMO suggests the possibility of interaction during the simulation.  The user might examine the state of the system and decide what action he feels is appropriate.  Such a version of DYNAMO has been developed by Mr. Pugh and is referred to as Gaming DYNAMO, as gaming is one of the obvious uses for such a system.  A game is constructed from all the usual DYNAMO equation types plus one additional type ? Decision.  Decisions are those variables that can be changed during interaction with the game.  The current Gaming DYNAMO was developed by D. Ross Hunter of Pugh-Roberts Associates, Inc. as an extension to DYNAMO/F.
    In response to the growing number of models containing sectors repeated several times to represent reality in a more disaggregate manner, an array-handling capability was added to DYNAMO by William A. Shaffer and Mr. Pugh of Pugh-Roberts Associates.  This version, designated DYNAMO III, was designed to be consistent with FORTRAN'S and implemented within the framework of DYNAMO II/F.  Through the vehicle of implicit DO loops, equations involving arrays can occur in any order, retaining DYNAMO'S minimal requirements on the order of model statements.
    The growing size of DYNAMO III models, in conjunction with the size limitation of IBM's FORTRANs, led Mr. Pugh to develop during 1976 a DYNAMO III compiler, specifically for IBM computers, that will compile huge models rapidly.  This version is referred to as DYNAMO HI/370.  Between 1976 and 1983, Mr. Pugh made numerous improvements to DYNAMO HI/370, most notably, the addition of the PRESERVE and RESUME feature.  In 1983, Mr. Hunter and Todd Sjoblom of Pugh-Roberts Associates, Inc. developed DYNAMO III/F+, to incorporate as many of the DYNAMO HI/370 features as possible in a FORTRAN-based DYNAMO.
    To support schools and colleges that were teaching System Dynamics, but only had access to mini-computers, Dr. Shaffer developed Mini-DYNAMO for Pugh-Roberts Associates, Inc. in 1976.  Unlike earlier DYNAMOs, Mini-DYNAMO interpreted rather than executed the code it generated so that runtime errors, such as division by zero, could be reported in a manner the user could easily understand.  Recently, microcomputers have become readily affordable both by schools and by individuals. To make DYNAMO available on such machines, Jay P. Werb of Pugh-Roberts Associates, Inc., converted Mini-DYNAMO to run on the Apple II computer in 1981. (While the language of Mini-and Micro-DYNAMO are upward compatible with DYNAMO II, III, and IV, the reference manuals for those programs are the Mini-
    DYNAMO user's Guide, William A. Shaffer, 1977, published by Pugh-Roberts Associates, Inc., and User Guide and Reference Manual for Micro-DYNAMO, Pugh-Roberts Associates, Inc., 1982, published by Addison-Wesley.)
    Documenting any computer program has always been tedious. To simplify the mechanical chore of merging variable definitions following the equations where they are used, Mr. Pugh wrote the Documentor in 1960.  Once DYNAMO had been converted to the S/360 he rewrote it in AED.  In 1976, Mr. Hunter rewrote it again and improved it.  This time it was written in FORTRAN so that it could be run on practically any machine supporting DYNAMO.  Mr. Hunter also wrote chapter 7 of this book, the DOCUMENTOR/F user's Manual.
    The early development of DYNAMO was supported financially by the Ford Foundation, International Business Machines, Project MAC at the Massachusetts Institute of Technology, and Humble Oil and Refining Co.