24小时热门版块排行榜    

查看: 9105  |  回复: 2

yfgj

金虫 (小有名气)

[求助] fortran里的DATA语句

利用DATA对变量进行赋初值
但是有个循环,希望在每个循环新开始的时候再次对变量进行赋值,该怎么修改这个?源程序如下:
********************************************************************
PROGRAM ex
IMPLICIT NONE
CHARACTER*10::f,S00(1000),S11(1000),S22(1000),yn,kk
INTEGER::i
REAL::num(1000)
103 continue
DATA num/1000*0.0D0/
.......................................
......................................
......................................
GOTO 103
END PROGRAM
*************************************************************
现在程序不知错在哪里,每次得到的都是上一次的累加值,不是从新值从新开始的,也就是DATA语句貌似不起作用了。求助各位,谢谢@!
回复此楼

» 猜你喜欢

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

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

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
yfgj: 金币+5, ★★★★★最佳答案, 谢谢您,问题解决了。但是还想问一下除此之外,还有什么方法吗? 2013-05-11 21:22:22
ben_ladeng: 专家考核 2013-05-12 09:58:36
DATA 语句赋值的变量有 SAVE 属性,而且它只在程序初始化的时候有用,后面调用的时候,因为有 SAVE 属性,所以就有你说的那个现象

你如果希望每次都重新赋值,那么用 Fortran 90 的特性就是 num = 0.0D0 就可以了。如果是 Fortran 77,那就只有循环了

do i = 1,1000
num(i) = 0.0D0
end do
2楼2013-05-11 20:12:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夕阳西下

金虫 (著名写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2013-05-11 20:12:48
DATA 语句赋值的变量有 SAVE 属性,而且它只在程序初始化的时候有用,后面调用的时候,因为有 SAVE 属性,所以就有你说的那个现象

你如果希望每次都重新赋值,那么用 Fortran 90 的特性就是 num = 0.0D0 就可以了 ...

如果是 Fortran 77,那就只有循环了

do i = 1,1000
num(i) = 0.0D0
end do
fortran77应该已经包含了循环,只是DATA num/1000*0.0D0,i=1,1000/
3楼2013-05-13 11:01:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yfgj 的主题更新
信息提示
请填处理意见