JZ91 provides the following services to an application software organized into processors:
--- handling of ``call banks'' serving to transmit parametric
information of the link and data types
between processors at levels n-1
, n
, and n+1
.
For the processor at call-depth n
the ``up'' call-bank,
pointed to by the system link LQUP
,
assures the communication with the higher level at
call-depth n-1
;
and the ``down'' call-bank,
pointed to by LQDW
,
communicates to the lower level at call-depth n+1
.
Call banks of equal size are pre-lifted,
one for each level of a definite number of levels,
they stay permanently in memory.
--- handling of ``processor constants'', being part of the environmental data for each processor, fixed during the run. If a processor needs any constants at all, it may initialize them itself, this then being the default initialization. By using titles, loaded with routine TZINIT, this default can be over-ruled. The system link LQAN gives Access to these Numbers thus:
IQ(LQAN) number of constants Q(LQAN+1) first constant . . .
--- handling of ``processor conditions'' which may be signalled from
any processor with CALL \Rind{JZTELL
(J)},
J
being a small integer normally from 1 to 10.
This provides for simple counters over the whole run
grouped by processors.
--- handling of statistics of processor usage,
like number of times entered and time spent.
The number of times entered is accessible to
the processor in IQ(LQSV+2)
.
--- saving the size of the working space, on special request also the contents, on down-call to the next processor and restoring it on up-return.
--- handling of ``processor flags'' for test runs during
program development.
The flags may be used to drive debug operations of
a processor without having to recompile it.
The flags for a given processor are defined by the user
on titles JZFL
and they
are copied on entry to the processor into the vector JQFLAG
,
ready for inspection by the code in the processor;
non-initialized flags are set to zero.
This is only available with the program-development
version of JZ91;
the production version presets all flags to zero
and leaves them thus for the whole run.
This ``environment'' information is held in the bank of ``support variables'', one bank for each processor, which is permanently in store as part of the JZ91 data structure.
Communication between the processors and JZ91 is via:
COMMON /JZUC/LQJZ,LQUP,LQDW,LQSV,LQAN, JQLEV,JQFLAG(10)JZ91 operates in and for one store only, which must be the user's main store, normally the primary store. Links in the call bank can point only into this store.
This package is derived from the HYDRA package JQ81
A.Norton, J.Zoll, HYDRA Topical Manual, book JQ81, CERN Program Library