PROTECTED attribute
Standard: F77 F90 F95 F2003
  Example Program
type, PROTECTED [ , attr ]... :: decl-list

PROTECTED [ :: ] name [ , name ]...

The PROTECTED attribute is only permitted in the specification part of a module program unit.
The PROTECTED attribute protects a module variable against alteration from outside the module. Outside of its module, a variable with the PROTECTED attribute may be referenced but not defined; it is subject to the same limitations as an INTENT(IN) variable.

Note that the PROTECTED attribute is completely separate from the accessibility (PUBLIC/PRIVATE) attribute. The latter determines the visibility of the variable name, whereas PROTECTED determines what may be done to it.
MODULE statement, PRIVATE attribute, PUBLIC attribute, Type Declaration statement