Intel® Fortran Compiler 16.0 User and Reference Guide
For a derived type to be interoperable with C, you must specify the BIND attribute, as shown in the following:
|
Specifying BIND Example |
|---|
type, BIND(C) :: MyType |
Additionally, as shown in the examples that follow, 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.
|
Interoperable Type and Type Parameter Example |
|---|
typedef struct {
int m, n;
float r;
} MyCtype
|
|
The above 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