Фиктивный указатель - PullRequest
0 голосов
/ 22 мая 2018

У меня есть следующая программа на Фортране.Но я не понимаю, почему вывод равен 4 вместо 1. Я использую компилятор GNU 6.4 Fortran:

program aa

implicit none

real, pointer, dimension(:,:) :: t => null()

integer :: i,j

allocate(t(0:100,20))

do i = 0, 100
  do j = 1, 20 
     t(i,j) = i*j
  end do
end do

call te(t(1:,:))

stop

contains

subroutine te(a)

implicit none

real,dimension(:,:),pointer,intent(in) :: a

print *, a(1,1)

end subroutine te
end program aa

1 Ответ

0 голосов
/ 22 мая 2018

Компилятор Intel 18.0.2 возвращает сообщение об ошибке

/pt.f90(17): error #7121: A ptr dummy may only be argument associated with a ptr, and this array element or section does not inherit the POINTER attr from its parent array. [T] call te(t(1:,:))

Измените строку в подпрограмме на

real,dimension(:,:),intent(in) :: a

и все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...