Переносимый для объявления целочисленного «индекса», который будет иметь как минимум 12 десятичных цифр:
integer, parameter :: MyLongIntType = selected_int_kind (12)
integer (kind=MyLongIntType) :: index
"kind =" может быть опущено.
Использование определенных значений, таких как 3, полностью непереносимо и не рекомендуется. Некоторые компиляторы используют номера типов последовательно, другие используют количество байтов. «Selected_int_kind» вернет номер вида наименьшего целочисленного вида, доступного для компилятора, который может представлять это запрошенное количество цифр. Если такого типа не существует, -1 будет возвращено, и значение не будет выполнено, когда используется значение типа для объявления целого числа.
И gfortran, и ifort возвращают вид для десятичных цифр, введенных в selected_int_kind до 18. Большие значения, например 18, обычно выбирают 8-байтовое целое число с наибольшим положительным значением 9223372036854775807. Это имеет 19 цифр, но если компилятор поддерживает этот тип, но не более длинный, selected_int_kind (19) будет равен -1, поскольку не все 19-значные целые числа представимы.