Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

allocation of large array

Braun__Jay
Beginner
140 Views

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
Steve_Lionel
Black Belt Retired Employee
140 Views

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.

Braun__Jay
Beginner
140 Views

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

Steve_Lionel
Black Belt Retired Employee
140 Views

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

Reply