New Features in Release 7.0 of GEMPACK

The most important new features in Release 7.0 are:

Below is a brief description of the new features in Release 7.0 (October 2000) of GEMPACK which were not available in Release 6.0 (October 1999) of GEMPACK.

1. Subtotals can be produced by GEMSIM and TABLO-generated programs.

Subtotal statements in Command files produce subtotal solutions on the Solution file. The Command file syntax is the same as for subtotals produced by SAGEM.
This allows you to decompose the results of a simulation into the effects of different groups of shocks.
You can download a paper describing these decomposition techniques and illustrating them in the context of a GTAP application.

2. AnalyseGE is a new Windows program for analysing simulation results.

AnalyseGE is aimed at making it easy for users to calculate expressions involving Coefficients and Linear variables such as those occurring in linearised equations. AnalyseGE obtains the values of variables from a Solution file and the values of Coefficients from the associated SLC file (see point 3 below). Once the expression is calculated it is immediately available in a ViewHAR-style window. Click here to find out more about AnalyseGE or to download it.

3. Solution Coefficients File contains values of Coefficients.

When TABLO-generated programs or GEMSIM carry out a simulation, by default they produce a new output file called a Solutions Coefficients file, with suffix .SLC which contains the pre-simulation value of all Coefficients defined in the TABLO Input file. This .SLC file is a Header Array file. The long names on each array indicate the name of the Coefficient whose values are held at each header.

4. The RunDynam windows program is available for recursive dynamic models such as MONASH and the dynamic version of GTAP.

RunDynam (and various model-specific versions such as RunMONASH and RunGDYN) are available for recursive dynamic models. These interfaces are designed to remove much of the computing complexity in working with forecasts and policy simulations which run over several consecutive years. RunDynam is not supplied with GEMPACK but can be purchased separately.

5. Systematic Sensitivity Analysis can be carried out using RunGEM.

The version of RunGEM first distributed with Release 6.0-001 of GEMPACK makes it easy for users to carry out systematic sensitivity analysis with any models implemented and solved using GEMPACK. You can compute how sensitive your simulation results are to changes in the parameters or to changes in the shocks.

6. Set Mappings have been extended in various ways.

Various improvements make setting up mappings easier. You can now read part of a set mapping BY_ELEMENTS. Mapping values can be given using the values in other mappings using a FORMULA(BY_ELEMENTS) and an index-expression.

Mappings can be written as character data using a WRITE(BY_ELEMENTS) statement.

It is now possible to insist that a set mapping is onto, which means that every element in the codomain is mapped to by at least one element of the domain set.

ViewHAR allows you to save set mappings as Header Array files or text files or to paste them into spreadsheets or TABLO Input files.

7. Shocks can be read from Header Array files.

The values of shocks can now be read from a header on a Header Array file. [Previously, they could only be read from a text file.] The Command file syntax is as for text files except that you must add "header <header>" at the end. An example is:

Shock x1 = select from file xx.har header "ABCD";

This can sometimes be faster than reading shocks from a text file and you can have more than one shock on the same file, held at different headers.

Program SEENV can be used to assist you to write these shock statements.

8. Header Array files can be converted to Data Bases using SEEHAR and option SQL.

A new option SQL in SEEHAR enables you to produce SQL output which makes it relatively easy to add the data in Header Array files file to most databases.

9. Long file names and spaces in file names are allowed on Windows PCs using the Lahey LF90 or LF95 compilers.

This means that you are no longer restricted to names of length 8 or suffixes of length 3, and you can include spaces in file and directory names, if you are working with LF90 or LF95 on a Windows PC. [This also applies to the Executable-image and Demonstration versions of GEMPACK.]

10. The LF95 Fortran compiler is now supported on Windows PCs.

LF95 (Lahey Fortran 95) is an alternative to LF90. See GPD-6 and chapter 13 of GPD-3 for more details.

This has consequences for sharing Header Array files between different users since the binary files (including Header Array files) produced by LF95 are not the same as those produced by LF90 or F77L3. However GEMPACK programs have been written so that you will usually not need to be concerned about the differences, and we supply programs for converting between the two types of files.

11. We expect to phase out support for Fortran 77 compilers in the next release.

Some of the new features in GEMPACK are only available with a Fortran 90 compiler. Also Fortran 90 versions of GEMPACK are much easier to use since they do their own memory management, which means that users to not have to increase program parameters.

We strongly recommend that you upgrade to Fortran 90 if you are still using a Fortran 77 compiler. This applies to all machines including Windows PCs and Unix machines. In particular, on Windows PCs, we strongly recommend that you upgrade from F77L3 to either LF90 or LF95.

The basic version of LF95, which is called LF95 Express, is suitable for use with source-code GEMPACK. At the time of writing, this costs only approximately $US200, which provides a relatively inexpensive way of upgrading for F77L3 users.

12. We are no longer supporting Windows 3.1.

The Windows programs (including WinGEM, GemEdit, RunGEM, ViewHAR, ViewSOL, TABmate and AnalyseGE) provided with Release 7.0 will not run under Windows 3.1. They are designed for the later Windows operating systems including Windows 95, 98, NT and 2000.

