Я хочу написать фрагмент кода, который может найти все доступные целые виды моей машины и напечатать диапазон для всех из них. Поиск видов не был трудным, используя selected_int_kind
Мне удалось перебрать все доступное число, пока я не получил значение -1, указывающее на то, что целое число больше не было представлено компилятором.Фортран динамический вид целого
Этот процесс привел в массив доступных числом видов, например (/ 1 2 4 8 16/)
(это было результатом моего gfortran компилятора)
Следующим шагом будет использовать этот массив, чтобы определить 5 разных видов чисел и попросить каково максимальное представляемое целое число. Моя идея состояла в том, чтобы использовать размещаемое целое и выделить его каждый раз с другим видом параметра, что-то вроде
program main
integer,allocatable :: i
integer::j
integer,dimension(:)::nb_kind
call give_me_the_kinds(nb_kind)
for j=1,size(nb_kind)
allocate(i,kind=nb_kind(j))
print *,huge(i)
deallocate(i)
end program
Но это не сработало для меня. У кого-нибудь есть опыт с этим? Я думаю, что это можно сделать, но я не уверен, как это сделать.
возможно дубликат [Fortran: самый большой и наименьшее целое] (http://stackoverflow.com/questions/9569756/fortran-the-largest-and-the-smallest -integer) – francescalus
А также потенциально полезно: http://stackoverflow.com/q/25534202/. – francescalus
Мой вопрос скорее о возможности определения динамического вида? Можете ли вы мне помочь? – DoubleDouble