with LUN: logical unit number ALIMIT: floating point number giving, in Mega-words, the limit of the data to be written to one reel of tape; if zero: increase the limit by one more reel of tape if -ve: unlimited (as intialized by FZFILE) Example: CALL FZLIMI (21, 12.75) sets the file-size to 12.75 Mwords for unit 21 Re-calling later with: CALL FZLIMI (21, 0.) sets the file-size to be the current data-volume plus 12.75 Mwords
The reason for this facility is the fact that detecting 'end-of-tape'
is a problem which cannot be solved satisfactorily in full
generality.
To help the user who wants control over tape reel switching,
ZEBRA counts the total number of words written,
and checks after every data-structure written out
(but not for start-of-run, end-of-run, end-of-file)
whether the limit has been reached.
If so, it returns the 'pseudo end-of-tape' condition (cf. FZOUT)
for every data-structure output until an increase of the limit
to include one more reel of tape is requested with ALIMIT=0
.
Thus the user can switch tape,
call \Rind{FZLIMI
(LUN,0.)},
and continue to write another tape,
again waiting for the 'end-of-tape' signal.