The C*$* assert relation
(where XX=GT,LT,LE, etc)
( <name> .XX. <variable/constant>
) assertion indicates
the relationship between two variables or between a variable and
a (possibly signed) constant. When attempting to optimize a loop,
KAP occasionally asks about such relationships, as in the following
example:
DO 100 I = 4,N A(I) = A(I+M) + B(I) 100 CONTINUE
KAP generates this question in the source code section of the listing file:
Is "M .GE. N" in this loop?
If M
will always be greater than N
at this
point in the program, you can relay this information to KAP using an
assertion.
Again, note that KAP cannot check the validity of assertions. With
the assertion that M
is greater than the loop upper
bound, KAP can generate optimized code for this loop. If at run
time M
turned out to be less than N
, the
results produced by the optimized code would probably be different
than the results produced by the original loop.
This assertion is in effect only for the DO loop before which it appears.