1. Home
  2. GET directive

GET directive

Accesses details of the “environment” of a Genstat job.

Options

ENVIRONMENT = pointer Pointer given unit labels 'inprint', 'outprint', 'diagnostic', 'errors', 'pause', 'prompt', 'newline', 'case', 'run', 'wordlength', 'captions', 'typeset', 'cmethod', 'dataspace', 'algorithms', 'actionafterfault' , 'unsetdummy' ,'language', 'year2digitbreak' and 'timewithseconds' used to save the current settings of those options of SET; default *
SPECIAL = pointer Pointer given unit labels 'units', 'blockstructure', 'treatmentstructure', 'covariate', 'asave', 'dsave', 'msave', 'rsave', 'tsave', 'vsave' and 'vcomponents, used to save the current settings of those options of SET; default *
LAST = text To save the last input statement; default *
FAULT = text To save the last fault code; default *
FIELDWIDTH = scalar Saves the fieldwidth currently defined as the default minimum for PRINT and other output commands
SIGNIFICANTFIGURES = scalar Saves the minimum number of significant figures currently to be supplied in the default formats determined by PRINT and other output commands
SEEDS = pointer Saves a pointer to variates defining the seeds currently used as defaults by random-number functions, the RANDOMIZE directive, and internally by various other directives
EPS = scalar To obtain the value of the smallest x (on this computer) such that 1+x > 1 ; default *
NJOB = scalar Number of the current job within the program; default *
VERSION = pointer Information about the version of Genstat that is being used; default *
PID = scalar Gets an integer value unique in the current job to use, for example, in names of temporary files
WORKINGDIRECTORY = text Saves the name of the current working directory

No parameters

Description

The GET directive allows you to access the current settings of the environment. This can be particularly useful in procedures, when details of the environment may need to change and be reset later to their original state. Sometimes it may be sufficient just to use the RESTORE option of the PROCEDURE directive for this purpose, but this causes them to be reset only at the end of a procedure.

The ENVIRONMENT and SPECIAL options of GET are used to access and save the current settings of options of the SET directive. The options of SET are divided into two groups. Those that apply to the general environment can be saved using the ENVIRONMENT option: these are INPRINT, OUTPRINT, DIAGNOSTIC, ERRORS, PAUSE, PROMPT, NEWLINE, CASE, RUN, WORDLENGTH, CAPTIONS, TYPESET, CMETHOD, DATASPACE, ALGORITHMS, ACTIONAFTERFAULT, UNSETDUMMY , LANGUAGE'year2digitbreak' and TIMEWITH SECONDS. Those that apply only to the save structures associated with particular directives can be saved using the SPECIAL option: these are UNITS, BLOCKSTRUCTURE, TREATMENTSTRUCTURE, COVARIATE, ASAVE, DSAVE, MSAVE, RSAVE, TSAVE, VSAVE and VSTRUCTURE. The labels of the pointer can be specified in either lower or upper case or any mixture.

When you use the ENVIRONMENT option, Genstat sets up a pointer structure with units identified by the labels of the corresponding options of SET: these labels are 'inprint', 'outprint', and so on. The labels can be specified in either lower or upper case, or any mixture. Each unit of this pointer contains one or more strings, or a scalar, to represent the current setting. Thus, the statement

GET [ENVIRONMENT=Env]

would set up a pointer called Env with elements Env['inprint'], Env['outprint'], and so on. Each element can also be referred to by its position in the pointer; for example, Env['inprint'] is the same as Env[1].

Thus you do not have to know how the environment has been set in order to change it and then restore it; you can use GET to find out about it, and SET to change it back. For example, suppose that you wanted to stop temporarily the echoing of statements to the output file in a batch program. In the following program the first SET statement cancels the echoing, if indeed any echoing is in progress, and the second restores echoing to what it was before the first SET.

GET [ENVIRONMENT=Env]

SET [INPRINT=*]

(more statements)

