a <code>pointer</code>, <code>arr</code>, to your array of the desired type
and dimensions.  For example, <code>real(C_DOUBLE), pointer :: a(:,:)</code>
for a 2d real array, or <code>complex(C_DOUBLE_COMPLEX), pointer ::
a(:,:,:)</code> for a 3d complex array.

     <li>The number of elements to allocate must be an
<code>integer(C_SIZE_T)</code>.  You can either declare a variable of this
type, e.g. <code>integer(C_SIZE_T) :: sz</code>, to store the number of
elements to allocate, or you can use the <code>i