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.