%\pagebreak
\begin{fortranspecific}[4ex]
\section{Fortran Restrictions on \kcode{shared} and \kcode{private} Clauses with Common Blocks}
\label{sec:fort_sp_common}
\index{clauses!private@\kcode{private}}
\index{clauses!shared@\kcode{shared}}
\index{private clause@\kcode{private} clause!common blocks, Fortran}
\index{shared clause@\kcode{shared} clause!common blocks, Fortran}

When a named common block is specified in a \kcode{private}, \kcode{firstprivate}, 
or \kcode{lastprivate} clause of a construct, none of its members may be declared 
in another data-sharing attribute clause on that construct. The following examples 
illustrate this point. 

The following example is conforming:

\pagebreak
\fnexample{fort_sp_common}{1}

The following example is also conforming:

\fnexample{fort_sp_common}{2}
\topmarker{Fortran}

The following example is conforming:

\fnexample{fort_sp_common}{3}

The following example is non-conforming because \ucode{x} is a constituent element 
of \ucode{c}:

\fnexample{fort_sp_common}{4}

The following example is non-conforming because a common block may not be declared 
both shared and private:

\fnexample{fort_sp_common}{5}
\end{fortranspecific}


