Unless there is a possibility that your program contains zero-sized
arrays or array sections, the -fast option (or the
-assume nozsize option) should always be specified at
compile time. If neither of these options is selected, the compiler
is required to insert a series of checks to guard against division
by zero in its internal computations. Depending upon the particular
application, these checks can have a noticeable (or even major)
effect on performance.
The -fast or -assume nozsize compile-
time options may not be used in a program where lines containing
any zero-sized arrays or array sections are executed. If any line
containing zero-sized arrays is executed in a program compiled with
the either of these options, incorrect program results occur.
If it is suspected that an array or array section named on a certain
program line may be zero-sized, a run-time check can be performed
that prevents execution of that line whenever the array or array
section is zero-sized. The difference between the UBOUND and LBOUND
of the array or array section is less than or equal to zero if
the array or array section is zero-sized. If the execution of all
occurrences of zero-sized arrays or array sections are avoided using
a run-time check such as this, the program may be compiled with the
-fast or -assume nozsize compiler options.
For documentation of the -fast and
-assume nozsize options, see Sections
8.1.1.3 and 8.1.1.2.