SET [INPRINT=#Env['inprint']]

The SPECIAL option similarly sets up a pointer to save its information. The labels of the pointer are 'units', 'blockstructure', and so on. These can again be specified in either lower or upper case, or any mixture. The first element of the pointer is the units structure, or, failing that, the number of units if you have defined it for the current job. Printing the contents of the other elements is not usually informative, as the information is stored in coded form. The last ten elements of the pointer allow you to access the special save structures in the graphical and analysis directives. They are most useful for recovering information about an analysis when you have not already specified an explicit save structure. (Otherwise you would have to do the analysis all over again.) The SPECIAL option also provides a way of accessing the save structures associated with the analysis-of-variance directives BLOCKSTRUCTURE, COVARIATE and TREATMENTSTRUCTURE. This facility is used by the ASTATUS procedure, which may be a more convenient way of accessing these structures.

The LAST option is used to save the latest statement that you have input. You can then give the statement again later in the job without having to retype it, though some implementations of Genstat provide a simpler recall facility using the cursor keys. The option has the same effect as setting up a macro containing a single statement, and is accessed in the same way. For example, the statements

PRINT [SERIAL=yes; IPRINT=*; SQUASH=yes] !t('New Data'),Y

GET [LAST=Prdat]

(statements)

READ Y

(data)

##Prdat

would print the data, Y, under the title New Data and save the PRINT statement in a text called Prdat. After the next data set is read, the heading New Data and the new data set are printed in the same format as the previous data set.

The FAULT option is used to save the last fault code as a single string in a text structure. (A list of fault code definitions is available in the on-line help provided with most implementations of Genstat.) This option is particularly useful in procedures, in combination with the DIAGNOSTIC and FAULT options of SET, to control the printing of diagnostics.

The FIELDWIDTH option saves the fieldwidth currently defined as the default minimum for PRINT and other output commands, and the SIGNIFICANTFIGURES option saves the minimum number of significant figures currently to be supplied in the default formats determined by PRINT and other output commands (see PRINT for details).

The SEEDS option saves a pointer containing variates, each containing four values, which define the seeds currently used as defaults by random-number functions, the RANDOMIZE directive, and internally by various other directives. The pointer elements are labelled to identify the use of the seeds concerned: for example 'calculate', and 'randomize' for random-number functions and the RANDOMIZE directive respectively.

The EPS option is used to obtain the smallest number, ε, such that 1.0+ε is recognized by your computer to be greater than 1.0; this is an indication of the precision of the computer, which can affect the behaviour of some of the algorithms used by Genstat. EPS can be used, for example, when testing for convergence of iterative algorithms.

The NJOB option provides the current job number within the Genstat program. It is used in the start-up file to distinguish between statements to be executed just at the start of the program, and those to be executed at the start of each job.

The VERSION option provides information about the version of Genstat that is being used. This is particularly useful within general programs or procedures. It saves a pointer containing the following elements:

release is a scalar storing the release number, for example 21.10. The main information is in the integer part and the first decimal place; the second decimal may be used to distinguish between sub-releases with minor changes or corrections.
patch shows whether the release includes a patch.
build is the build number (useful for support).
implementation identifies the type of computer for which the version has been implemented, for example ‘PC’.
system indicates the operating system, for example Windows 11.
version may contain further information relevant to particular implementations.
description gives the name of the release, for example Genstat Twenty-first Edition.
bits gives the number of bits for which the implementation has been built, for example 64 for a 64-bit version.

The PID option saves a scalar containing an integer value that is unique within the current job. You might want to use this, for example, to define a unique name for a temporary file.

The WORKINGDIRECTORY option saves a text containing the name of the current working directory.

Options: ENVIRONMENT, SPECIAL, LAST, FAULT, FIELDWIDTH, SIGNIFICANTFIGURES, SEEDS, EPS, NJOB, VERSION, PID, WORKINGDIRECTORY.

Parameters: none.

See also

Directives: SET, PROCEDURE.

Commands for: Program control.

Example

" Example 1:5.6.2 "
GET [ENVIRONMENT=Env]
PRINT [RLWIDTH=24; ORIENT=across; SQUASH=yes] Env[]; FIELD=16

Updated on February 9, 2022

Was this article helpful?