プロシージャーの相互運用可能性

Fortran プロシージャーは、そのインターフェースが相互運用可能な場合に相互運用可能です。 Fortran プロシージャーのインターフェースは、BIND 属性を持つ場合に 相互運用可能です。 Fortran プロシージャーのインターフェースは、以下の場合に、C 関数プロトタイプと 相互運用可能です。

次に、Fortran プロシージャー・インターフェースの例を示します。

INTERFACE
   FUNCTION FUNC(I, J, K, L, M) BIND(C)
     USE, INTRINSIC :: ISO_C_BINDING
     INTEGER(C_SHORT) :: FUNC
     INTEGER(C_INT), VALUE :: I
     REAL(C_DOUBLE) :: J
     INTEGER(C_INT) :: K, L(10)
     TYPE(C_PTR), VALUE :: M
   END FUNCTION FUNC
 
END INTERFACE

この例では、Fortran プロシージャー・インターフェースは C 関数プロトタイプと相互運用可能です。

short func(int i, double *j, int *k, int l[10], void *m);

C データ・ポインターは、C_PTR の型の Fortran 仮引き数、 または VALUE 属性を持たない Fortran スカラーに対応可能です。 例では、C ポインター j および k は、それぞれ Fortran スカラー J および K に対応します。 C ポインター m は、C_ PTR の型の Fortran 仮引き数 M に対応します。 IBM Copyright 2003