我想初始化FORTRAN大整数数组,我曾尝试:如何在fortran中初始化整数类型8的数组?
integer(kind=8) :: XGrid(1:20)
但整数保持默认KIND = 4。正如我稍后将数字添加到阵列:
XGrid = (/3002, 3340403,....,19460630000/)
而且我收到“此数字常量超出范围”错误。因为它不适合一种= 4 int,但会在一种= 8 int。
我自己也尝试声明为:
integer, parameter :: ik8 = selected_int_kind(8)
integer(ik8) :: XGrid(1:20)
但是,这也没有工作。
编辑: 感谢弗拉基米尔女,但我试图定义一个数组,而不仅仅是一个单一的变量,因此我无法理解如何适应中使用的答案: Is There a Better Double-Precision Assignment in Fortran 90? 难道是:
integer, parameter :: ik8 = selected_int_kind(8)
integer(ik8) :: XGrid(1:20)_ik8
XGrid = (/3002_ik8, 3340403_ik8,....,19460630000_ik8/)
还是它不同?谢谢
感谢,那是一个很大的帮助 –
@Vladimir:请问一下'(/3002.d0,3340403.d0 ,. ...,19460630000.d0 /)'?这是否等同/便携? – Coriolis
@Ian:对不起,我的意思是如果数组是真实的。如果我使用'integer,parameter :: real64 = SELECTED_REAL_KIND(15,307)'作为精度类型,是不是写了'3002.d0'和'3002_real64'? – Coriolis