主题:fortran 初始化
program main
real::a(5)
a=0
do
....
enddo
end
这样没有问题的吧?
===================================
看到水木上一个帖子
发信人: hyperLee (东哥de征途~~风雨无阻), 信区: NumComp
标 题: fortran的变量初始化太坑爹了!
发信站: 水木社区 (Sat Oct 29 09:12:52 2011), 站内
以前用c/c++的时候,都是定义变量的时候,顺手初始化, 比如 int a = 5;这样每次进入到这个函数的时候,a都被初始为5。
现在用fortran,我写 real*8 :: delta = 0.d0,然后认为每次进入函数的时候delta都是零。delta用来存放一个累加值(积分)。后来程序总是调不通,崩溃了无数次。最后才发现,md delta的值就是第一次进入函数的时候等于0,下一次进入,居然还是上一次函数执行完毕的值!居然不是每次进入都初始化,太坑爹了,太坑爹了!这tm是故意给人挖坑吗?
real::a(5)
a=0
do
....
enddo
end
这样没有问题的吧?
===================================
看到水木上一个帖子
发信人: hyperLee (东哥de征途~~风雨无阻), 信区: NumComp
标 题: fortran的变量初始化太坑爹了!
发信站: 水木社区 (Sat Oct 29 09:12:52 2011), 站内
以前用c/c++的时候,都是定义变量的时候,顺手初始化, 比如 int a = 5;这样每次进入到这个函数的时候,a都被初始为5。
现在用fortran,我写 real*8 :: delta = 0.d0,然后认为每次进入函数的时候delta都是零。delta用来存放一个累加值(积分)。后来程序总是调不通,崩溃了无数次。最后才发现,md delta的值就是第一次进入函数的时候等于0,下一次进入,居然还是上一次函数执行完毕的值!居然不是每次进入都初始化,太坑爹了,太坑爹了!这tm是故意给人挖坑吗?