High Performance Mark's answer о решает проблемы. Однако, если int8
не является типом по умолчанию (который поддерживает сообщения об ошибках), каждый элемент в конструкторе массива, указанный в этом ответе, должен иметь тот же тип (они есть) и добрый (они не имеют) параметр. Таким образом:
iu = [4_int8,3_int8,2_int8,1_int8]
является допустимым конструктором, который не должен включать преобразование.
Это немного утомительно для этого, особенно для многих элементов, поэтому стоит отметить, что (как описано в Fortran 2008 4.8) можно использовать спецификацию типа в конструкторе массива, чтобы указать параметры типа и типа массив. Вы можете, то написать
iu = [integer(Int8) :: 4, 3, 2, 1]
где значения сейчас нужно только быть созвучно с integer(Int8)
.
Независимо от того, жалуется ли gfortran о преобразовании, зависит от версии компилятора. Тестирование со старой версией все еще было предупреждением, а 4.9.0 не было.
вы должны показать декларацию 'Int8', чтобы улучшить качество вопроса. – agentp