- 672 名前:名無しさん@5周年 [2007/11/07(水) 01:49:00 ]
- >>666
それはa(:)などと指定すると、いったん暗黙のうちに配列のコピーが テンポラリ配列に取られて、実行後にまた、元の配列にコピーし戻さ れるからだ。なぜかといえば、たとえばa(1:n:2)見たいな書式が許さ れている事を考えれば分かるだろう。ほとんどの実装では、たとえ メモリー上で連続しているはずの、全渡しa(:)や部分渡しa(100:)等 でも、いったんコピーしている。 これを容易に確かめたいなら、超巨大な1Gクラスの配列を使って 実験してみるといい。SGIのORいぎnとかMatMulにまでコピーを 暗黙に使うので、昔、意味不なSegmaentationFaultでウンコ漏れた。 F77にくらべてF90がうざいのは、この辺だ。 このサイトに、情報が書いてあった記憶がある。あいまい。 10年位前に読んだので、すぐには見つからなかったw ttp://www.cs.rpi.edu/~szymansk/oof90.html
|

|