Ошибка переполнения при использовании массива указателей большого размера в Intel Fortran - PullRequest
0 голосов
/ 15 марта 2019

как избежать ошибки переполнения при использовании массива указателей большого размера Мой код просто создает подпрограмму для чтения файла, получения данных и сохранения их в двух массивах (размерность массива должна быть объявлена ​​внутри функции)

размерность двух массивов объявлена ​​внутри подпрограммы, и для их выделения и извлечения из подпрограммы без указателя выдается ошибка

    ARRAY1 is a dummy argument and so cannot be ALLOCATABLE

Вот код и ошибка в строке вызова подпрограммы

! declaration Main code
CHARACTER*200 :: configfile = "config.txt"
INTEGER*4, DIMENSION(:,:), ALLOCATABLE :: add_array(:,:), route_array(:,:)

call ReadConfigfile(configfile, array1, array2)

и подпрограмма

SUBROUTINE ReadConfigfile(fname, array1, array2)
integer :: dim1, dim2
CHARACTER*200 :: fname
INTEGER*4, POINTER :: array1(:,:), array2(:,:)

some statements to get the dimension from the file 

allocate(array2(dim1,5), array2(dim2,5))

some statements to get store the numbers from the file into array1 & array2

END SUBROUTINE ReadConfigfile

и ошибка, которую я получаю

Integer overflow at address 004019933 in file flowaccumulation.95 at line 161
...