Fortran の C 相互運用メカニズム (Fortran 2003 で導入され、gfortran と ifort の新しいバージョンで実装されています) を使用して、Fortran から C 関数を呼び出すコードを書いています。
この答えはほとんど私が必要としているものですが、次のような C 関数に対して Fortran でどのインターフェイス宣言を使用する必要があるのか について、頭がよくわかりません。
int use_array(int n, char * array[]){
int i;
for(i=0; i<n; i++){
printf("Item %d = %s\n",i,array[i]);
}
return n;
}
Fortran側のインターフェースの宣言がどうあるべきかはっきりしていません:
interface
function use_array(n, x) bind(C)
use iso_c_binding
integer (c_int) use_array
integer (c_int), value :: n
character(c_char) WHAT_SHOULD_GO_HERE? :: x
end function use_array
end interface
null 終了の問題にも対処しなければならないことはわかっています。