This patch does the following:
- code refactoring
- check "capture statement is of the form v = x if atomic construct is read or capture"
- check "write statement is of the form x = expr if atomic construct is write"
- check "x must not have the ALLOCATABLE attribute."
- check "operator must refer to the intrinsic operator and not to a user-defined operator"
- check "hint-expression is a constant expression that evaluates to a scalar value with kind omp_sync_hint_kind and a value that is a valid synchronization hint."