[问题] array内数值乱变 @.@

楼主: Sisssy (face it)   2014-11-14 16:28:53
这问题困扰了我好几天 虽然最后解决但不知道为什么
使用的Fortran版本为Fortran90 系统为Linux Compiler为intel ifortran
我有一个double floating point的 16*1 array X 其内容来自ASCII档案A
array X内的数值在读取档案A之后理论上再也不会更动
但X的前四到五个element却会在程式读取另一个ASCII档案B时变动
程式的架构大概是这样
!=============start program==============
Main program (global X Y)
subroutine A (X = 读取ASCII A)
subroutine B (Y = 读取ASCII B)
!=============end program================
在subroutine B里面 X开始疯狂改变
在这里我非常确定subroutine B内完全没有使用到X
而当我在subroutine B里面使用了无数个"print" 试图找出究竟X在何时开始变化时
X array恢复正常 再也不变化了.....
就算我把subroutine B里刚刚加入的众多的print都comment掉
X array也都不会再变化
于是困扰已久的bug就这样解掉了... 但我到现在还是不知道为什么
因此以下是我的问题
1. 有任何可能X array占的内存位置在X没有被使用的情况下被overwrite的吗?
2. 为何加入几行"print" 甚至只是comment掉这些加入的print 程式就正常了?
不知道各位先进是否有过类似的经验 还请不吝指教
感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com