デフォルトでは、Fortran コンパイラは関数名とサブプログラム名を大文字に変換します。しかし、C コンパイラは大文字と小文字の変換を行いません。このため、Fortran プログラムから呼び出される C プロシージャには、大文字と小文字を正確に使用して名前を付けなければなりません。例えば、次のような呼び出しの場合を考えてみます。
CALL PROCNAME() |
C プロシージャに、PROCNAME という名前を付けなければなりません。 |
X=FNNAME() |
C プロシージャに、FNNAME という名前を付けなければなりません。 |
最初の呼び出しの場合、PROCNAMEによって返される値を無視します。2番目の関数呼び出しでは、FNNAME は値を返さなければなりません。
デフォルトでは、Fortran サブプログラムは引数を参照によって渡します。 すなわち、Fortran サブプログラムは引数の値ではなく、それぞれの実引数のポインタを渡します。これに対して、C プログラムは値によって引数を渡します。このため、次の点に注意しなければなりません。
Fortran プログラムから C 関数を呼び出す場合、この C 関数の仮引数はそれぞれ適切なデータ型のポインタとして宣言されていなければなりません。
C プログラムから Fortran サブプログラムを呼び出す場合、それぞれの実引数はポインタとして明示的に指定されていなければなりません。