找回密码
 注册
Simdroid-非首页
查看: 205|回复: 3

[3. Fortran] 调用子程序前后数值发生变化?

[复制链接]
发表于 2005-12-6 18:19:39 | 显示全部楼层 |阅读模式 来自 北京
program ab
int na,nb
int a,b,c

na=4

call sab(a,b,c)
这里的na的值就不等于4,有可能什么原因?因为子程序sab中没有使用na。
.....
end

subroutine sab(a,b,c)
....
发表于 2005-12-7 09:15:06 | 显示全部楼层 来自 武汉大学

Re:调用子程序前后数值发生变化?

Simdroid开发平台
根据你的描述写了段小程序,并没发现你说的问题,可能还是你的程序本身的问题,可能要用单步调试慢慢找了!
program ab
  implicit none
  integer na,nb
  integer a,b,c
  na=4
  a=1; b=2; c=3;

  write(*,*)"na=",na
  call sab(a,b,c)
  write(*,*)"na=",na
end program ab

subroutine sab(a,b,c)
  integer a,b,c
  write(*,*)"a=",a,"b=",b,"c=",c
end subroutine sab

[虽然只是简单常识,但作者求实认真,助人乐精神可佳]

评分

1

查看全部评分

发表于 2005-12-8 11:11:50 | 显示全部楼层 来自 大连理工大学

Re:调用子程序前后数值发生变化?

有没有可能是你a,b,c在调用前后数据类型不同造成的?
 楼主| 发表于 2005-12-8 15:50:06 | 显示全部楼层 来自 北京

Re:调用子程序前后数值发生变化?

对,现在问题解决了,谢谢。
发现有时候不能把问题想简单了,越简单的问题越容易出错。还不知道什么原因。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 21:39 , Processed in 0.036653 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表