Fortran プログラムでは、配列を特定の形式でファイルに書き込む必要があります。小さい配列 (たとえば、以下の例では alen=10) では完全に機能しますが、より大きな配列では機能しません。1 行あたりの最大文字数を超えたかのように、各行を 2 つに分割します。
例(私のプログラムの構造に非常に似ています):
PROGRAM output_probl
IMPLICIT NONE
INTEGER, PARAMETER :: alen=110
DOUBLE PRECISION, DIMENSION(alen)::a
INTEGER :: i,j
OPEN(20,file='output.dat')
30 format(I5,1x,110(e14.6e3,1x))
DO i=1,15
DO j=1,alen
a(j)=(i*j**2)*0.0123456789
ENDDO
write(20,30)i,(a(j),j=1,alen)
ENDDO
END PROGRAM output_probl
これは正しくコンパイルおよび実行されます (Compaq Visual Fortran を使用)。出力ファイルだけが間違っています。たとえば、配列項目ごとのフィールド幅を 14 から 8 に変更すると、問題なく動作します (もちろん、これは満足のいく解決策ではありません)。不適切なデフォルトの最大レコード長について考えましたが、それを変更する方法が見つかりません (動作しないように見える RECL を使用しても - 動作すると思われる場合は、RECL を使用した具体的な例を歓迎します)。
これは基本的なことかもしれませんが、私はしばらくそれで立ち往生しています...どんな助けも大歓迎です、どうもありがとう!