Sun Studio 12 Update 1: OpenMP API User's Guide

3.9.2 SHARED Clause

Passing a shared variable to a non-intrinsic procedure may result in the value of the shared variable being copied into temporary storage before the procedure reference, and back out of the temporary storage into the actual argument storage after the procedure reference. This copying into and out of temporary storage can occur only if conditions a, b, and c in OpenMP 3.0 Specification, section 2.9.3.2 on p. 88 hold,namely: .