Я работаю с целыми числами больше 2^31-1, и поэтому я пытаюсь установить точность моих целочисленных переменных на более высокое значение. Метод, который я думал, было правильным былоУкажите Integer Precision gfortran
PROGRAM f1
IMPLICIT NONE
INTEGER,PARAMETER :: LONG = SELECTED_INT_KIND(15)
INTEGER(KIND=LONG) :: n
n=2**31
END PROGRAM f1
, который, как я понимаю, должно позволить n
быть в [-10^15, 10^15]. Однако приведенный выше код вызывает ошибку компиляции, используя gfortran 4,6, а именно
n=2**31
1
Error: Arithmetic overflow at (1)
Я попытался заменить линию неприятности с n=int8(2**31)
но безрезультатно. Любые рекомендации?