OpenMP* Fortran Compiler Directive: Specifies a block of code to be executed by the primary thread of the team. This feature is only available for ifx.
!$OMP MASKED
block
!$OMP END MASKED
block |
Is a structured block (section) of statements or constructs. You cannot branch into or out of the block. |
The binding thread set for a MASKED construct is the current team. A master region binds to the innermost enclosing parallel region.
When the MASKED directive is specified, the other threads in the team skip the enclosed block (section) of code and continue execution. There is no implied barrier, either on entry to or exit from the masked section.
The following example forces the primary thread to execute the routines OUTPUT and INPUT:
!$OMP PARALLEL DEFAULT(SHARED)
CALL WORK(X)
!$OMP MASKED
CALL OUTPUT(X)
CALL INPUT(Y)
!$OMP END MASKED
CALL WORK(Y)
!$OMP END PARALLEL