24小时热门版块排行榜    

查看: 2189  |  回复: 14

koorb

铁虫 (初入文坛)

[求助] allocate与data共存的问题

Fortran代码:
integer, allocatable::num(
allocate( num(2) )
data num /2*3/
程序报错,This is an invalid DATA statement object。请指点一下!谢谢!
回复此楼

» 猜你喜欢

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

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

holmescn

金虫 (正式写手)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-11-10 13:07:33
F90的话,不用Data也行啊。直接num=/()/这样的语法就行。
2楼2011-11-10 11:14:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

【答案】应助回帖

xzhdty: 谢谢参与 2011-11-10 12:13:24
koorb(金币+2): 谢谢! 2011-11-10 13:17:39
example:
CODE:
program test
integer, allocatable :: num(:)
integer i
allocate (num(10))
num = (/(10, i=1,10)/)
print *, num
end program test

3楼2011-11-10 11:24:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


余泽成(金币+1): 谢谢参与应助! 2011-11-10 21:48:06
引用回帖:
1楼: Originally posted by koorb at 2011-11-10 09:51:32:
Fortran代码:
integer, allocatable::num(
allocate( num(2) )
data num /2*3/
程序报错,This is an invalid DATA statement object。请指点一下!谢谢!

即使在 Fortran 77 中这么用也是不正确的啊, data 必须出现在所有可执行程序之前……

你的这种情况直接 num = 3 就可以了,呵呵……
4楼2011-11-10 13:21:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

koorb

铁虫 (初入文坛)

引用回帖:
4楼: Originally posted by snoopyzhao at 2011-11-10 13:21:56:
即使在 Fortran 77 中这么用也是不正确的啊, data 必须出现在所有可执行程序之前……

你的这种情况直接 num = 3 就可以了,呵呵……

“data必须出现在所有可执行程序之前”这种说法在90里是不正确的,在77里我没法验证。
天道
5楼2011-11-10 13:29:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

koorb

铁虫 (初入文坛)

刚才测试,
integer array(1E8)
通过。
但换一种方式,定义一个可变数组
allocate(1E8)就不可以了,
allocate (1E5)可以。

1.求解释
2.求动态分配大数组的方法
天道
6楼2011-11-10 13:44:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
5楼: Originally posted by koorb at 2011-11-10 13:29:08:
“data必须出现在所有可执行程序之前”这种说法在90里是不正确的,在77里我没法验证。

给个可以出现在可执行程序之后的例子看一下吧……
7楼2011-11-10 18:39:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

koorb

铁虫 (初入文坛)

引用回帖:
7楼: Originally posted by snoopyzhao at 2011-11-10 18:39:57:
给个可以出现在可执行程序之后的例子看一下吧……

其实,你自己完全可以验证的。

   integer :: num(5)
    print *, num
    data num /5*3/
    print *, num

反正我这里可以运行出结果。data在print这条执行语句之后。
天道
8楼2011-11-11 07:43:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


jjdg(金币+1): 感谢参与 2011-11-12 00:45:03
可以跑得通,但不知道如何解释它们的结果:
CODE:
program test
integer :: num(5)
print *,  num
data num /5*3/
print *, num
end program test      

D:\>gfortran -Wall -std=f95 zvv.f90

D:\>a
           3           3           3           3           3
           3           3           3           3           3

CODE:
program test
integer :: num(5)
num = 5
print *, num
data num /5*3/
print *, num
end program test      
D:\>gfortran -Wall -std=f95 zvv.f90

D:\>a
           5           5           5           5           5
           5           5           5           5           5

9楼2011-11-11 13:29:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

koorb

铁虫 (初入文坛)

引用回帖:
9楼: Originally posted by snoopyzhao at 2011-11-11 13:29:58:
可以跑得通,但不知道如何解释它们的结果:

[code]
program test
integer :: num(5)
print *,  num
data num /5*3/
print *, num
end program test      

D:\>gfortran -Wall -std=f95 zvv.f90

...

Data是用来赋初值的,这一点毫无疑问。无论你把它放在哪它都是只能是初始化一个数组变量,再有赋值语句当然将它覆盖了。

我发帖的本意是想问问,对于一个动态分配维数的数组,为什么不能用data初始化。用其它的方法是可以给它赋值的,我只想知道为啥不能用data来赋初值。
天道
10楼2011-11-14 06:47:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 koorb 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +3 5lbyq5wrhb 2026-02-07 3/150 2026-02-08 02:52 by vs90ilomwc
[论文投稿] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +3 3rkserf6qr 2026-02-07 4/200 2026-02-08 02:45 by vs90ilomwc
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +3 3rkserf6qr 2026-02-07 3/150 2026-02-08 02:32 by vs90ilomwc
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 5/250 2026-02-08 02:12 by vs90ilomwc
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 6/300 2026-02-08 02:07 by vs90ilomwc
[教师之家] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 6/300 2026-02-08 02:05 by vs90ilomwc
[找工作] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 6/300 2026-02-08 01:46 by vs90ilomwc
[公派出国] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 7/350 2026-02-08 01:45 by vs90ilomwc
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 7/350 2026-02-08 01:32 by vs90ilomwc
[教师之家] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 7/350 2026-02-08 01:26 by vs90ilomwc
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 7/350 2026-02-08 01:12 by vs90ilomwc
[教师之家] 有院领导为了换新车,用横向课题经费买了俩车 +7 瞬息宇宙 2026-02-04 7/350 2026-02-07 21:47 by tfang
[有机交流] 酰胺脱乙酰基 10+5 chibby 2026-02-03 12/600 2026-02-07 19:29 by 江东闲人
[基金申请] 同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗 +4 hitsdu 2026-02-06 4/200 2026-02-07 13:07 by jurkat.1640
[基金申请] 有时候真觉得大城市人没有县城人甚至个体户幸福 +9 苏东坡二世 2026-02-04 10/500 2026-02-07 12:37 by 小毛球
[考博] 天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人) +4 a793625982 2026-02-05 5/250 2026-02-07 10:57 by a793625982
[公派出国] CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优 +4 雨念 2026-02-01 6/300 2026-02-06 23:32 by MelissaPon
[基金申请] 面上项目申报 +3 Tide man 2026-02-01 3/150 2026-02-05 22:56 by god_tian
[硕博家园] 博士延得我,科研能力直往上蹿 +7 偏振片 2026-02-02 7/350 2026-02-04 17:36 by 陈氏帝国
[教师之家] 遇见不省心的家人很难过 +18 otani 2026-02-03 22/1100 2026-02-04 11:06 by tangmnt
信息提示
请填处理意见