C と Fortran ルーチンとの間で文字列を渡すことは推奨できません。 これは、標準的なインタフェースがないからです。ただし、次を考慮してください。
すべての C 文字列は参照で渡される。
Fortran の呼び出しは、引数リストにある character 型のすべての引数についてそれぞれもう 1 つの引数を渡します。この追加引数は、文字列の長さを渡すもので、値で渡される C の long int と同じです。ただし、これは実装方式に依存します。この文字列の長さを渡す追加引数は、呼び出しの明示的に指定した引数のあとに現れます。
次の例で、文字列を引数とする Fortran 呼び出しを、対応する C のコードとともに示します。
表 11–5 CHARACTER 文字列を渡す
Fortran が C を呼び出す |
C に対応する Fortran のコード |
||
---|---|---|---|
|
|
文字列の長さが呼び出されたルーチンで必要なければ、追加の引数は無視されます。ただし、Fortran では C のように明示的なヌル文字で文字列を自動的に終了させません。これは、呼び出し側のプログラムで追加する必要があります。
文字配列への呼び出しは、単一文字変数への呼び出しと似ています。配列の開始アドレスが渡され、それが使用する長さが配列の単一要素の長さになります。