fortran test memory overflow -
i running fortran programme allocates memory dynamically rather big arrays, , not fit memory.
thus allocation
allocate(my_array(really big_number)) will give error
operating scheme error: cannot allocate memory allocation exceed memory limit and programme exit. know if there way capture or test memory available, can take appropriate measures if i'm not allowed allocate such big array?
use: allocate(my_array(really big_number),stat=ierror)
with stat= specifier, status of allocation stored in specified variable (ierror in example). 0 means allocation succeeded, non-zero means failed.
from fortran 90 standard (ftp://ftp.nag.co.uk/sc22wg5/n001-n1100/n692.pdf) on allocate statement:
if stat= specifier present, successful execution of allocate statement causes stat-variable become defined value of zero.
if error status occurs during execution of allocate statement, stat-variable becomes defined processor-dependent positive integer value. if error status occurs during execution of allocate statement not contain stat= specifier, execution of executable programme terminated.
memory-management fortran
No comments:
Post a Comment