C 言語と Fortran の混在 第参弾2010年01月06日 12時45分18秒

Fortran の関数を C 言語で呼ぶ時の最後の注意点。

C 言語と Fortran の関数呼び出しの違いは三つ。そして、最後の三つ目は関数の文字列型の引数の受渡し方。

C 言語では、文字列型は文字の配列として扱われる。その為、関数に渡すときは、その始点を渡すのに過ぎない。それに引き換え、Fortran では文字列は特別な操作がなされる。その為、関数の呼び出しにも特別な引数が存在する。

C 言語から Fortran の文字列を受け取る関数を呼ぶ場合は、本来の引数を並べた後に、文字列型の大きさを更に渡してやる必要がある。

例えば、fort を Fortran の手続き型として作る。


* Fortran subroutine()
       subroutine example(three, int, six)
       character(3) three
       integer int
       character(6) six

       three = "3"

       end

C 言語の主関数から呼び出す。関数名の最後に下線を付ける。必ず参照渡しにする。

/* C */
int main()
{
    
    char three[3];
    int i;
    char six[6];
    example_(three, &i, six, 3, 6);
}

C 言語と Fortran では文法なども違うが、C 言語の利用者が Fortran も混在の環境で開発するのに、これらの点を抑えておけば取り合えず作業は進められるようになる。

前回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2010/01/06/4797058/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。