次のようなコードが少しあります。
DO I=0,500
arg1((I*54+1):(I*54+54)) = premultz*sinphi(I+1)
ENDDO
つまり、次元 54 の配列 premultz があります。次元 501 の配列 sinphi があります。sinphi の最初の値に premultz のすべてのエントリを掛けて、arg1 の最初の 54 エントリに格納し、次にsinphi の 2 番目の値は、premultz のすべてのエントリを掛けて、arg1 の second54 エントリに格納します。
これらは平坦化された行列です。このプロジェクトの主な目標の 1 つは非常に高速なコードであるため、速度のためにそれらを平坦化しました。
私の質問はこれです: Fortran90 でこの種の計算をコーディングするより効率的な方法はありますか? Fortran には、私が十分に認識していない気の利いた配列操作がたくさんあることを知っています。
前もって感謝します。