|Installation dependent functions|
The Sabre source code is divided into 2 parts, the invariant code in the file
sabre.f90 and the installation dependent part in macdep_parallel.f90 (which is
suitable for serial Sabre as well. Also included is macdep_in_stata.f90 for
building the sabreStata plugin). (There are also a number of source files containing code
from the HSL library. These should not require change and should not be used
independently of Sabre.) Both parts include a header file, limitsf90_standalone.h
(or limitsf90_plugin.h), which
defines the limits on the main data arrays in the program.
Sabre.f90 should not require change for any compiler on any computer, both for serial and parallel versions. macdep_parallel.f90 and macdep_in_stata.f90 contain code which is compiler and machine dependent and which may require change before compilation. Limitsf90_standalone.h (or limitsf90_plugin.h) may require change before compilation to either increase limits to accommodate a large problem or to reduce limits to allow the compiled program to fit into available memory. The main implementation dependent areas are described below.
The input and output channelsIn subroutine BEGIN in files macdep_parallel.f90 and macdep_in_stata.f90, set the following constants to suitable values for your installation.
Machine accuracy and storage of reals and integers
Special subroutinesThe two routines SCRSET and PROMPT are machine dependent, and may need to be rewritten for your machine and/or compiler.
Subroutine SCRSETSCRSET is called at both the start and end of a run. The purpose of SCRSET is to initialise and clear the screen at the start of a SABRE session, and to clear the screen on a sparc machine, or close down any windows if running in a windowed environment, at the end of the session. Code is given for a VT100 terminal for a Sparc machine.
Subroutine PROMPTThis routine outputs a prompt to the primary output channel, leaving the cursor at the character to the right of the prompt text.
The size of the data storage areaThe data area is used for the storage of data, including dummy variables, and is used by the model fitting routines for inverting matrices.
To change the default size of the data area set the value of the variable MXX in the header file limitsf90_standalone.h (or limitsf90_plugin.h) to the required value before compiling.
The size of the response storage area and the maximum number of observationsThe response storage area (equal to four times the maximum number of observations) is used for the storage of the response variate and the number of observations per case, and is used in the model fitting for storage of response related quantities.
To change the default size of the response storage area give a new value for the maximum number of observations MAXY in the header file limitsf90_standalone.h (or limitsf90_plugin.h) before compiling.
The maximum number of variablesTo change the default value for the maximum number of variables set the value of the variable MAXVAR in the header file limitsf90_standalone.h (or limitsf90_plugin.h) to the required value before compiling.
The size of the parameter storage area and the maximum number of parametersThe parameter storage area is used for the storage of the current parameter estimates, the variance-covariance matrix and the aliasing indicators and is used in the model fitting for calculating numerical derivatives.
To change the default size of the parameter storage area set the value of the variable MAXPAR in the header file limitsf90_standalone.h (or limitsf90_plugin.h) to the required value before compiling.
Note that all of these default limits can be changed at run time by using the appropriate command line options.
Other links: Centre for e-Science | Centre for Applied Statistics