FortranからCの関数を呼び出す

注意すべき点

  • Cの関数名の最後にはアンダーバーをつける
    • ex.) void func_()これを呼び出すときはcall func()
  • Fortranの文字列はヌル終端でなく最後に空白を付与する固定長
    • コンパイラの仕様によっては引数の最後に文字列の長さをあらわすint型のデータが引数の文字列の数だけ付与される
      • ex.) call func(STR1,STR2)で呼び出されるのはvoid func_(char* str1,char* str2,int str1_len,int str2_len)
  • Fortranの引数はすべて参照引渡し、よってすべてポインタで受け取る
    • ex.) call func(i,f)を受け取るときはvoid func_(int* i,floot* f)
  • Fortran内では識別子に大文字小文字の区別はないが大抵すべて小文字
  • 配列のメモリ内での配置の仕方が違う
    • ex.)2*2の配列の場合
      • Fortran: (1,1),(2,1),(1,2),(2,2)
      • C: (0,0),(0,1),(1,0),(1,1)