- 493 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:04:13 ]
- >>492
PUREもELEMENTALもFortran95で導入されたキーワードで、関数やサブルーチンの 副プログラムの性質をコンパイラに教える修飾語。 PURE FUNCTION unko(x) などのように宣言の頭につけて使う。 PUREというのは、大雑把には副作用がないこと。それゆえ、並列に動作させても 値が変わらないので、コンパイラは並列化など最適化をやれる。 (PUREを満たさねばならない条件はいくつかあるので、kwskはマニュアル見てくれ) ELEMENTALはPUREの中でさらにいい性質を持ったもの。 本来は1変数で定義してあっても、配列を引数にとって、配列を返すように使ってもいいもの。 たとえば、 REAL :: a(10), b(10) b = SIN(a) こういう使い方が組み込み関数では出来るわけだが、自作の関数でもこうやって使っても いい場合にELEMENTAL (要素毎の意味) をつける。 これもコンパイラが利口なら、最適化をかけてくれるはず。 普通、DO..LOOP内に関数やサブルーチンの呼び出しがあると、呼び出し先で何が あるかわからないので、最適化が抑止されるが、PUREやELEMENTALがあれば、 安心してコンパイラが最適化できる。(原理的にはw)
|

|