атрибутов.

исленная переменная, объявленная в модуле, используется в качестве глобальной переменной для определения размера связанных массивов в программе. Размер программы варьируется, поэтому размер массива является переменной, но не параметром. Это определяется в начале программы.

В следующем фрагменте кода,n является глобальной переменной размера. Он объявлен в модуле и определен в начале основной функции / программы. Подобное использованиеn в основной программе и подпрограмме, содержащейся в основной программе, для инициализации массива соответственно. Однако инициализация в основной программе вызывает ошибку: модуль или массив основной программы должны иметь постоянную ошибку формы, но инициализация в подпрограмме работает. Каков механизм, лежащий в основе этого различного подхода к непостоянным значениям, используемым в разных позициях?

module mod
  implicit none
  integer :: n
end module mod



program main
  use mod
  implicit none
  integer :: b(n)
  n = 5
  b(:) = 1
  print*, b(:)

  call sub

contains

  subroutine sub
    integer :: a(n)
    a = 10
    print*, a
  end subroutine sub

end program main

Ответы на вопрос(0)

Ваш ответ на вопрос