User Tools

Site Tools


howtos:toolcoding:subroutinepackage

This is an old revision of the document!


Subroutine Package

From here you can download a set of sub-routines that can be put in your Vx/views directory. They can then then be loaded using the informants window and once in your model any view can call the sub routines.

This is the subroutine package that should be unzipped in your model's Vx/views subroutines.zip

Setup of installed files

Once you have extracted the files there are 3 files you must copy and adjust for your current model/version

getModelVersion_CopyAndCustomize.t

  • This file is used to figure out what the current version of your model is
  • copy this file and re-name it to: getModelVersion.t
  • Edit the file and adjust the version number

getProjectNames.t

  • This file is used to manage the names of various projects which might be running out of this model
  • For now the only thing it is used for is makeing export directories for each project and is related to the getProjectExportPath.t subroutine
  • copy this file and re-name it to: getProjectNames.t
  • edit the file and adjust the project names

informs_CopyAndCustomize.samm

  • This file is used to load the sub-routines into a model
  • copy this file and rename it to: informs.samm
  • edit the file and adjust the path to the subroutines directory in the “setpath” line of the file

Loading subroutines

Sub-routines are only available to views running in SAMM once the are loaded into the model family. Here's how to do that.

  • Set your file path to where the subroutines live, something like:
    • /models/myModel/Vx/views/subroutines
  • From the Windows menu open the informants window
  • Right click and say load, note it will default to whatever you set in your file path followed by informs.samm which is the file you edited above.

Now you are ready to write views that use subroutines. See below info about the examples that are a part of the sub routine bundle you have downloaded and extracted.

Examples

In that new folder you will find an examples sub folder with some example views:

levelVarProjection.t

  • This type of view projects a variable which holds variables which are not share variables, like rates or efficiency levels etc
  • It gives several different ways to project this variable through a menu command

shareVarProjection.t

  • This type of view projects a share variable ensuring that it sums to 1 over some dimension even after projection
  • It gives several different ways to project this variable through a menu command

usingGetModelVersion.t

  • A sub routine that gets the model version so it can be used in display or creating paths etc
  • The advantage is you can write views that are version independant
  • It works by consulting the following file to get the version so this file must be updated each time a new version is made
    • getModelVersion.t
howtos/toolcoding/subroutinepackage.1328738133.txt.gz · Last modified: 2012/02/08 21:55 by shona.weldon