後輩に Fortran のプログラミングを教えていたときのことです。データを単純に時間方向に読み込み、すべての緯度・経度について演算をするという、私の専門では日常的に行うプログラムを書いてもらっていたら、一人だけ実行してもなかなか計算が終わらない人がいました。 エラーになるわけではありませんし、計算結果が違うわけでもありません。ただ遅いのです。彼のプログラムをみて理由は一目でわかりました。本来、「時間・緯度・経度」の順で内側にループをするはずのプログラムが、逆になっていたのです。プログラマーでないみなさんのために分かりやすくいうなら、これは家の隣りにあるポストに10回郵便を出すのに、1回ごとにわざわざ市役所と県庁に寄ってから投函しているようなものでした。プログラミングでも、ループを最適化するのは作業効率を大幅に向上させるポイントであることは常識になっています。 繰り返しはとても大切です。そ