Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

NOFUSION

General Compiler Directive: Prevents a loop from fusing with adjacent loops.

!DIR$ NOFUSION

The NOFUSION directive lets you fine tune your program on a loop-by-loop basis.

This directive should be placed immediately before the DO statement of the loop that should not be fused.

Example

Consider the following example that demonstrates use of the NOFUSION directive:

     subroutine sub (b,a,n)
     real a(n), b(n) 
     do i=1,n
       a(i) = a(i) + b(i)
     enddo
!DIR$ NOFUSION
     do i=1,n
       a(i) = a(i) + 1
     enddo
     end

The following shows the same example, but it uses Standard Fortran array assignments, which allow implicit arrays:

     subroutine sub (b,a,n)
     real a(n), b(n)
     a = a + b
!DIR$ NOFUSION
     a = a + 1
     end