Unless explicitly mapped, scalar variables are generally replicated, in other words, every processor has a copy of the variable.
These copies must be kept up-to date (by the compiler). Consider,
REAL, DIMENSION(100,100) :: X REAL :: Scal !HPF$ DISTRIBUTE (BLOCK,BLOCK) :: X .... Scal = X(i,j) ....
The processor that owns X(i,j) updates its copy of Scal and then broadcasts its new value to all other processors.
For more information, click here