このプログラムの目的は、一次元配列を確保して(文字列は文法上一次元配列として使えます)、それをあたかも多次元配列として使いたいということです。 ここまでの説明で、dim a[ny,nx] としたとき、その並びは a[0,0],a[0,1],..,a[0,nx-1],a[1,0],a[1,1],..,a[1,nx-1],a[2,0],.......,a[ny-1,0],a[ny-1,1],...a[ny-1,nx-1] となっていることはわかると思います。 具体的にny=3,nx=2の場合 a[0,0],a[0,1],a[1,0],a[1,1],a[2,0],a[2,1] という6個の並びになりますね。 ここで dim b[6] を考えます。その並びは当然 b[0],b[1],b[2],b[3],b[4],b[5] となります。