Returns the size of an argument in bytes.
Inquiry function
SIZEOF must not be passed as an argument to a subprogram.
Default integer scalar.
The size of the argument in bytes.
The following example assumes that -qintsize=4.
INTEGER ARRAY(10) INTEGER*8, PARAMETER :: p = 8 STRUCTURE /STR/ INTEGER I COMPLEX C END STRUCTURE RECORD /STR/ R CHARACTER*10 C TYPE DTYPE INTEGER ARRAY(10) END TYPE TYPE (DTYPE) DOBJ PRINT *, SIZEOF(ARRAY), SIZEOF (ARRAY(3)), SIZEOF(P) ! Array, array ! element ref, ! named constant PRINT *, SIZEOF (R), SIZEOF(R.C) ! record structure ! entity, record ! structure ! component PRINT *, SIZEOF (C(2:5)), SIZEOF(C) ! character ! substring, ! character ! variable PRINT *, SIZEOF (DOBJ), SIZEOF(DOBJ%ARRAY) ! derived type ! object, structure ! component
The following is sample output generated by the program above:
40 4 8 16 8 4 10 40 40
See the XL Fortran Compiler Reference for details about the -qintsize compiler option.