4.3 蛇足: Fortran プログラムから C の関数を呼ぶ方法

Fortran プログラムから、C プログラム中の例えば
  double sum(double a, double b)
  {
    return a + b;
  }
という関数を呼ぶにはどうしたらよいか? Fortran プログラムで sum と書いても、 それはアセンブリー言語に変換されると、 sum という名前に化けるので、 C の関数 sum() のアセンブリー言語レベルでの名前 sum とは マッチしない。

これを解決するには、橋渡しをする C の関数 sum() を 用意すればよい。
  double sum_(double *a, double *b)
  {
    return sum(*a, *b);
  }

Fortran プログラムから z=sum(x,y) のようにして、 この sum() を呼ぶと、 ここから sum() が呼び出されて、 間接的に sum() 呼び出しが実現できることになる。

桂田 祐史
2017-10-07