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