エラーメッセージarray bounds exceeded
は常に(私が思うに)、コードが配列の境界外の配列要素、たとえば24個の要素を持つ配列の要素25にアクセスしようとしたことを示します。これは実行時にのみ発生する可能性があり、コンパイラ/ランタイムは、コンパイル時に配列境界チェックのコンパイラオプションを設定した場合にのみ検出されます。コンパイラのドキュメントには、これらのオプションが何であるかが記載されています。
エラーメッセージには、プログラムのどこでエラーが発生したか、および範囲外の配列アクセスのインデックスを示す情報が含まれている必要があります。
ソースコードと入力データが同一であるとすると、これはどのようにして発生したのでしょうか。2つの異なるプラットフォームでプログラムをコンパイルしたため、コンパイルを同一にすることはできません。MacとWindowsPCで配列境界チェックがオフになっている可能性があります。
範囲外の配列要素にアクセスしても、Fortranプログラムは明らかに正常に実行される可能性があります。24個のうち25個の配列要素のメモリアドレスが意味のある値を保持し、そのアドレスがプログラムのスペース内にある場合、計算は続行される可能性があります。それも役に立たない可能性がありますが、それを見つける前に何年も行くことができます。
Macに戻り、配列境界チェックを使用して再コンパイルし、再度実行して、何が起こるかを確認することをお勧めします。
XPとMacでは、ファイルを読み取るルーチンが異なる数の値を検出する可能性もあります。これは、入力ファイルの末尾に改行があるかどうかに関係なく、行末の文字が異なることが原因である可能性があります。これもチェックしてください。