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

PUBLIC [ :: ] name [ , name ]...


The PUBLIC attribute is only permitted in the specification part of a module program unit.
The PUBLIC attribute specifies that a module entity is accessible from outside the module. It is the opposite to the PRIVATE attribute.

A PUBLIC statement with no list of names confirms that all entities in the module are public, except for those which are explicitly declared PRIVATE. (This is the default.)

In Fortran 2003, individual components and type-bound procedures in a derived type definition may be declared PUBLIC in their component definition statement or type-bound procedure statement.
Component Definition statement, MODULE statement, PRIVATE attribute, PROTECTED attribute, Type Declaration statement