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