13. There is improved error trapping for invalid powers and log functions, and also for other arithmetic problems including overflow.

For invalid powers or log functions, error messages supply details of the values and of the operation. For example, the error message may say that you are trying to raise a negative integer to a negative power, or that you are trying to take the logarithm of a negative number.

If arithmetic overflow occurs, the software can usually tell you where it occurred (for example, in a certain formula or while extrapolating the results for a certain component of a named variable).

Previously these errors were trapped by the operating system rather than by GEMPACK.

14. Range checking can now be done in some circumstances even if not you are not using automatic accuracy.

New Command file statements are:

range test updated values = updated|extraploated|both|no|warn ;
range test initial values = yes|no|warn ;

15. Improvements have been made to ViewHAR, ViewSOL and TABmate .

These 3 programs have been made more user-friendly in a number of small ways; for example, printing is more convenient. Other improvements include:

ViewHAR: more support for working with sets and mappings, including a built-in data aggregation facility. You can sort across the rows of an array.

ViewSOL: now indicates if a variable is of ordinary change type (as opposed to percentage change). You can view the verbal description associated with each solution. You can make charts of results and open several Solution files side by side.

TABmate: The Cross-Reference or Gloss feature now has two modes:

There is special colouring for CMF files. There are tools to assist in backing up or deleting files.

16. New TABLO statement TRANSFER and new Command statement XTRANSFER.

When a TABLO Input file has instructions to read data from a Header Array file, there may be extra data on the file which is not read when the TABLO-generated program or GEMSIM runs. Sometimes you may want some or all of this extra data to be transferred to the new or updated Header Array files written. A new TABLO statement TRANSFER makes this easy to carry out.

17. New command-line options -los and -lic are available.

The command-line option -los <log_filename>
is an alternative to -lon. In each case, output goes only to this log file. The difference is that
with -lon there is a little terminal output at the start and end of the run, whereas with -los there is none.

The command-line option -lic <licence_filename>
can be used to specify the name of the GEMPACK licence file.

18. command-line options are now available on most Unix machines.

The command-line options including -cmf, -log, -sti which previously were only available on PCs are now available on most Unix machines.

19. TABLO Input file and TABLO STI file are stored on Solution file.

In Release 6.0, the TABLO Input file was stored on the Auxiliary Table (.AXT or .GST) file. The TABLO Input file is now transferred from the Auxiliary Table file (providing it is there) to the Solution file when you carry out a simulation using GEMSIM or a TABLO-generated program. Similarly, if you use a Stored-input file to run TABLO, this Stored-input file is now transferred to the Auxiliary Table file and is also transferred to the Solution file when you run a simulation.

20. Compatibility of various pairs of files is now checked.

When TABLO produces a TABLO-generated program, it produces .AXS, .AXT and .MIN files. Dates put on the .FOR, AXS and AXT files have been used for several versions of GEMPACK to detect when these were not created at the same time. The same date is now put on the .MIN file. Programs such as RunGEM now use this to detect if the .MIN file was not created at the same time as the AXT (or other) files. Similarly for the .GSS, .GST and .MIN files produced when TABLO produces output for GEMSIM.
The same time and date stamp is put on the Solution and .SLC files produced in a single run of a TABLO-generated program or GEMSIM. The program AnalyseGE uses these to alert the user if the files were not produced at the same time.

SLTOHT puts the time and date stamp from the Solution file onto the Header Array file it creates. Programs such as ViewSOL use this to decide if an existing .SOL file comes from the specified Solution file.

21. List of exogenous/endogenous variables is shown when closure is invalid.

If the closure specified on a Command file is not valid because of an incorrect number of exogenous variables, the program gives a list of the exogenous variables and a list of the endogenous ones (each in Command file syntax) before exiting with an error. Users may find these lists helpful in identifying variables incorrectly specified as exogenous or endogenous.

22. The EQUATION(NONE) statement is no longer required with Fortran 90 TABLO.

If you are using a version of TABLO which has been compiled with a Fortran 90 compiler (this includes the Executable-Image version of GEMPACK), you do not need to include the statement


in your TABLO Input file. TABLO infers this after it has done the preliminary count of the numbers of various statements (including the number of equations). [However, this statement is still accepted by Fortran 90 TABLOs.]

23. Target shocks are allowed for recursive dynamic models.

This applies to recursive dynamic models such as MONASH and, in particular, to the RunDynam windows software. In some policy simulations, you may have a target change in a variable which was endogenous in the base case but exogenous in the policy simulation. Previously you could not set the shock for the policy run until you had seen the endogenous results from the base case (since the target could only be met by giving just the right ashock value so that the combined result of the inferred shock from the base case and the policy ashock value is the desired target). Now you can use a "tshock" statement to hit the target.

24. Three new functions RANDOM (for generating random numbers), NORMAL and CUMNORMAL (relating to the normal probability distribution) are now available.

25. If you use Newton's method, information about the size of the Newton correction terms is available even if you are not carrying out a simulation. This enables you to check easily how well the levels equations of your model are satisfied in the initial data base.