C_SIZEOF
— Size in bytes of an expressionC_SIZEOF(X)
calculates the number of bytes of storage the
expression X
occupies.
ISO_C_BINDING
N = C_SIZEOF(X)
X | The argument shall be an interoperable data entity.
|
C_SIZE_T
(from the ISO_C_BINDING
module). Its value is the
number of bytes occupied by the argument. If the argument has the
POINTER
attribute, the number of bytes of the storage area pointed
to is returned. If the argument is of a derived type with POINTER
or ALLOCATABLE
components, the return value doesn't account for
the sizes of the data pointed to by these components.
use iso_c_binding integer(c_int) :: i real(c_float) :: r, s(5) print *, (c_sizeof(s)/c_sizeof(r) == 5) end
The example will print .TRUE.
unless you are using a platform
where default REAL
variables are unusually padded.