Below is a brief description of the new features in Release 8.0 (October 2002) of GEMPACK which were not available in Release
7.0 (October 2000) of GEMPACK.
Main New Features
Complementarities (for example, quotas) can be modelled explicitly and easily via the new
COMPLEMENTARITY statement in TABLO Input files. This is the major new feature in Release 8.0. There are several detailed examples you can work
through in chapter 16 of GPD-3. These include import and tariff-rate quotas with Miniature ORANI, import, export and tariff-rate quotas with
GTAP. The methods used are described in the CoPS Working Paper No. IP-78 "A Practical Method for Explicitly Modeling Quotas and Other
Complementarities" by W. Jill Harrison, Mark Horridge, K.R. Pearson and Glyn Wittwer. This paper is available
electronically.
GEMPACK source code is now limited to Fortran 90 compilers. Fortran 77 compilers (including Lahey F77L3) are no
longer supported. In particular, Source-code users on Windows PCs must use either LF90 or LF95.
We have made significant changes to the documentation. In particular, we have
(i) attempted to provide a more clearly defined path for new users,
(ii) provided more hands-on examples for new users, mainly in GPD-1, and
(iii) provided more substantial examples for experienced users, mainly in GPD-2, GPD-3 and GPD-4.
TABLO Input files
Condensation actions can be included on the TABLO Input file by using the new TABLO statements OMIT, SUBSTITUTE and BACKSOLVE.
Originally condensation actions were only given at the Condense stage of TABLO, either interactively or on a Stored-input file. With these new
TABLO statements, condensation actions can be given either in the new way on the TABLO Input file, or in the original way at the Condense stage.
These new TABLO condensation statements save having to look after a separate Stored-input file for condensation and help you to remember to
condense large models.
Elements from run-time sets (that is, when element names are read at run-time) can be used in TABLO Input files
(for example, in Formulas and Equations).
PROD, MAXS and MINS operators can be used in TABLO Input files for products
and finding maximum or minimum values over a set. The syntax is similar to that for SUM. Conditions are allowed.
New functions ROUND, TRUNC0 and TRUNCB for rounding and truncating real numbers to
integers. ROUND rounds a real to the nearest integer. TRUNC0 truncates a real to produce the nearest integer towards zero. TRUNCB
truncates a real to produce the first integer below.
There have been some additions to SET syntax. As well as the usual SET Union there is now a disjoint set
union, and sets can be set equal to other sets.
Set products (sometimes called Cartesian products) are allowed via a statement of the form
SET <set1> = <set2> x <set3> ;
The elements of set1 are of the form xx_yyy where xx ranges over all elements of set2 and yyy ranges over all elements of set3. [Essentially set1
consists of all pairs (xx,yyy).]
Projection mappings from a set product to one of the sets making the product are allowed via statements of the form
MAPPING (PROJECT) <map-name> from set1 to set2 ;
where set1 has been defined earlier to be the product of set2 with another set. This MAPPING statement declares the mapping and sets its values.
New qualifiers LINEAR_NAME= and LINEAR_VAR= can be used when you are declaring a levels variable. These make
it easier to add a levels section to a model written with linear variables and equations.
You can ask TABLO to automatically add HOMOTOPY terms to all or selected levels equations.
(a) This can assist in obtaining solutions to levels equations for which the natural data is not a solution. In particular, this can be used to
produce (for example, from data for one year) a non-steady state intertemporal data set which satisfies all the equations of an
intertemporal model, including the intertemporal ones (which probably would not be satisfied if the data for this one year is
replicated to all years).
(b) Alternatively this can be used to find (based on an initial guess) an accurate solution to a system of levels equations.
This methodology can be used when only some of the equations of the model are written as levels equations in the TAB file. [There may also be
many linear equations written in the TAB file.]
Running TABLO
You can use levels names for variables during Condensation. If you are substituting out, backsolving for, or omitting a
variable which is declared as a levels variables, you can use either the levels name or the associated linear name.
Changes to TABLO-generated programs.
TABLO-generated programs can be written in a slightly different way using new TABLO Code option FC5. The resulting code is
compiled more quickly by the Lahey Fortran compiler LF95. For example, MMRF-GREEN compiles in about 10 minutes
instead of an hour or more.
Command files for TABLO-generated Programs and GEMSIM
You can use levels names for variables in Command files for GEMSIM and TABLO-generated programs instead of the associated
linear variable names. For example, in SJLB.CMF you could write
exogenous XFAC ; ! instead of "exogenous p_XFAC ;"
shock XFAC("labor" = 10 ; ! instead of "shock p_XFAC("labor") = 10 ;"
You can use levels variable names when you are specifying the closure, the shocks, subtotals, cumulatively-retained endogenous and XAC-retained
variables. [However, you still cannot use levels variable names in Command files for SAGEM.]
In certain circumstances you can specify the desired post-simulation levels value of a variable directly on a Command file
via the new
final_level <variable> = … ;
statement. Such statements are alternatives to the familiar shock statement. For example, in SJLB.CMF you could put
final_level XFAC("labor") = 4.4 ; ! indicates post-sim levels value
instead of
shock p_XFAC("labor") = 10; ! indicates percentage change
There are two new forms of shock statement change <variable> = ... ; and
percent_change <variable> = ... ;
which you can use if you know the original levels value of a variable. This can make it possible to specify a percentage change shock to a change
variable via the "percent_change … ;"
statement or a change shock to a percentage-change variable via the "change …. ;" statement. [These are alternatives
to the usual shock statements.]
Lines of Command files can now be up to 500 characters long.
Simulations for TABLO-generated Programs and GEMSIM
Overall Accuracy Summary when using more than one subinterval. If you use more than one subinterval, the Log file contains an
Extraplation Accuracy Summary for the variables in each of the subintervals. The Overall Accuracy Summary combines these subinterval summaries,
and shows an Extrapolation Accuracy Summary for the whole result.
If a closure specified on a Command file is not valid, GEMSIM or the TABLO-generated program echoes the
lists of exogenous and endogenous variables. These variables are now grouped according to argument type. [For example, all scalar
variables are first. Then all variables with a single argument ranging over the set COM. And so on.] The number of condensed equations with the
same argument type is given for each type. This may assist in identifying and fixing the closure problem.
Changes to TABLO-generated programs.
On Windows PCs there is no need to use "Auxiliary files = … ;" statements in Command files to help them to locate their Auxiliary
files.
When you encounter a structurally singular LHS Matrix during the first step of a simulation, the software offers to
solve a modified system of equations. The solution to these modified equations may assist you (using ViewSOL and/or AnalyseGE) in
identifying the cause of the singularity.
If you are using automatic accuracy and the Left Hand Side Matrix is singular in one step of a subinterval,
the subinterval is redone with a shorter length. This may work around a singularity along the path from the pre-simulation values of the exogenous
values to the post-simulation values.
When you are solving using automatic accuracy, it can be difficult to tell during the run how far the simulation has
progressed. The programs produce a new output file which you can examine to check on progress.
At present TABLO gives no warning about possibly uninitialised coefficients if two or more partial initialisations are made.
By default, GEMSIM and TABLO-generated programs now initialise the values of all parts of all partially initialised
Coefficients to zero. You can change this.
When writing an updated Header Array file, if the long name is blank on the header from which the data is read, the Coefficient labelling
information from the TABLO Input file where the relevant Coefficient was declared is written as the long name on the updated
file.
Windows Programs
Many improvements have been made to the Windows programs, especially AnalyseGE, TABmate, ViewHAR and
ViewSOL. See "What's New" in the On-line help of each of the programs WinGEM, RunGEM, AnalyseGE, ViewHAR, ViewSOL and TABmate for details.
In particular, AnalyseGE has many new features. AnalyseGE can now handle, and evaluate, expressions involving conditions,
functions, set mappings and integer coefficients. AnalyseGE can show useful information when you click on a Complementarity statement in the
TABmate form. AnalyseGE can evaluate expressions involving the new operators PROD, MAXS and MINS (see above) and can evaluate expressions
involving the new functions ROUND, TRUNC0 and TRUNCB (see above). AnalyseGE can load a CVL file (see above) if you wish to analyse the output from
a data-manipulation TABLO Input file. AnalyseGE can load post-simulation Coefficient values (from a UDC file - see the point below) or the average
of pre-simulation and post-simulation Coefficient values (from an AVC file - see the point below) as an alternative to loading the pre-simulation
values from an SLC file.
You can write a UDC (UpDated Coefficient values) file and an AVC (AVerage Coefficient values) file when
carrying out a simulation. You can load a UDC or AVC file instead of the SLC file into AnalyseGE. You can writea CVL
(Coefficient VaLues) file if you are running a data-manipulation program or if you do not carry out a simulation with a model containing
equations. You can load a CVL file into AnalyseGE in order to analyse the output of a data-manipulation TABLO Input file or in order to analyse
why a simulation does not solve.
SLC files now contain set and element labelling for all Coefficients (as do CVL, UDC and AVC files). SLC, CVL,
UDC and AVC files can contain the values of system-initiated coefficients (produced when TABLO carries out condensation).
Demonstration versions of RunDynam and RunMONASH are now available from the
GEMPACK web site. These come with applications based on the ORANIG-RD (a recursive, dynamic version of ORANI-G) and MONASH [Dixon and Rimmer
(2001) and (2002)] respectively. In particular you can use the Demonstration Version of RunMONASH to replicate the results of Motor Vehicle
Tariff application, as described in Dixon and Rimmer (2002).
Utility Programs
There are two new options in SEEHAR:
SSS Short SS output
SES Short SSE output
These options are similar to SS and SSE but most of the comment and blank lines are omitted.
Programs ACCUM and DEVIA can now handle the contribution of subtotal results for a series
of year-on-year dynamic simulations. Using the new option SUB, ACCUM gives output with each line of the cumulative solution followed by separate
lines containing the subtotal contributions.
All GEMPACK Programs
It is possible to abbreviate the name of the Log file on the command line.
You can ask all GEMPACK programs to delete a specified file either if the program completes successfully, or
if it stops with an error. This might be useful when GEMPACK programs are being run from DOS BAT files or via other programs
(such as Borland Delphi windows programs).
On Windows PCs, all GEMPACK programs echo the full path name of the program and the current (that is,
working) directory early on each run.
Any TAB character in a Command file or in a Stored-input file is converted to a space.
We have checked through the GEMPACK source code and the Windows programs to make sure they can always handle long file names
and file names with spaces.