24小时热门版块排行榜    

查看: 910  |  回复: 5

geohhy

银虫 (初入文坛)

[求助] fortran 动态数组问题

在fortran编程中遇到一个动态数组问题,很困惑,请求高人指点!
下面是编的程序例子:
program main
implicit none
real(8),allocatable::  y( :, : )
integer(4):: i, j, ierr

i=6000 !这里如果改为i=10000,下面反而不出错,为什么?如何解决这个问题?
j=600000
allocate(y(i,j),stat=ierr)
if(ierr/=0) then
        write(*,*) ierr
endif

end program main

[ Last edited by geohhy on 2013-4-3 at 08:34 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
我用 gfortran 的测试结果表明,你的那个注释里的说法是不正确的。估计原因还是数组太大了……
2楼2013-04-03 11:38:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

geohhy

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by snoopyzhao at 2013-04-03 11:38:52
我用 gfortran 的测试结果表明,你的那个注释里的说法是不正确的。估计原因还是数组太大了……

我在WINxp SP3下用Powerstation4.0编译计算的结果就是这样
3楼2013-04-03 15:38:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
3楼: Originally posted by geohhy at 2013-04-03 15:38:25
我在WINxp SP3下用Powerstation4.0编译计算的结果就是这样...

ierr /= 0 表示没有办法分配内存。我不想信,你的 i = 6000 时不能分配,但 i=10000 却可以……

你的机器啥配置?
4楼2013-04-03 15:48:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

geohhy

银虫 (初入文坛)

引用回帖:
4楼: Originally posted by snoopyzhao at 2013-04-03 15:48:50
ierr /= 0 表示没有办法分配内存。我不想信,你的 i = 6000 时不能分配,但 i=10000 却可以……

你的机器啥配置?...

的确如此。

我用的是X200,而且在另一位朋友的电脑上也试过,是苹果机(WIN7系统,Powerstaion)
5楼2013-04-03 15:52:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

geohhy

银虫 (初入文坛)

引用回帖:
5楼: Originally posted by geohhy at 2013-04-03 15:52:06
的确如此。

我用的是X200,而且在另一位朋友的电脑上也试过,是苹果机(WIN7系统,Powerstaion)...

另分别用gfortran和intelfortran编译过,结果也不尽相同,所以觉得非常奇怪,特在这里寻求高人指点!
6楼2013-04-03 15:54:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 geohhy 的主题更新
信息提示
请填处理意见