extern “C” {
    // fortran側関数の定義: subroutine hoge() なら hoge_()になる
    // -fno-underscoring付きでcompileするとhoge()のままになるが、逆に区別しにくくなる気がする

    // common block は構造体で
    extern struct {
        int a;
        int b;
    } hogehoge_; // => COMMON/hogehoge/a, b
    // hogehoge_.a = 1; のようにアクセスできる
}

implicit noneしてない場合、型がかなり自由になるので、 gdbなどで呼び出し型を調べるとよい

fortranのlogical は C/C++ では int (or long int)になる “_gfortran_hoge”がsymbolにないと言われたら -lgfortran オプションをつける