2016-06-07 3 views
0

Читает количество строк и столбцов для матрицы «A» из файла-'var_and_runs.txt» Но это показывает ошибку компиляции -„неожиданное заявление декларации данных“Определение размера массива в Fortran?

implicit none 
integer i, var, runs 
integer rows, cols 
open(unit = 30, file = 'var_and_runs.txt') 
    read(30,*) cols,rows 

INTEGER, DIMENSION(:, :), ALLOCATABLE :: A 

ALLOCATE (A(rows, cols)) 

open (unit = 40, file = 'read_this.txt') 

read(40,*) A 
A = transpose(A) 
do 80 i = 1,3    
print*, A(i,:) 
80 continue 
print*, A 
end 

Пожалуйста, помогите!

ответ

1

У вас не может быть никаких объявлений переменных после исполняемых инструкций. В вашем случае следует заменить

open(unit = 30, file = 'var_and_runs.txt') 
    read(30,*) cols,rows 

INTEGER, DIMENSION(:, :), ALLOCATABLE :: A 

с

INTEGER, DIMENSION(:, :), ALLOCATABLE :: A 
open(unit = 30, file = 'var_and_runs.txt') 
    read(30,*) cols,rows 

и, надеюсь, все должно работать нормально.

+0

Thanx, это решило мою проблему. –

+1

@curiousprogrammer Рад, что я мог бы помочь, так как это ответили на ваш вопрос, было бы полезно, если бы вы могли принять лучший ответ, чтобы другие могли видеть, что это было решено (см. Http://meta.stackexchange.com/a/5235) , –

Смежные вопросы