next up previous
Next: AssertReduction Up: Polaris Assertions and Previous: AssertLastValue and AssertDynLastValue

AssertLoopLabel

The AssertLoopLabel assertion gives the loop a pneumonic label, so it can be referred to by other assertions or other things. The standard form for these labels is routine-name_ do-loop-name. The do-loop-name can either name the target of the DO statement (for example do100 for DO 100 i=1,N), or it can give a name based on its sequential position within the routine (for example do#2 for the second outer DO loop in the routine. Nested loops are indicated by a loop number within an outer loop. For instance, do#2#3 indicates the second outer loop nest in the routine, and within that loop, the third DO statement at the next-inner level.

The CSRD directive corresponding to the AssertLoopLabel assertion appears before the DO statement to which it refers. An example of the CSRD$ directive for this assertion is:

CSRD$ LOOPLABEL 'ADDUP_do#1'

An example of its usage is as follows:

CSRD$ PARALLEL (J)
CSRD$ LOOPLABEL 'ADDUP_do#1'
      DO J = 1, N
CSRD$ PRIVATE a(1:m), b(1:m), x, y
CSRD$ LASTVALUE b(1:m:1), a(1:m:1)
         . . . 
      END DO



Jay Hoeflinger
Mon Apr 21 11:52:18 CDT 1997