Visible to Intel only — GUID: GUID-55C8E91F-4474-4877-97B4-7211B95B000F
Visible to Intel only — GUID: GUID-55C8E91F-4474-4877-97B4-7211B95B000F
Derived Types
For a derived type to be interoperable with C, you must specify the BIND attribute:
type, BIND(C) :: MyType
Additionally, each component must have an interoperable type and interoperable type parameters, must not be a pointer, and must not be allocatable. This allows Fortran and C types to correspond:
typedef struct { int m, n; float r; } MyCtype
The previous example is interoperable with the following:
use, intrinsic :: ISO_C_BINDING
type, BIND(C) :: MyFtype
integer(C_INT) :: i, j
real(C_FLOAT) :: s
end type MyFtype
The following restrictions apply to a derived type specified with the BIND attribute:
It cannot have the SEQUENCE attribute.
It cannot be an extended type.
It cannot have type-bound procedures.