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;