Fortran Coder

标题: 子程序传递数组 [打印本页]

作者: DING    时间: 2021-3-12 22:45
标题: 子程序传递数组
求助大神,新手一枚,实在没有办法,在看以前的老代码,跪求帮助。问题:
dimension p(20000)
call trap (p(n),p(m))
subroutine trap (p1,p2)
这里的p(n),p(m) 是不是取数组中的前n和m个数据的数组,如果子程序中的p1,p2改变那主程序中p(20000)的前n和m数据会变化吗?
非常感谢!



作者: 风平老涡    时间: 2021-3-13 00:25
理解正确。如果在subroutine trap中改变了p1和p2数组,那么主程序中p(n),p(m)都有变化。问题在于p(n)和p(m)都是p的一部份,从subroutine trap回到主程序时数组p的变化不一定是你希望的。建议用一个新的数组变量代替p(n)或p(m)中的一个。
作者: DING    时间: 2021-3-13 09:57
风平老涡 发表于 2021-3-13 00:25
理解正确。如果在subroutine trap中改变了p1和p2数组,那么主程序中p(n),p(m)都有变化。问题在于p(n)和p(m ...

谢谢大神帮助




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2