Fortran 95/90 は、ユーザー定義型 (C の構造体に似たデータ構造) をサポートしています。ユーザー定義型は他のデータ型と同じように、モジュールおよび共通ブロック内で渡すことができますが、ほかの言語が型の構造を知っている必要があります。次に例を示します。
Fortran のコード:
TYPE LOTTA_DATA
SEQUENCE
REAL A
INTEGER B
CHARACTER(30) INFO
COMPLEX CX
CHARACTER(80) MOREINFO
END TYPE LOTTA_DATA
TYPE (LOTTA_DATA) D1, D2
COMMON /T_BLOCK/ D1, D2
上記の Fortran コードでは、SEQUENCE 文により、構造型定義を格納する順番が保持されます。
C のコード:
/* C code accessing D1 and D2 */
extern struct {
struct {
float a;
int b;
char info[30];
struct {
float real, imag;
} cx;
char moreinfo[80];
} d1, d2;
} T_BLOCK;