Memory management fortran测试内存溢出
我正在运行一个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(我的数
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=
说明符,可执行程序的执行是
终止
值得注意的是,它不是防爆的。在某些系统上访问阵列时仍然会遇到错误。