fortran66のブログ

fortran について書きます。

<del datetime="2009-03-12T04:38:39+09:00">F03GLがWindowsでは動かない件について</del><span style="color:#FF0000;">F03GL が Windows で動いた件</span>

若干のソースの手直しで、 x64 版で動くことが判明しました。いずれ後日の日記にて。

Fortran から OpenGL を使う時に、F90GL というインターフェースを用いることが多かったわけですが、Fortran2003 で Fortran から C 言語ルーチンを呼び出すための規格が定まったことを受けて、F03GL というインターフェースが開発されているようです。

しかし、Windows+Intel Visual Fortran の組み合わせでは、 F03GL がうまく動きません。それは、Windows (32bit) 版での C サブルーチンの呼び出し規約がいわゆる _cdecl となっていているために、Fortran2003 規格が用意した standard call (?) と食い違っているために生じているようです。

64bit 版の Windows では名称の問題は回避できて、GLUT もふくめてコンパイルしなおせば、一応動くことは動くのですが、スタックのつみ方が異なるのか、それとも GLU32, OpenGL ルーチンが32bit 版になっているためなのか、正常に終了できません。

私には、ちょっといじっただけでは解決で出来そうにないです・・・