# Command - EndCommand

command <suppress>

…

endcommand

FLAC3D commands may be inserted between this pair of FISH statements; the commands will be interpreted when the FISH function is executed. The lines found between a command - endcommand pair are simply stored by FISH as a list of strings; they are not checked at all, and the function must be executed before any errors can be detected.

There are a number of restrictions concerning the embedding of FLAC3D commands within a FISH function. The model new and model restore commands cannot be invoked from within a FISH function, because this will overwrite the current model state that includes the FISH function being executed.

A model results import command should use the skip-fish keyword to indicate that the FISH context should be maintained, however this should happen automatically if the code detects that an import occurs while executing a FISH function.

A FISH function definition may appear within a command - endcommand pair, and may itself contain the command statement - and so on recursively. Note that this can be used to create FISH code that create new FISH functions whos details are determined at runtime. A FISH definition inside of the command - endcommand pair should not redefine a FISH function which is currently executing.

A function that is the subject of a callback event may contain the command statement. However, this construction should be used with caution, and avoided if possible - it is more likely to cause unanticipated side effects and more likely to be slow to execute. In particular, a function executing during cycling is not allowed to execute a command that cycles.

Comment lines (starting with ; ) are taken as FLAC3D comments, rather than FISH comments. It may be useful to embed an explanatory message within a function, to be printed out when the function is invoked. If the echo mode is off (program echo off), then any FLAC3D commands coming from the function are not displayed to the screen or recorded to the log file.

The optional word suppress may be given after the command statement. This indicates that the all commands in the sequence will act as if program echo off was given, and the previous echo state will be restored afterwards.