У меня есть вопрос, который, надеюсь, не будет влиять на мои численные расчеты в Fortran 90.Как числовые типы управляемых в Fortran 90
Дело в том, что я массив объявлен как
Real(r8), Allocatable :: matKBody(:)
По моим вручную, инициализировав такой массив, я сделал это как
allocate(matKBody(1:Nk), STAT=ierr)
If (ierr /= 0) Stop
matKBody(:) = (0.0_r8, 0.0_r8)
, который является способом инициализации сложного массива. Я заметил эту ошибку, но я был удивлен , что Безразлично ' имеет значения, если я инициализировать такой массив таким способом или с помощью ' правильно ' заявление:
matKBody(:) = 0.0_r8
...
... ! Do some stuff with the array
...
Deallocate(matKBody, STAT=ierr)
If (ierr /= 0) Stop
Если я печатаю обоих массивов они дают мне правильную инициализацию, т.е. как инициализировать действительные числа .
Почему fortran (или компилятор) не знает о таких вещах? (я использовал ifort для компиляции).
Вам нужно выделить allocatable array, используя функцию 'ALLOCATE()'. – ja72
Какая ошибка? Непонятно, что вы спрашиваете. – ja72
Я добавил более краткий подход к используемому массиву. Ошибка в том, что массив объявлен как реальный, но Я могу инициализировать как комплексное, или действительное число, и вопрос , почему это действительно. – user2820579