Fortran 90 has four useful program units
the place where execution begins and where control should eventually return before the program terminates.
a parameterised named sequence of code which performs a specific task and can be invoked from within other program units.
as a SUBROUTINE but returns a result in the function name (of any specified type and kind).
a program unit which can contain procedures and declarations. It is intended to be attached to any other program unit where the entities defined within it become accessible.
For more information, click here