ユーザー定義型の処理

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;