Sun Studio 12: Fortran プログラミングガイド

11.6 名前付き COMMON

Fortran の名前付き COMMON は、大域的構造体を使用して C の中で代替できます。

表 11–16 Fortran の名前付き COMMON 定義

Fortran の COMMON 定義 

C "COMMON" 定義 


COMMON /BLOCK/ ALPHA,NUM
...

extern struct block {
  float alpha;
  int num;
};
extern struct block block_ ;
main ()
{
...
  block_.alpha = 32.;
  block_.num += 1;
...
}

C ルーチンにより確立された外部名は、Fortran プログラムにより作成されたブロックとリンクさせるために下線で終了しなければいけません。C 指令 #pragma pack は Fortran のときと同じ埋め込みが必要な場合があります。

f95 は、デフォルトで、共通ブロックのデータを最大で 4 バイトの境界に配列します。共通ブロック内のすべてのデータ要素の自然配列取得し、デフォルトの構造配列と一致させるには、Fortran ルーチンをコンパイルする際にオプション -aligncommon=16 を使用します。