Because the format for processing an FZ file (native, exchange, ALFA mode) is selected by the initializing call to FZFILE, and because the handling of all formats is done by the one set of routines FZIN and FZOUT, the user's call to FZIN or to FZOUT causes the loading of all the code to handle all the formats. This volume is non-negligible, and for production programs one may want to suppress loading of the non-used parts of it. This can be done by adapting this dummy routine, which as it stands is valid for a program which only reads files in native mode and which does not call FZOUT/FZENDO:
SUBROUTINE FZDUMY CHARACTER NAME*6 C-- No output native mode *n ENTRY FZOFFN *n NAME = 'FZOFFN' *n GO TO 17 C-- No output exchange mode, neither binary nor ALFA *n ENTRY FZOFFX *n NAME = 'FZOFFX' *n GO TO 17 C-- No output ALFA mode, but binary mode *n ENTRY FZOASC *n NAME = 'FZOASC' *n GO TO 17 C-- No input native mode *u ENTRY FZIFFN *u NAME = 'FZIFFN' *u GO TO 17 C-- No input exchange mode, neither binary nor ALFA ENTRY FZIFFX NAME = 'FZIFFX' GO TO 17 C-- No input ALFA mode, but binary mode *n ENTRY FZIPHA *n NAME = 'FZIPHA' 17 CALL ZFATAM (NAME//' in FZDUMMY reached.') END
Note that the dummy entry FZIFFN
is not active because
the true routine is needed, FZIPHA
is not needed because
FZIFFX
is stronger, and that the entries FZO...
are not
needed because FZOUT is not called.
If the dummy is reached by mistake, the program is stopped
via ZFATAL with a message.