PROGRAM vipp IMPLICIT NONE INTEGER :: i, j, k CHARACTER(LEN = 136) :: buff REAL :: a, x(10) = 0.0 INTEGER :: n(10) = 0 DO READ(9, '(a)', END = 99) buff k = INDEX(buff, ',') READ(buff(:k), '(i10)') j buff = buff(k + 1:) DO i = 1, 10 k = INDEX(buff, ',') IF (k == 0 .AND. LEN_TRIM(buff) == 0) EXIT ! end by "," IF (k /= 1) THEN ! k == 1 is missing data : ",," READ(buff, '(F15.0)') a x(i) = x(i) + a n(i) = n(i) + 1 END IF buff = buff(k + 1:) IF (k == 0) EXIT ! end of record END DO END DO 99 PRINT *, "EOF" PRINT *, n PRINT *, x / REAL(n) STOP END PROGRAM vipp