The C*$* assert do prefer (serial) assertion tells KAP
to prefer serial ordering for the DO loop immediately following
this assertion. Unlike C*$* assert do (serial) ,
assert do prefer (serial) does not inhibit optimization
of outer loops.
The following code example shows how C*$* assert do prefer
(serial) works:
DO 100 i=1,N
DO 100 J = 1, N
C*$* ASSERT DO PREFER (SERIAL)
DO 200 K = 1, N
X(I,J,K) = X(I,J,K) * Y(I,J)
200 CONTINUE
DO 300 K = 1, N
X(I,J,K) = X(I,J,K) + Z(I,K)
300 CONTINUE
100 CONTINUE
The C*$* assert do prefer (serial) assertion allows
optimization over the whole loop nest, while trying to keep the
DO 200 K loop serial. Compare this example with the
C*$* assert do (serial) example to see how the two
assertions produce different results with identical loop structures.