ユーザー定義型の処理

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;