- 505 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:43:33 ]
- >>504
元々はAUTOMATIC変数の類はスタックに、ALLOCATE命令のときはヒープだった気がする。 ただ歴史的経緯のせいでサブルーチン側で巨大な配列をとっているプログラムが多くて それがSTACKOVERFLOWを引き起こすから、IntelFortranなんかはデフォールトでは スカラー変数はスタックで、配列の類はヒープで確保するようになった気がする。 インテルの掲示板に、デフォールト・オプション切り替えの話が出ていた旗もするのだが 昔のことなので記憶がはっきりしない。 OpenMPを指定すると、オプションが切り替わってしまう話はこのスレに出ている。 software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/59627/ FortranはFORTRAN66時代がSTATICに変数をとっていた関係で、 FORTRAN77で規格の上ではサブルーチン類の変数はAUTOMATICでありうるように なったにもかかわらず、互換性の観点からデフォールトでSTATICに変数を とっていることが多くて、それはFortran90でもしばらく続いていたという歴史的経緯がある。
|

|