는, 나는 시도했다 :포트란에서 정수 종류 8의 배열을 초기화하는 방법은 무엇입니까?
integer(kind=8) :: XGrid(1:20)
그러나 정수는 기본 종류 = 4 남아있다. 나중에 배열에 숫자를 추가하면 다음과 같습니다.
XGrid = (/3002, 3340403,....,19460630000/)
그리고 "이 숫자 상수가 범위를 벗어났습니다."라는 오류 메시지가 나타납니다. 그것은 kind = 4 int에 적합하지는 않지만 kind = 8 int에 있습니다.
나는 또한로 선언 시도 :integer, parameter :: ik8 = selected_int_kind(8)
integer(ik8) :: XGrid(1:20)
하지만이 또한 작동하지 않았다.
편집 : 감사 블라디미르 F,하지만 난 그냥 하나의 변수가 아닌 배열을 정의하려고하고 같은 난에 사용되는 대답에 적응하는 방법을 이해하지 못할 : 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