Fortran: как читать массив из файла

Я пытаюсь прочитать целые числа из файла в массив. Но я получаю сообщение об ошибке при запуске программы.

PROGRAM MINTEM

INTEGER TEMP(4,7), I, J, MINIMUM, CURRENT

OPEN(UNIT=1, FILE='temps.dat')
READ (1,*) ((TEMP(I,J),J=1,7),I=1,4)

MINIMUM = TEMP(1,1)
DO I = 1,4
    DO J = 1,7
        IF (TEMP(I,J) < MINIMUM) THEN
            MINIMUM = TEMP(I,J)
        END IF
    END DO
END DO


PRINT *, "MINIMUM TEMPERATURE = ", MINIMUM
END PROGRAM MINTEM

Входной файл выглядит так:

 22
100 90 80 70 60 100 90 80 70 60 100 90 80 70 60 100 90 80 70
100 90

person SharkTiles    schedule 06.11.2012    source источник
comment
в настоящее время вы, кажется, пытаетесь прочитать 4 * 7 = 28 элементов   -  person ev-br    schedule 06.11.2012


Ответы (1)


Предоставленный вами файл можно прочитать, используя это:

integer, allocatable :: t(:)
open(1,file='temp.dat')
read(1,*) N   ! your first line with 22
allocate( t(N-1) )  ! further on you only have 21 elements
read(1,*)t          ! so, read them in 
print*, t
deallocate(t)
close(1)
person ev-br    schedule 06.11.2012