The BLOCK DATA statement begins a block data program unit.
The CONTAINS statement separates the body of a main program, module, or subprogram from any internal or module subprograms it contains.
The END statement ends a program unit, module subprogram, interface, or internal subprogram.
The FUNCTION statement begins a function subprogram, and specifies its return type and name (the function name by default), its dummy argument names, and whether it is recursive.
The INTERFACE statement begins an interface block. An interface block specifies the forms of reference through which a procedure can be invoked. An interface block can be used to specify a procedure interface, a defined operation, or a defined assignment.
The MODULE statement begins a module program unit.
The PROGRAM statement specifies a name for the main program.
A statement function is a function defined by a single statement.
The SUBROUTINE statement begins a subroutine subprogram and specifies its dummy argument names and whether it is recursive.