Search code examples
arrayscompilationgfortran

How to compile 10^9 kind-8 integer array in gfortran


I want to create an array of 10^9 kind 8 integers in gfortran (Fortran f90 or f95).

I tried declaring it as follows

integer(kind=8) :: x(1000000000)

I expected it to compile but it doesn't. If instead of 1000000000 I use 100000000 it compiles without a problem. My machine has 64G RAM. What can I do?


Solution

  • Without seeing your code, I suspect you'll be happier as will your OS if you use the heap.

    integer, parameter :: nx = 1000000000
    integer(8), allocatable :: x(:)      ! Yes, I know 8 is not portable.
    allocate(x(nx))