%\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}