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;