program hoge implicit none integer, parameter :: N = 10, NT = 2000 real, parameter :: NG = -1.0E10 real :: A(N), B(N), C(N), t, aa, ab, ac integer :: ka, kb, kc, i, j, ios character(len=80) :: tmp open(unit=11,file="huge.dat",status="OLD",blank="NULL") loop_j: do j = 1, NT/N A = NG; B = NG; C = NG loop_i: do i = 1, N read(unit=11,fmt="(A)",iostat=ios) tmp if (ios < 0) then ! エラー処理は省略... exit loop_j end if read(unit=tmp,fmt=*,iostat=ios) t, A(i), B(i), C(i) end do loop_i ka = count(A <= NG); aa = sum(A, mask=(A > NG)) / (N-ka) kb = count(B <= NG); ab = sum(B, mask=(B > NG)) / (N-kb) kc = count(C <= NG); ac = sum(C, mask=(C > NG)) / (N-kc) print *, "欠測 = ", ka, kb, kc print *, "平均 = ", aa, ab, ac end do loop_j close(11) end program hoge