type(Point), dimension(4) :: tetrahedron

` It is also possible for a derived type to contain array components.
`

type Pnt real, dimension(3) :: x end type Pnt type Volume type(Point), dimension(4) :: tetrahedron INTEGER :: label end type Volume type(Volume), dimension(100) :: diamond

`The diamond is an object of type (``which has a'') Volume.
Geometrically, the diamond has many facets, and we can conceptually
``create'' it (in a computer graphics program)
by adjoining a number of tetrahedra. Each tetrahedron is described
by its four corner points, and each corner point is given by its set of cartesian
coordinates and .
`

` We can reffer to a specific coordinate of one of the node points. For example
`

diamond(5)%tetrahedron(2)%x(1)

`We can also reffer to a subsection of the array component, provided that there
is only one non-scalar index in the reference. For example,
`

diamond(:)%tetrahedron(2)%x(1) diamond(5)%tetrahedron(:)%x(1) diamond(5)%tetrahedron(2)%x(:)

diamond(:)%tetrahedron(:)%x(1) diamond(5)%tetrahedron(:)%x(:) diamond(:)%tetrahedron(2)%x(:)