!find smallest number
subroutine findsmall(z, i, j, small, count0, y)
implicit none
integer:: i, j, small, count0
real:: z(121), temp, y(121)
300 format(//, t1, 9(f6.2, 2x))
read(*, 300) z(1:121)
do i=1, 120, 1
small = i
do j=i+1, 121, 1
if (z(small) > z(j)) then
small = j
end if
end do
temp = z(i)
z(i) = z(small)
z(small) = temp
y(i) = z(i)
count0 = count0 + 1
end do
print 300, y(1:121)
print*, count0
end subroutine findsmall
これが私のサブルーチンです。生成された乱数を出力する print ステートメントから入力データを受け取ります。印刷が行われた後、入力を配列に読み込む必要があります。私が試みたのは26行目です。
read(*, 300) z(1:121)
「fortran ランタイム エラー: 浮動小数点読み取り中の値が正しくありません」というエラーが表示されます。ここで何が問題なのかわかりません。以前はさまざまな結果でソートされていました。100 分の 1 の桁数を維持するために、temp を整数から実数に移動するなど、いくつか変更を加えました。