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?
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.
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.
Good to hear. Not sure what made me think it was an I/O thing. Need more coffee.