Memory management fortran测试内存溢出

Memory management fortran测试内存溢出,memory-management,fortran,Memory Management,Fortran,我正在运行一个FORTRAN程序,它为相当大的数组动态分配内存,有时它们不适合内存 因此,分配 allocate(my_array(really big_number)) 将给出错误 Operating system error: Cannot allocate memory Allocation would exceed memory limit 程序将退出。我想知道是否有任何方法可以捕获这个或测试内存是否可用,以便在不允许分配这么大的数组时采取适当的措施?使用:allocate(我的数

我正在运行一个FORTRAN程序,它为相当大的数组动态分配内存,有时它们不适合内存

因此,分配

 allocate(my_array(really big_number))
将给出错误

Operating system error: Cannot allocate memory
Allocation would exceed memory limit
程序将退出。我想知道是否有任何方法可以捕获这个或测试内存是否可用,以便在不允许分配这么大的数组时采取适当的措施?

使用:
allocate(我的数组(真的很大),stat=ierror)

使用
stat=
说明符,分配的状态将存储在指定的变量中(
ierror
)。零表示分配成功,非零表示分配失败

从Fortran 90标准()中的
ALLOCATE
语句:

如果存在
STAT=
说明符,则成功执行 ALLOCATE语句使stat变量用 零的值

如果在执行
分配过程中出现错误情况
语句,stat变量将使用 处理器相关的正整数值。如果出现错误条件 在执行不包含
STAT=
说明符,可执行程序的执行是 终止


值得注意的是,它不是防爆的。在某些系统上访问阵列时仍然会遇到错误。