作者physicschild (面对未来)
看板Programming
标题[问题] 关於fortran 中 function 的宣告是否每次重读?
时间Wed Feb 11 12:17:17 2009
主要的问题是每一次主程式呼叫function时,是否会重新宣告并
给予新的初始值。我写了一了小程式测试了一下:
program test
implicit none
real*8::b
real*8,external :: abx
b=abx(999)
b=abx(123)
stop
end
function abx(z)
implicit none
real*8 :: a=3
real(8) ::abx,z
write(*,*) a
abx=z
a=100
return
end function abx
其中主程式呼叫了两次function abx,所以我预期两次输出结果
应该都是a=3,没想到执行的结果是a=3,a=100。也就是说第二次
呼叫时并没有重做宣告中a=3这个动作。请问一下为什麽会这样?
难道不是每一次呼叫都会当作一个新的开始?还是我有哪些观念
弄错了。 谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.101.161
1F:→ gilocustom:的确不会重新宣告一次,所以请把a=3另 218.171.169.45 02/12 02:11
2F:→ gilocustom:外放到程式里面非宣告区的部分。 218.171.169.45 02/12 02:13
3F:→ gilocustom:另外...其实有fortran板(遮脸)。 218.171.169.45 02/12 02:17
4F:→ physicschild:Thanks!140.112.102.129 02/12 10:51