Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
2 Views

allocation of large array

I am allocating a 4-dimensional array, and getting an application-generated error saying "FATAL: Unable to allocate array. Program ends"  (that's not an Intel Fortran message).

I re-compiled with -debug and no optimization (thanks for comments on my recent post regarding that issue) and was able to get the following information:

(istatus=41, message=<error reading variable: value requires 58671248 bytes, which is more than max-value-size>, .tmp.MESSAGE.len_V$a6e=6) at alloclib.f90:761

The requested memory is less than 60 MB.  Is there anything I can set, e.g., through a compilation option, to maintain the currently desired resolution?

Thanks,

Jay

0 Kudos
3 Replies
Highlighted
Black Belt
2 Views

Error 41 is "insufficient

Error 41 is "insufficient virtual memory". I'm guessing that, due to the (unspecified) type of read and/or buffering, the I/O library needed to allocate more memory and couldn't. This is not something you can change with a compiler option, though if buffering is the issue you may be able to play with BLOCKSIZE and BUFFERCOUNT in an OPEN.

Please tell us more about the READ in question - show the statement, the FORMAT if any, and what the data looks like.

--
Steve (aka "Doctor Fortran") - https://stevelionel.com/drfortran
0 Kudos
Highlighted
Beginner
2 Views

I think this is due to a data

I think this is due to a data error.

The status is being returned by an ALLOCATE statement for a REAL, ALLOCATABLE array (no KIND or other additional specification) whose dimensions are (from a data file) 20000 by 30000 by 15000 by 3.  That would be on the order of 100 TB !

I think this was a false alarm.  Thanks, Steve.

j

0 Kudos
Highlighted
Black Belt
2 Views

Good to hear. Not sure what

Good to hear. Not sure what made me think it was an I/O thing. Need more coffee.

--
Steve (aka "Doctor Fortran") - https://stevelionel.com/drfortran
0 Kudos