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 コード:
/* D1 と D2 を参照します。*/
extern struct {
struct {
float a;
int b;
char info[30];
struct {
float real, imag;
} cx;
char moreinfo[80];
} d1, d2;
} T_BLOCK;