4.6.4 PROTECTED Attribute
The Fortran compiler now accepts the Fortran 2003 PROTECTED attribute.
PROTECTED imposes limitations on the usage of module entities. Objects with the
PROTECTED attribute are only definable within the module that declares
them.