Fortran 90 has two main program units
the place where execution begins and where control should eventually return before the program terminates. May contain procedures.
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.
There are two types of procedures:
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).
For more information, click here