3
!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 を整数から実数に移動するなど、いくつか変更を加えました。

4

1 に答える 1