mex を使用して matlab からいくつかの fortran コード (f90) をリンクしていますが、時々 matlab がフリーズします。
以前は、データ型の不一致 (integer*4 と integer*8 など) が原因でフリーズが発生していました。
リンクしているコードには多くの暗黙的に定義された変数が含まれているため、たまにしか発生しない非表示のデータ型の競合があるかどうか疑問に思っています。
フリーズの原因としてデータ型の不一致を排除するために、コンパイラですべての変数を明示的に宣言する必要があるようにしたいと考えています。
質問:
コンパイル時にすべての変数を明示的に宣言するよう gfortran に要求するにはどうすればよいですか? それができない場合、少なくとも警告を受け取る方法はありますか?
すべてのアーキテクチャで特定の種類として gfortran によって解釈される「実際の」データ型はありますか? もしそうなら、それはどれですか (real*4, real*8, ...)?
gfortran に「実際の」データ型を特定の種類、たとえば「real*4」として解釈させる方法はありますか?
matlab でコンパイルされた mex ルーチンから呼び出されたときに fortran コードがフリーズする理由 (データ型の不一致以外) に関するアイデアはありますか?
助けてくれてありがとう。
これを理解するまで、暗黙的に定義されたすべての変数をリストしようとする多くのコード行を調べます。言うまでもなく、このような退屈な仕事から解放してくれる人には、とても感謝しています...
一番、
G.