C と Fortran ルーチンの間で文字列を渡すことは推奨できません。ただし、Fortran の文字列の値を持つ関数は、データアドレスとデータ長の 2 つの引数がはじめに追加された C の関数と同じです。Fortran 関数と対応する C 関数の一般的な形式は次のとおりです。
Fortran 関数 |
C 関数 |
|
---|---|---|
CHARACTER*n FUNCTION C(a1, ..., an) |
|
次に例を示します。
表 11–15 CHARACTER 文字列を戻す関数
Fortran が C を呼び出す |
C が Fortran を呼び出す |
||
---|---|---|---|
|
|
この例では、C 関数と呼び出し側の C ルーチンは、リストの最初に 2 つの引数 (結果として戻される文字列へのポインタと文字列長) が、そして、リストの最後に 1 つの追加引数 (文字列引数の長さ) が追加されています。C から呼び出された Fortran ルーチンでは最後のヌル文字を明示的に追加する必要があることに注意してください。Fortran の文字列は、デフォルトでは NULL 終端されません。